Sugestões

Transações

Para que o Gateway de Pagamento funcione em seu site ou loja, é necessário que ele gere transações. Entenda abaixo como isso funciona.

Conceitos

A transação é a entidade base do Gateway de Pagamento da Locaweb e representa a transação em que seu cliente efetua um pagamento a sua loja. A criação da transação é o primeiro passo para que possam ser feitas todas as operações do Gateway de Pagamento.

Após a captura , são adicionados também os campos de "detalhes" da transação , cada meio de pagamento apresenta diferentes campos de detalhes que podem ser vistos no tópico referente aos detalhes de cada meio de pagamento.

Armazenamento de dados

Outra função importante da transação é a de armazenar informações que são adquiridas ao longo do fluxo da API, após criada a transação os seguintes dados estaram disponiveis:

Campo Descrição
id O Identificador único da transação dentro do ambiente do gateway.
status O status atual da transação dentro do gateway.
meio_pagamento O Meio de pagamento que está sendo utilizado por esta transação. Saiba mais
numero_pedido O número do pedido conforme informado pelo lojista na criação da transação, geralmente é o ID do pedido no e-commerce do lojista.
url_acesso É a URL para acessar o recurso criado, no caso do boleto ela aponta para boleto.
Para o itau_shopline, redecard_web e Cielo (Buy-page Cielo e Buy-page Loja com autenticação) é a URL para o pagamento.
Não existe para os serviços de web-service (Cielo Buy-page Loja sem autenticação e Redecard Komerci Webservice).
Detalhes São os detalhes específicos de cada meio de pagamento. Para mais detalhes visite a seção de Meios de Pagamento.

Tipos de transação

Recomendamos o uso das bibliotecas que auxiliam na integração da API do Gateway de Pagamento da Locaweb. Para mais informações veja na seção Bibliotecas

Existem três tipos de transações que podem ser feitas e cada uma delas têm um fluxo distinto:

Transação com dados sigilosos informados na loja

Lembre-se que os dados sigilosos relacionados ao cartão não podem ser armazenados, logados ou capturados em ambiente não-seguro.

A Redecard Komerci Webservice e a Cielo Buy-page Loja, são os dois meios de pagamento que utilizam essa modalidade. Quando são usadas essas operadoras, os dados sigilosos como número do cartão, validade do cartão e dígito verificador do cartão, são informados pelo comprador em uma página de seu site ou loja.

Após receber os dados do cartão através de um formulário em sua loja, você deve criar a transação passando os dados do cartão através da API.

Segue abaixo o exemplo de criação de transação:

    
      curl 'https://api.gatewaylocaweb.com.br/v1/transacao' \
      -H "Content-Type: application/json" \
      -d '{
       "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240",
       "transacao":{
         "url_retorno":"http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345",
         "capturar":"true",
         "pedido":{
            "numero":"123",
            "total":"100.00",
            "moeda":"real",
            "descricao":"An African or European swallow?"
         },
         "pagamento":{
            "bandeira":"visa",
            "meio_pagamento":"redecard_ws",
            "cartao_numero":"4012001037141112",
            "cartao_cvv":"973",
            "cartao_validade":"082015",
            "parcelas":"1",
            "tipo_operacao":"credito_a_vista"
         },
         "comprador":{
            "nome":"Nome do comprador",
            "documento":"12345678900",
            "endereco":"Rua da Casa",
            "complemento":"Ap 82",
            "numero":"1",
            "cep":"09710240",
            "bairro":"Centro",
            "cidade":"São Paulo",
            "estado":"SP"
         }
       }
      }'
  <?php
      $transacao = LocawebGateway::criar(array(
        'url_retorno' => 'http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345',
        'capturar' => 'true',
        'pedido' => array(
          'numero' => "123",
          'total' => "100.00",
          'moeda' => "real",
          'descricao' => "Carrinho de Compras"
        ),
        'pagamento' => array(
          'meio_pagamento' => 'redecard_ws',
          'bandeira' => "visa",
          'cartao_numero' => "4012001037141112",
          'cartao_cvv' => "973",
          'parcelas' => "1",
          'tipo_operacao' => "credito_a_vista",
          'cartao_validade' => "082015"
        ),
        'comprador' => array(
          'nome' => "Nome do comprador",
          'documento' => "27836038881",
          'endereco' => "Rua da Casa",
          'numero' => "1",
          'cep' => "09710240",
          'bairro' => "Centro",
          'cidade' => "São Paulo",
          'estado' => "SP"
        )
      ))->sendRequest();
      var_dump($transacao);
      ?>
<!-- #include file="locaweb/LocawebGateway.asp" -->
<%
  Set cielo = New LocawebGatewayTransacaoDados

  With cielo
    .UrlRetorno = "http://www.sualoja.com.br/retorno"
    .Capturar = True

    .PedidoNumero = "987654"
    .PedidoTotal = 123.45
    .PedidoMoeda = "real"
    .PedidoDescricao = "Bola de Basquete Never Flat Spalding (1)"

    .PagamentoMeioPagamento = "cielo"
    .PagamentoBandeira = "Visa"
    .PagamentoCartaoNumero = "4012001037141112"
    .PagamentoCartaoCvv = "123"
    .PagamentoCartaoValidade = "082015"
    .PagamentoTipoOperacao = "credito_a_vista"
    .PagamentoParcelas = 1

    .CompradorNome = "Pedro Bonamides"
    .CompradorDocumento = "1234568909"
    .CompradorEndereco = "Rua Itapaiúna"
    .CompradorNumero = "5434"
    .CompradorBairro = "Jardim Morumbi"
    .CompradorCidade = "São Paulo"
    .CompradorEstado = "SP"
    .CompradorCEP = "05707-001"
  End With

  Set gateway = New LocawebGateway
  Set transacao = gateway.Criar(cielo)

  If transacao.TemErro Then
    Response.Write("Erros encontrados<br />")
    Response.Write("Código de erro: " & transacao.ErroCodigo & "<br />")
    Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "<br />")
  Else
    Response.Write("Dados da transação<br />")
    Response.Write("ID: " & transacao.ID & "<br />")
    Response.Write("Status: " & transacao.Status & "<br />")
    Response.Write("Número do pedido: " & transacao.NumeroPedido & "<br />")
    Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "<br />")
    Response.Write("URL de acesso: " & transacao.UrlAcesso & "<br />")
    Response.Write("Detalhes: <br />")

    'A propriedade Detalhes é um objeto do tipo "Scripting.Dictionary".'
    'As chaves do dicionário variam de acordo com o meio de pagamento da transação.'
    Dim key : For Each key In transacao.Detalhes.keys()
        Response.Write("- " & key & ": " & transacao.Detalhes(key) & "<br />")
    Next
  End If

  'Sempre libere os recursos dos objetos após utilizá-los.'
  Set cielo = Nothing
  Set transacao = Nothing
  Set gateway = Nothing
  %>
<br />
      require 'locaweb-gateway'
      transacao = Locaweb::Gateway.criar(
        :url_retorno => 'http://foo.com/sucesso_pedido.php?pedido=12345',
        :capturar => true,
        :pedido => {
          :numero => "123",
          :total => "100.00",
          :moeda => :real,
          :descricao => "Carrinho de Compras"
        },
        :pagamento => {
          :meio_pagamento => :redecard_ws,
          :bandeira => :visa,
          :cartao_numero => "4012001037141112",
          :cartao_cvv => "973",
          :parcelas => "1",
          :tipo_operacao => "credito_a_vista",
          :cartao_validade => "082015"
        },
        :comprador => {
          :nome => "Nome do comprador",
          :documento => "12345678900",
          :endereco => "Rua da Casa",
          :numero => "23",
          :cep => "09710240",
          :bairro => "Centro",
          :cidade => "São Paulo",
          :estado => "SP"
        }
      )
      from locaweb_gateway import LocawebGateway
      transacao = LocawebGateway.criar({
         "url_retorno": 'http://foo.com/sucesso_pedido.php?pedido=12345',
         "capturar": True,
         "pedido": {
           "numero": "123",
           "total": "100.00",
           "moeda":  "real",
           "descricao": "Carrinho de Compras"
         },
         "pagamento": {
           "meio_pagamento": "redecard_ws",
           "bandeira": "visa",
           "cartao_numero": "4012001037141112",
           "cartao_cvv": "973",
           "parcelas": "1",
           "tipo_operacao": "credito_a_vista",
           "cartao_validade": "082015"
         },
         "comprador": {
           "nome": "Nome do comprador",
           "documento": "12345678900",
           "endereco": "Rua da Casa",
           "numero": "23",
           "cep": "09710240",
           "bairro": "Centro",
           "cidade": u"São Paulo",
           "estado": "SP"
         }
      })

Após executar esta requisição, se você passou o paramêtro "capturar" como "true", a transação será capturada automaticamente e você deve receber como retorno os dados da transação com o status igual a "paga" em caso de sucesso ou "negada" em caso de falha.

Se você passar o parâmetro "capturar" como "false", não irá ocorrer a captura automática e deve retornar status "negada" em caso de falha ou "aguardando pagamento" se houver sucesso. Nesse caso, você deve efetuar a captura manualmente conforme exemplo abaixo.

Veja o exemplo da captura manual da Transação, já em em formato JSON que é o formato recebido pelo Gateway de Pagamento:

        curl 'https://api.gatewaylocaweb.com.br/v1/transacao/150/capturar' \
        -H "Content-Type: application/json" \
        -d '{ "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240"}'
      
        <?php
        require 'LocawebGateway.php';
        $transacao = LocawebGateway::capturar(150)->sendRequest();
        var_dump($transacao);
        ?>
      
  <!-- #include file="locaweb/LocawebGateway.asp" -->
  <%
  Set gateway = New LocawebGateway
  Set transacao = gateway.Capturar(150) 'O parâmetro é o ID da transação.'

  Response.Write("Dados da transação<br />")
  Response.Write("ID: " & transacao.ID & "<br />")
  Response.Write("Status: " & transacao.Status & "<br />")
  Response.Write("Número do pedido: " & transacao.NumeroPedido & "<br />")
  Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "<br />")
  Response.Write("URL de acesso: " & transacao.UrlAcesso & "<br />")
  Response.Write("Detalhes: <br />")

  'A propriedade Detalhes é um objeto do tipo "Scripting.Dictionary".'
  'As chaves do dicionário variam de acordo com o meio de pagamento da transação.'
  Dim key : For Each key In transacao.Detalhes.keys()
    Response.Write("- " & key & ": " & transacao.Detalhes(key) & "<br />")
  Next

  If transacao.TemErro Then
    Response.Write("Erros encontrados<br />")
    Response.Write("Código de erro: " & transacao.ErroCodigo & "<br />")
    Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "<br />")
  End If

  'Sempre libere os recursos dos objetos após utilizá-los.'
  Set transacao = Nothing
  Set gateway = Nothing
  %>
      
        require "locaweb-gateway"
        transacao = Locaweb::Gateway.capturar(150)
      
        from locaweb_gateway import LocawebGateway
        transacao = LocawebGateway.capturar(150)
      

Após isso sua transação foi criada com sucesso, tendo passado inclusive pela captura do pagamento do usuário, se ocorreu com sucesso deve estar com o status de "paga" ou em caso de falha deve estar com o status de "negada".

Transação com dados sigilosos informados fora loja.

Nessa modalidade, utilizada pelas operadoras Cielo Buy-page Cielo, Redecard Komerci Integrado e Itaú Shopline, os dados sigilosos, como o número do cartão, a validade e dígitos verificadores, são informados pelo usuário em ambiente externo à loja, reduzindo os cuidados necessários com os dados.

Sendo assim, a requisição não deve enviar tais dados. Porém, o usuário deverá ser direcionado a uma URL para informar seus dados. Essa URL será retornada na criação da transação, no campo chamado "url_acesso".

Como o comprador irá ser redirecionado para a url_acesso, saindo do ambiente da sua loja, é essencial que você forneça um outro campo em sua requisição chamado "url_retorno". O endereço informado neste campo é a URL para a qual o usuário será redirecionado após informar os dados.

Exemplo de criação:

curl -s https://api.gatewaylocaweb.com.br/v1/transacao \
-H "Content-Type: application/json" \
-d '{ "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240",
      "transacao":{ "url_retorno":"http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345",
      "capturar":"true",
      "pedido":{
        "numero":"123",
        "total":"100.00",
        "moeda":"real",
        "descricao":"Raider"
      }, "pagamento":{
        "meio_pagamento":"itau_shopline",
        "parcelas":"1",
        "tipo_operacao":"credito_a_vista"
      }, "comprador":{
        "nome":"Nome do comprador",
        "documento":"12345678900",
        "endereco":"Rua da Casa",
        "complemento":"Ap 82",
        "numero":"1",
        "cep":"09710240",
        "bairro":"Centro",
        "cidade":"São Paulo",
        "estado":"SP"
} } }'
    
 <?php
      $transacao = LocawebGateway::criar(array(
        'url_retorno' => 'http://www.minha-loja.com.br/confirmacao-pedido.php?id=12345',
        'capturar' => 'true',
        'pedido' => array(
          'numero' => "123",
          'total' => "100.00",
          'moeda' => "real",
          'descricao' => "Carrinho de Compras"
        ),
        'pagamento' => array(
          'meio_pagamento' => 'itau_shopline',
          'parcelas' => "1",
          'tipo_operacao' => "credito_a_vista"
        ),
        'comprador' => array(
          'nome' => "Nome do comprador",
          'documento' => "27836038881",
          'endereco' => "Rua da Casa",
          'numero' => "1",
          'cep' => "09710240",
          'bairro' => "Centro",
          'cidade' => "São Paulo",
          'estado' => "SP"
        )
      ))->sendRequest();
      var_dump($transacao);
      ?>
    
    <%
  Set itau_shopline = New LocawebGatewayTransacaoDados

  With itau_shopline
    .UrlRetorno = "http://www.sualoja.com.br/retorno"
    .Capturar = True

    .PedidoNumero = "987654"
    .PedidoTotal = 123.45
    .PedidoMoeda = "real"
    .PedidoDescricao = "Bola de Basquete Never Flat Spalding (1)"

    .PagamentoMeioPagamento = "itau_shopline"
    .PagamentoTipoOperacao = "credito_a_vista"
    .PagamentoParcelas = 1

    .CompradorNome = "Pedro Bonamides"
    .CompradorDocumento = "1234568909"
    .CompradorEndereco = "Rua Itapaiúna"
    .CompradorNumero = "5434"
    .CompradorBairro = "Jardim Morumbi"
    .CompradorCidade = "São Paulo"
    .CompradorEstado = "SP"
    .CompradorCEP = "05707-001"
  End With

  Set gateway = New LocawebGateway
  Set transacao = gateway.Criar(itau_shopline)

  If transacao.TemErro Then
    Response.Write("Erros encontrados<br />")
    Response.Write("Código de erro: " & transacao.ErroCodigo & "<br />")
    Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "<br />")
  Else
    Response.Write("Dados da transação<br />")
    Response.Write("ID: " & transacao.ID & "<br />")
    Response.Write("Status: " & transacao.Status & "<br />")
    Response.Write("Número do pedido: " & transacao.NumeroPedido & "<br />")
    Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "<br />")
    Response.Write("URL de acesso: " & transacao.UrlAcesso & "<br />")
    Response.Write("Detalhes: <br />")

    'A propriedade Detalhes é um objeto do tipo "Scripting.Dictionary".'
    'As chaves do dicionário variam de acordo com o meio de pagamento da transação.'
    Dim key : For Each key In transacao.Detalhes.keys()
        Response.Write("- " & key & ": " & transacao.Detalhes(key) & "<br />")
    Next
  End If

  'Sempre libere os recursos dos objetos após utilizá-los.'
  Set itau_shopline = Nothing
  Set transacao = Nothing
  Set gateway = Nothing
  %>
    
transaction = Locaweb::Gateway.criar(
    :url_retorno => 'http://foo.com/url_retorno',
    :capturar => true,
    :pedido => {
        :numero => 123,
        :total => "100.00",
        :moeda => :real,
        :descricao => "Carrinho de Compras"
    },
    :pagamento => {
        :meio_pagamento => :itau_shopline,
        :parcelas => "1",
        :tipo_operacao => "credito_a_vista",
        :vencimento_cartao => "082015"
    },
    :comprador => {
        :nome => "Nome do comprador",
        :documento => "12345678900",
        :endereco => "Rua da Casa",
        :numero => "23",
        :cep => "09710240",
        :bairro => "Centro",
        :cidade => "São Paulo",
        :estado => "SP"
    }
)
    
from locaweb_gateway import LocawebGateway

transacao = LocawebGateway.criar({
   "url_retorno": 'http://foo.com/sucesso_pedido.php?pedido=12345',
   "capturar": True,
   "pedido": {
     "numero": "123",
     "total": "100.00",
     "moeda":  "real",
     "descricao": "Carrinho de Compras"
   },
   "pagamento": {
     "meio_pagamento": "itau_shopline",
     "parcelas": "1",
     "tipo_operacao": "credito_a_vista",
   },
   "comprador": {
     "nome": "Nome do comprador",
     "documento": "12345678900",
     "endereco": "Rua da Casa",
     "numero": "23",
     "cep": "09710240",
     "bairro": "Centro",
     "cidade": u"São Paulo",
     "estado": "SP"
   }
})
    

Essa requisição terá como retorno desse convênio semelhante ao seguinte exemplo:

{
  "transacao": {
    "id": 159,
    "status": "aguardando_pagamento",
    "meio_pagamento": "itau_shopline",
    "numero_pedido": 123,
    "total": "100.00",
    "url_acesso": "https://api.gatewaylocaweb.com.br/v1/itau_shopline/32913047-4dda-4658-9ed1-7fb275749f03",
    "detalhes": {
      "nsu": null,
      "tipo_pagamento": null,
      "data_pagamento": null,
      "numero_autorizacao": null,
      "tipo_cartao": null
    },
    "erro": null
  }
}

Após esse retorno, você deve então redirecionar o seu cliente ao endereço que consta no campo "url_acesso", onde ele irá preencher os dados necessários e será então redirecionado para a "url_retorno" que você informou na requisição.

Na página que você informou como "url_retorno", você deverá consultar o status da transação. Ele é passado como um parâmetro na "url_retorno". Veja um exemplo de chamada a "url_retorno":

http://www.seusite.com.br/retorno?transacao=150

Nesse caso, o ID da transação da qual o usuário está retornando é 150, logo você deve consultar este ID utilizando a API do gateway, conforme o exemplo abaixo:

      curl 'https://api.gatewaylocaweb.com.br/v1/transacao/150?token=3a5bbed0-50d4-012f-8d73-0026bb5a6240'
    
      <?php
      require 'LocawebGateway.php';
      $transacao = LocawebGateway::consultar(150)->sendRequest();
      var_dump($transacao);
      ?>
    
  <!-- #include file="locaweb/LocawebGateway.asp" -->
   <%
  Set gateway = New LocawebGateway
  Set transacao = gateway.Consultar(150) 'O parâmetro é o ID da transação.'

  Response.Write("Dados da transação<br />")
  Response.Write("ID: " & transacao.ID & "<br />")
  Response.Write("Status: " & transacao.Status & "<br />")
  Response.Write("Número do pedido: " & transacao.NumeroPedido & "<br />")
  Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "<br />")
  Response.Write("URL de acesso: " & transacao.UrlAcesso & "<br />")
  Response.Write("Detalhes: <br />")

  'A propriedade Detalhes é um objeto do tipo "Scripting.Dictionary".'
  'As chaves do dicionário variam de acordo com o meio de pagamento da transação.'
  Dim key : For Each key In transacao.Detalhes.keys()
    Response.Write("- " & key & ": " & transacao.Detalhes(key) & "<br />")
  Next

  If transacao.TemErro Then
    Response.Write("Erros encontrados<br />")
    Response.Write("Código de erro: " & transacao.ErroCodigo & "<br />")
    Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "<br />")
  End If

  'Sempre libere os recursos dos objetos após utilizá-los.'
  Set transacao = Nothing
  Set gateway = Nothing
  %>
    
      require "locaweb-gateway"
      transacao = Locaweb::Gateway.consultar(150)
    
      from locaweb_gateway import LocawebGateway
      transacao = LocawebGateway.consultar(150)
    

Após isso, com base no status retornado pela consulta, atualize sua base de dados. Se a transação for bem sucedida, terá o status "paga". Caso contrário, constará o status "negada".

Transação sem passagem de dados sigilosos.

No caso de emissão de boletos, não há nenhum dado sigiloso a ser trafegado e nem há necessidade de se direcionar o usuário a um ambiente externo. Porém, se o usuário tiver a necessidade de acessar o boleto para efetuar o pagamento, deve ser direcionada a uma URL. Esse endereço é retornado no campo "url_acesso" após a criação da transação.

Cada banco possui um "meio_pagamento" específico. A listagem completa pode ser encontrada no tópico de boletos.

Exemplo de criação:

      curl 'https://api.gatewaylocaweb.com.br/v1/transacao' \
      -H "Content-Type: application/json" \
      -d '{
       "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240",
       "transacao":{
         "url_retorno":"http://foo.com/url_retorno",
         "capturar":"true",
         "pedido":{
            "numero":"123",
            "total":"100.00",
            "moeda":"real",
            "descricao":"Camisa de futebol"
         },
         "pagamento":{
            "meio_pagamento":"boleto_banco_brasil",
            "data_vencimento": "23122012"
         },
         "comprador":{
            "nome":"Nome do comprador",
            "documento":"12345678900",
            "endereco":"Rua da Casa",
            "complemento":"Ap 82",
            "numero":"1",
            "cep":"09710240",
            "bairro":"Centro",
            "cidade":"São Paulo",
            "estado":"SP"
         }
       }
      }'
    
      <?php
      require 'LocawebGateway.php';
      $transacao = LocawebGateway::criar(array(
        'url_retorno' => 'http://foo.com/url_retorno',
        'capturar' => 'true',
        'pedido' => array(
          'numero' => "123",
          'total' => "100.00",
          'moeda' => "real",
          'descricao' => "Camisa de futebol"
        ),
        'pagamento' => array(
          'meio_pagamento' => 'boleto_banco_brasil',
          'data_vencimento' => '23122012',
        ),
        'comprador' => array(
          'nome' => "Nome do comprador",
          'documento' => "27836038881",
          'endereco' => "Rua da Casa",
          'numero' => "1",
          'cep' => "09710240",
          'bairro' => "Centro",
          'cidade' => "São Paulo",
          'estado' => "SP"
        )
      ))->sendRequest();
      var_dump($transacao);
      ?>
    
      <!-- #include file="locaweb/LocawebGateway.asp" -->
  <%
  Set boleto = New LocawebGatewayTransacaoDados

  With boleto
    .PagamentoMeioPagamento = "boleto_itau"
    .PagamentoDataVencimento = "23122012"

    .PedidoNumero = "72812923"
    .PedidoTotal = 123.45
    .PedidoMoeda = "real"
    .PedidoDescricao = "Bola de Basquete Never Flat Spalding (1)"

    .CompradorNome = "Pedro Bonamides"
    .CompradorDocumento = "12345678909"
    .CompradorEndereco = "Rua Itapaiúna"
    .CompradorNumero = "5434"
    .CompradorBairro = "Jardim Morumbi"
    .CompradorCidade = "São Paulo"
    .CompradorEstado = "SP"
    .CompradorCEP = "05707-001"
  End With

  Set gateway = New LocawebGateway
  Set transacao = gateway.Criar(boleto)

  If transacao.TemErro Then
    Response.Write("Erros encontrados<br />")
    Response.Write("Código de erro: " & transacao.ErroCodigo & "<br />")
    Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "<br />")
  Else
    Response.Write("Dados da transação<br />")
    Response.Write("ID: " & transacao.ID & "<br />")
    Response.Write("Status: " & transacao.Status & "<br />")
    Response.Write("Número do pedido: " & transacao.NumeroPedido & "<br />")
    Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "<br />")
    Response.Write("URL de acesso: " & transacao.UrlAcesso & "<br />")
  End If

  'Sempre libere os recursos dos objetos após utilizá-los.'
  Set boleto = Nothing
  Set transacao = Nothing
  Set gateway = Nothing
  %>
    transaction = Locaweb::Gateway.criar(
    :url_retorno => 'http://foo.com/url_retorno',
    :capturar => true,
    :pedido => {
        :numero => 123,
        :total => "100.00",
        :moeda => :real,
        :descricao => "Camisa de futebol"
    },
    :pagamento => {
        :meio_pagamento => :boleto_banco_brasil,
        :data_vencimento => "23122012",
    },
    :comprador => {
        :nome => "Nome do comprador",
        :documento => "12345678900",
        :endereco => "Rua da Casa",
        :numero => "23",
        :cep => "09710240",
        :bairro => "Centro",
        :cidade => "São Paulo",
        :estado => "SP"
    }
)
    
      transacao = LocawebGateway.criar({
         "url_retorno": 'http://foo.com/url_retorno',
         "capturar": True,
         "pedido": {
           "numero": "123",
           "total": "100.00",
           "moeda":  "real",
           "descricao": "Camisa de futebol"
         },
         "pagamento": {
           "meio_pagamento": "boleto_banco_brasil",
           "data_vencimento": "23122012",
         },
         "comprador": {
           "nome": "Nome do comprador",
           "documento": "12345678900",
           "endereco": "Rua da Casa",
           "numero": "23",
           "cep": "09710240",
           "bairro": "Centro",
           "cidade": u"São Paulo",
           "estado": "SP"
         }
      })
    

Esta requisição terá um retorno similar a:

{
  "transacao": {
    "id": 158,
    "status": "aguardando_pagamento",
    "meio_pagamento": "boleto_banco_brasil",
    "numero_pedido": 123,
    "total": "100.00",
    "url_acesso": "https://api.gatewaylocaweb.com.br/v1/boleto/3db0023b-de04-433a-a14c-d75d420d654b",
    "erro": null
  }
}

O campo "url_acesso" é o endereço do boleto e pode ser repassado sem riscos ao usuário.

Tendo em vista que os boletos gerados pelo Gateway de Pagamento não são registrados, é necessário que você verifique manualmente em seu banco o pagamento ou não dos boletos. O Gateway de Pagamento não irá atualizar o status dos boletos gerados. Portanto, esta transação permanecerá sempre com o status: "aguardando pagamento".

Status das Transações

Com exceção da Cielo e da Redecard, os outros Meios de Pagamento não retornam todos os status. Para mais informações consulte as informações no tópico do meio de pagamento específico.

As transações do Gateway de Pagamentos Locaweb sempre possuem um status que reflete a condição atual da transação. Segue abaixo os status do Gateway de Pagamentos da Locaweb:

Status Descrição
aguardando_pagamento A transação foi criada, mas o pagamento não foi efetuado pelo comprador.
paga A transação foi criada e o pagamento foi efetuado pelo comprador.
negada A transação foi criada, mas o pagamento foi negado/não pago e/ou cartão não autorizado. Ex.: Cartão de Crédito sem limite.
cancelada A transação foi criada, o pagamento foi efetuado e cancelado(estornado) pelo lojista.

Consultando Transações

Podemos consultar as transações na interface administrativa de produção ou na interface administrativa de sandbox .

Depois de se autenticar na interface administrativa, acesse o menu de "Transações".

Caso você queira fazer uma pesquisa mais apurada, realize uma "Busca Avançada".

Você também pode ver os detalhes da transação em "Ver Detalhes".