Informações e instruções das APIs dos produtos Locaweb.
Como funcionam as transações feitas pelo Gateway.
Para que o Gateway de Pagamento funcione em seu site ou loja, é necessário que ele gere transações. Entenda abaixo como isso funciona.
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 tambem 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.
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 numero 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. |
Existem três tipos de transações que podem ser feitas e cada uma delas têm um fluxo distinto:
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
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 numero do cartão, validade do cartão e digito verificador do cartão, são informados pelo comprador em uma página de seu site ou loja.
Lembre-se que os dados sigilosos relacionados ao cartão não podem ser armazenados, logados ou capturados em ambiente não-seguro.
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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"
}
}
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<!-- #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
%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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"
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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:
1
2
3
curl 'https://api.gatewaylocaweb.com.br/v1/transacao/150/capturar' \
-H "Content-Type: application/json" \
-d '{ "token":"3a5bbed0-50d4-012f-8d73-0026bb5a6240"}'
1
2
3
4
5
<?php
require 'LocawebGateway.php';
$transacao = LocawebGateway::capturar(150)->sendRequest();
var_dump($transacao);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- #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")
Response.Write("ID: " & transacao.ID & "")
Response.Write("Status: " & transacao.Status & "")
Response.Write("Número do pedido: " & transacao.NumeroPedido & "")
Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "")
Response.Write("URL de acesso: " & transacao.UrlAcesso & "")
Response.Write("Detalhes: ")
'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) & "")
Next
If transacao.TemErro Then
Response.Write("Erros encontrados")
Response.Write("Código de erro: " & transacao.ErroCodigo & "")
Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "")
End If
'Sempre libere os recursos dos objetos após utilizá-los.'
Set transacao = Nothing
Set gateway = Nothing
%>
1
2
require "locaweb-gateway"
transacao = Locaweb::Gateway.capturar(150)
1
2
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” em caso de sucesso ou de “negada” em caso de falha.
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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"
} } }'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<%
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")
Response.Write("Código de erro: " & transacao.ErroCodigo & "")
Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "")
Else
Response.Write("Dados da transação")
Response.Write("ID: " & transacao.ID & "")
Response.Write("Status: " & transacao.Status & "")
Response.Write("Número do pedido: " & transacao.NumeroPedido & "")
Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "")
Response.Write("URL de acesso: " & transacao.UrlAcesso & "")
Response.Write("Detalhes: ")
'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) & "")
Next
End If
'Sempre libere os recursos dos objetos após utilizá-los.'
Set itau_shopline = Nothing
Set transacao = Nothing
Set gateway = Nothing
%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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"
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"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”:
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:
1
curl 'https://api.gatewaylocaweb.com.br/v1/transacao/150?token=3a5bbed0-50d4-012f-8d73-0026bb5a6240'
1
2
3
4
5
<?php
require 'LocawebGateway.php';
$transacao = LocawebGateway::consultar(150)->sendRequest();
var_dump($transacao);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!-- #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")
Response.Write("ID: " & transacao.ID & "")
Response.Write("Status: " & transacao.Status & "")
Response.Write("Número do pedido: " & transacao.NumeroPedido & "")
Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "")
Response.Write("URL de acesso: " & transacao.UrlAcesso & "")
Response.Write("Detalhes: ")
'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) & "")
Next
If transacao.TemErro Then
Response.Write("Erros encontrados")
Response.Write("Código de erro: " & transacao.ErroCodigo & "")
Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "")
End If
'Sempre libere os recursos dos objetos após utilizá-los.'
Set transacao = Nothing
Set gateway = Nothing
%>
1
2
require "locaweb-gateway"
transacao = Locaweb::Gateway.consultar(150)
1
2
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”.
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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"
}
}
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!-- #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")
Response.Write("Código de erro: " & transacao.ErroCodigo & "")
Response.Write("Mensagem de erro: " & transacao.ErroMensagem & "")
Else
Response.Write("Dados da transação")
Response.Write("ID: " & transacao.ID & "")
Response.Write("Status: " & transacao.Status & "")
Response.Write("Número do pedido: " & transacao.NumeroPedido & "")
Response.Write("Meio de pagamento: " & transacao.MeioPagamento & "")
Response.Write("URL de acesso: " & transacao.UrlAcesso & "")
End If
'Sempre libere os recursos dos objetos após utilizá-los.'
Set boleto = Nothing
Set transacao = Nothing
Set gateway = Nothing
%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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"
}
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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:
1
2
3
4
5
6
7
8
9
10
11
{
"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”.
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:
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 Meios de Pagamento.
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. |
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”.