Fevereiro, 2015
ESPECIFICAÇÃO TÉCNICA
CIELO MOBILE – CAIXA RÁPIDO
3
Í
N
D
I
C
E
VERSÃO DO DOCUMENTO ...
7INTRODUÇÃO ...
7OBJETIVO ...
7CENÁRIO ...
7FUNCIONAMENTO ...
7INTEGRAÇÃO ...
8MENSAGENS ...
9PAGAMENTO ...
9 URL ... 9 Parâmetros ... 9Detalhamento parâmetro MENSAGEM ... 10
Método de envio ... 10
Android ... 10
IOS ... 10
Diagrama de sequência – pagamento com sucesso ... 11
Fluxo de exceção 1 – transação aprovada já realizada ... 11
Diagrama de sequência – Re-tentativa de pagto. aprovado ... 12
4
Fluxo de exceção 3 – Cielo Mobile bloqueado ou em estado de
Terminal Inoperante ... 12
RESPOSTA DO PAGAMENTO ...
13URL ... 13
Parâmetros ... 13
Detalhamento parâmetro MENSAGEM ... 14
Método de recebimento ... 15 Android ... 15 IOS ... 15
CANCELAMENTO ...
16 URL ... 16 Parâmetros ... 16Detalhamento parâmetro MENSAGEM ... 17
Método de envio ... 17
Android ... 17
IOS ... 17
Diagrama de sequência – Cancelamento com sucesso ... 18
Fluxo de exceção – Cancelamento já realizado ... 19
RESPOSTA DO CANCELAMENTO ...
19URL ... 19
Parâmetros ... 19
Detalhamento parâmetro MENSAGEM ... 20
Método de recebimento ... 21
5 IOS ... 22
HISTÓRICO ...
22 URL ... 22 Parâmetros ... 22RETORNO HISTÓRICO ...
22 URL ... 22 Parâmetros ... 22Detalhamento parâmetro MENSAGEM ... 23
Método de recebimento ... 23 Android ... 23 IOS ... 23
CONSULTAR TRANSAÇÃO ...
23 URL ... 23 Parâmetros ... 24Detalhamento parâmetro MENSAGEM ... 24
Método de envio ... 24 Android ... 24 IOS ... 24
RESPOSTA DA CONSULTA ...
25 URL ... 25 Parâmetros ... 25Detalhamento parâmetro MENSAGEM ... 26
Método de recebimento ... 27
6
IOS ... 28
EXPORTAÇÃO DE HISTÓRICO ...
28URL ... 28
Parâmetros ... 28
Detalhamento parâmetro MENSAGEM ... 28
Método de envio ... 28
Android ... 28
IOS ... 29
RESPOSTA DA EXPORTAÇÃO DO HISTÓRICO ...
29URL ... 29
Parâmetros ... 29
Detalhamento parâmetro MENSAGEM ... 30
Método de recebimento ... 31
Android ... 31
IOS ... 31
EXEMPLO DE IMPLEMENTAÇÃO DE CLIENTE IOS ...
31Envio IOS (Pagamento) ... 31
Recebimento IOS (Pagamento) ... 32
Validação IOS ... 32
PList Cadastro URL CallBack ... 32
EXEMPLO DE IMPLEMENTAÇÃO DE CLIENTE ANDROID ...
33Envio (Pagamento) ... 33
Recebimento (Pagamento) ... 33
7
Dados de Retorno ActivityResult ... 34
Android Manifest ... 34
DADOS DE RETORNO ...
35 Fluxo ... 35 Tipo de captura ... 36 Códigos de Resposta ... 36 Retorno da Aplicação ... 36ORIENTAÇÕES FINAIS ...
378
V E R S Ã O D O D O C U M E N T O
Essa é a versão 1.11 do manual de integração, de Junho de 2015, contemplando as alterações abaixo:
Inclusão do retorno do nome da bandeira, nome do produto primário e nome do produto secundário no retorno do pagamento, cancelamento e consulta.
INTRODUÇÃO
Para iniciar o desenvolvimento de integração ao Cielo Mobile, favor enviar e-mail para integracaocielomobile@cielo.com.br para receber os dados necessários para
desbloqueio do aplicativo e configuração ao ambiente de certificação.
Importante destacar que os dados enviados funcionarão apenas no ambiente de teste até a conclusão do desenvolvimento.
O ambiente de certificação é disponibilizado para você efetuar os testes de integração entre o seu aplicativo e o Cielo Mobile. O seu estabelecimento comercial em produção pode não possuir todos os serviços financeiros disponíveis no ambiente de certificação. Em casos de dúvidas durante o período de Integração ao Cielo Mobile, favor direcioná-las ao e-mail integracaocielomobile@cielo.com.br, com o seguinte conteúdo:
- Número Lógico de teste. - Número do Estabelecimento.
- Dúvida ou Evidência de erro encontrado, caso houver.
OBJETIVO
Permitir que aplicações de terceiros realizem um pagamento utilizando o aplicativo Cielo mobile.
CENÁRIO
Ao final de uma venda utilizando um aplicativo móvel, o vendedor seleciona a opção de pagamento com Cielo Mobile. A aplicação móvel de venda abre o aplicativo Cielo Mobile com o valor da venda já informado.
9
O aplicativo Cielo Mobile é iniciado após a escolha do tipo de venda (crédito, débito, crediário ou refeição) e segue o fluxo normal com exceção de alguns parâmetros, como por exemplo, o valor que já estará preenchido. Finalizando o processo, o Cielo Mobile retornará ao aplicativo original, informando o resultado da transação.
INTEGRAÇÃO
Haverá mudança de contexto e a aplicação que irá para foreground será a do Cielo mobile. Para as interfaces de Consulta e Exportação o retorno é feito para a aplicação cliente sem a interação do usuário com o Cielo Mobile;
Transações realizadas no modelo de Caixa Rápido serão identificadas como tal no histórico;
A comunicação com o Cielo Mobile é feita em duas pernas: pagamento e resposta do pagamento;
A comunicação com o Cielo Mobile é assíncrona, a aplicação de venda faz uma chamada ao Cielo Mobile e informa uma URL de retorno;
Se a aplicação de venda não receber uma resposta deve repetir a transação com os mesmos dados informados anteriormente. A aplicação Cielo Mobile verificará se o pagamento já foi realizado e não repetirá a transação retornando à aplicação de venda os dados do resultado do pagamento já realizado (apenas para transações autorizadas);
Outra opção é a aplicação de venda realizar uma consulta para verificar o status da venda. Se for aprovada, o Cielo Mobile retornará os dados da venda. Caso contrário, informará que a venda não foi encontrada;
A cada transação (pagamento ou cancelamento) a aplicação de venda deve enviar um novo identificador de transação (idTransacao).
10 MENSAGENS
Os parâmetros identificados na coluna forma de envio como “GET” devem ser enviados junto à URL e codificados para serem usados como tal (URL Encode);
Os parâmetros identificados na coluna forma de envio como “EXTRA” devem ser enviados no formato JSON, conforme exemplificado abaixo, como um EXTRA da Intent, cuja chave (KEY) deve ser a string definida como nome do parâmetro.
PAGAMENTO
Mensagem utilizada para iniciar uma transação de pagamento no aplicativo Cielo Mobile. O aplicativo é iniciado da mesma forma que ocorre no Cielo Mobile quando a opção “Cartão” é selecionada na tela principal.
URL
cielomobile://pagar
PARÂMETROS
Parâmetro Descrição Exemplo urlCallback Endereço de callback para a
aplicação de venda.
urlCallback=appcliente://retornopagamento
MENSAGEM Objeto JSON {
"idTransacao":"1", "valor":"200", “estVenda":"0010000244470001", “nomeAplicacao":"Aplicação de Venda", “referencia":"Venda 123" “tipoProdutoAdministrativo":"false", “email”:”cliente@email.com.br”
11
}
Detalhamento parâmetro MENSAGEM
Parâmetro Descrição Exemplo
idTransacao Id da transação na aplicação de venda. Deve ser único por transação.
100
valor Valor da transação sem o separador da casa decimal.
200 para o valor 2,00.
estVenda Estabelecimento para Venda 0010000244470001
nomeAplicacao Nome da aplicação que está integrando com o Cielo Mobile
Aplicação de Venda
referencia Referência do pagamento que está sendo enviado
Venda 100
tipoProdutoAdministrativo Se deve exibir somente os produtos do tipo administrativo.
False
email E-mail do portador do cartão que receberá o comprovante da transação.
cliente@email.com.br MÉTODO DE ENVIO Android Parâmetro Método urlCallback GET MENSAGEM Extra Exemplo: cielomobile://pagar?urlCallback=appcliente://retornopagamento
12 IOS Parâmetro Método urlCallback GET MENSAGEM GET Exemplo: cielomobile://pagar?urlCallback=appcliente://retornopagamento&mensage m=%7B%22dataTransacao%22:%22141208104222%22,%22valor%22: %221200%22,%22idTransacao%22:%22123412%22,%22referencia%22: %22refer%C3%AAncia%22,%22tipoTransacao%22:1,%22nomeAplicacao %22:%22aplicado%20cliente%22,%22estVenda%22:%22000000000000 000004%22%7D
,%22email%22%3A%22cliente%40email.com.br%22
13 FLUXO DE EXCEÇÃO 1 – TRANSAÇÃO APROVADA JÁ REALIZADA
Se a aplicação de venda não receber uma resposta, ela pode repetir a transação utilizando o mesmo ID. O Cielo Mobile verificará se a transação já foi realizada e caso já tenha sido, não repetirá a mesma e retornará os dados da transação para a
aplicação de venda. Deste modo o aplicativo pode realizar a chamada de pagamento ao Cielo Mobile múltiplas vezes sem duplicar a transação.
14 FLUXO DE EXCEÇÃO 2 – TRANSAÇÃO NEGADA
Se o pagamento for negado ou se a aplicação de venda não receber uma resposta, ela pode repetir a transação utilizando o mesmo ID. Nesse caso, o Cielo Mobile não
guardará as informações dessa transação e por isso iniciará um novo fluxo de pagamento.
FLUXO DE EXCEÇÃO 3 - CIELO MOBILE BLOQUEADO OU EM ESTADO DE TERMINAL INOPERANTE
Quando o aplicativo está bloqueado ou em estado de terminal inoperante, o Cielo Mobile retorna à aplicação de venda informando o erro na mensagem de Resposta do Pagamento.
RESPOSTA DO PAGAMENTO
Quando um pagamento é finalizado, o Cielo Mobile retorna o fluxo para a aplicação de venda com o resultado do pagamento. O endereço de retorno será o informado no parâmetro urlCallback da mensagem de pagamento, e ele deverá ser capaz de receber os parâmetros abaixo.
15 URL
A URL é definida na aplicação do parceiro. Exemplo: appcliente://retornopagamento
PARÂMETROS
Parâmetro Descrição Exemplo
MENSAGEM Objeto JSON {
"captura":"ONL-X”, ”codAutorizacao":"133222", "codProdutoMatriz":"4", "codProdutoSecundario":"204", "codResposta":"000", "dataRequisicao":"141114133218", "dataServidor":"141114133218", "estAcquirer":"0010000244470001", "estVenda":"0000000000000003", "fluxo":"4", “idAplicacao":"com.appParceiro", "idTransacao":"1", "modoCaptura":"141010204080", “nomeAplicacao":"App Parceiro", "nsu":"419343", "pan":"455182-9478", “referencia":"Venda 123", "retornoAplicacao":"R00", “tipoTransacao":1, "valor":"200", "versaoAppFinanceira":"1.3.2",
16 “email”:”cliente@email.com.br”, “nomeBandeira”:”VISA”, “nomeProdutoMatriz”:”CREDITO”, “nomeProdutoSecundario”:”A VISTA” }
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
pan 6 primeiros-4 últimos dígitos do cartão ou 4 últimos dígitos do cartão
498453-1214 ou
************1214 captura Tipo de captura ("ONL-?" ou "OFF-?") ONL-C
codAutorizacao Código de Autorização 100324
codProdutoMatriz Código produto matriz 4
codProdutoSecundario Código produto secundário 204
codResposta Código de resposta 000
dataRequisicao Data/hora da requisição 140502100145 (yyMMddHHmmss)
dataServidor Data/hora servidor 140502100145
(yyMMddHHmmss)
estAcquirer Estab. do Acquirer – EC 0010000244470001
estVenda Estab. para Venda – EC 0000000000000003
fluxo Fluxo do POS 04
idAplicacao Id da aplicação que enviou a transação para o Cielo Mobile
17
idTransacao Id da transação 100
modoCaptura Modo captura 141010204080
nomeAplicacao Nome da aplicação que enviou a transação para o Cielo Mobile
App Parceiro
nsu Número do documento 469603
codAid Código do Aid utilizado na transação A0000000031010
parcelas Número de parcelas 3
referencia Referência da transação Venda 123
retornoAplicacao Código de Retorno da Aplicação R00 tipoTransacao Tipo da transação. Cancelamento ou
Pagamento.
1 - Pagamento 2 - Cancelamento
valor Valor final da transação 200 para o valor 2,00.
versaoAppFinanceira Versão da aplicação financeira do Cielo Mobile
1.3.2
Email E-mail para qual foi enviado o comprovante da transação.
cliente@email.com.br
nomeBandeira Bandeira do cartão utilizado VISA nomeProdutoMatriz Nome do produto matriz CREDITO
nomeProdutoSecundario Nome do produto secundário A VISTA
MÉTODO DE RECEBIMENTO
Android
18 MENSAGEM Extra IOS Parâmetro Método MENSAGEM GET CANCELAMENTO
No aplicativo Cielo Mobile, acesse a tela de cancelamento que solicita a digitação do CPF ou CNPJ do estabelecimento. O cancelamento é uma nova transação no
aplicativo do parceiro. A relação com o pagamento é feita no aplicativo Cielo Mobile, e por isso o cancelamento deve ter um novo identificador de transação.
URL
Cielomobile://cancelar
PARÂMETROS
Parâmetro Descrição Exemplo urlCallback Endereço de callback para
a aplicação de venda. cielomobile://cancelar?urlCallback=appcliente:
//retornocancelamento
MENSAGEM Objeto JSON {
"dataTransacao":"141208120609", "codProdutoMatriz":"4", "idTransacao":"321", "tipoTransacao":2, "valor":"200", "nsu":"12634", "codProdutoSecundario":"304",
19 "referencia":"referência", "dataServidor":"141208121212", "nomeAplicacao":"cliente", "estVenda":"00000000000004", “email”:”cliente@email.com.br” }
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
idTransacao Identificador da transação 1
codProdutoMatriz Código produto matriz 4
codProdutoSecundario Código produto secundário 204
dataServidor Data/hora servidor 141114133218
(yyMMddHHmmss) estVenda Estabelecimento para Venda – EC 0010000244470001
valor Valor da transação 200 para o valor
2,00. nomeAplicacao Nome da aplicação que enviou a transação
para o Cielo Mobile
Aplicação de Venda
nsu NSU 469603
referencia Referência da transação Venda 123
email E-mail do portador do cartão que receberá o comprovante de cancelamento da transação.
20 MÉTODO DE ENVIO Android Parâmetro Método urlCallback GET MENSAGEM Extra Exemplo: cielomobile://cancelar?urlCallback=appcliente://retornocancelamento IOS Parâmetro Método urlCallback GET MENSAGEM GET Exemplo: cielomobile://cancelar?urlCallback=appcliente://retornocancelamento&me nsagem=%7B%22dataTransacao%22:%22141208104506%22,%22codPr odutoMatriz%22:%224%22,%22idTransacao%22:%22123423%22,%22ti poTransacao%22:2,%22valor%22:%222100%22,%22nsu%22:%221234 5%22,%22codProdutoSecundario%22:%22321%22,%22referencia%22: %22refer%C3%AAncia%22,%22dataServidor%22:%22141208101010%2 2,%22nomeAplicacao%22:%22app%22,%22estVenda%22:%2200000000 0000003%22%7D
,%22email%22%3A%22cliente%40email.com.br%22
DIAGRAMA DE SEQÜÊNCIA – CANCELAMENTO COM SUCESSO21 FLUXO DE EXCEÇÃO – CANCELAMENTO JÁ REALIZADO
Se a aplicação de venda não receber uma resposta, ela pode repetir a transação utilizando o mesmo ID. O Cielo Mobile verificará se a transação já foi realizada e caso já tenha sido, não repetirá a mesma e retornará os dados da transação de
cancelamento para a aplicação de venda. Deste modo o aplicativo pode realizar a chamada de cancelamento ao Cielo Mobile múltiplas vezes sem duplicar a transação.
RESPOSTA DO CANCELAMENTO
Quando um cancelamento é finalizado, o Cielo Mobile retorna o fluxo para a aplicação de venda com o resultado do cancelamento. O endereço de retorno será o informado no parâmetro urlCallback da mensagem de cancelamento, e ele deverá ser capaz de receber os parâmetros abaixo.
22
A URL é definida na aplicação do parceiro. Exemplo: appcliente://retornocancelamento
PARÂMETROS
Parâmetro Descrição Exemplo
MENSAGEM Objeto JSON {
"captura":"ONL-X", "codAutorizacao":"141738", "codProdutoMatriz":"4", "codProdutoSecundario":"204", "codResposta":"000", "dataRequisicao":"141114141730", "dataServidor":"141114141730", "estAcquirer":"0010000244470001", "estVenda":"0010000244470001", "fluxo":"28", “idAplicacao":"com.appParceiro", "idTransacao":"2", "modoCaptura":"141010204080", “nomeAplicacao":"App Parceiro", "nsu":"419345", "pan":"455182-9478", “referencia":"Venda 123", "retornoAplicacao":"R00", "tipoTransacao":2, "valor":"200", "versaoAppFinanceira":"1.3.2", “email”:”cliente@email.com.br”, “nomeBandeira”:”VISA”,
23
“nomeProdutoMatriz”:”CREDITO”, “nomeProdutoSecundario”:”A VISTA” }
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
pan 6 primeiros-4 últimos dígitos do cartão ou 4 últimos dígitos do cartão
498453-1214 ou
************1214 captura Tipo de captura ("ONL-?" ou "OFF-?") ONL-C
codAutorizacao Código de Autorização 100324
codProdutoMatriz Código produto matriz 4
codProdutoSecundario Código produto secundário 204
codResposta Código de resposta 000
dataRequisicao Data/hora da requisição 140502100145 (yyMMddHHmmss)
dataServidor Data/hora servidor 140502100145
(yyMMddHHmmss)
estAcquirer Estab. do Acquirer – EC 0010000244470001
estVenda Estab. para Venda – EC 0000000000000003
fluxo Fluxo do POS 04
idAplicacao Id da aplicação que enviou a transação para o Cielo Mobile
com.appParceiro
24
modoCaptura Modo captura 141010204080
nomeAplicacao Nome da aplicação que enviou a transação para o Cielo Mobile
App Parceiro
nsu Número do documento 469603
codAid Código do Aid utilizado na transação A0000000031010
parcelas Número de parcelas 3
referencia Referência da transação Venda 123
retornoAplicacao Código de Retorno da Aplicação R00 tipoTransacao Tipo da transação. Cancelamento ou
Pagamento.
1 - Pagamento 2 - Cancelamento
valor Valor da transação 200 para o valor 2,00.
versaoAppFinanceira Versão da aplicação financeira do Cielo Mobile
1.3.2
email E-mail para qual foi enviado o comprovante de cancelamento da transação.
cliente@email.com.br
nomeBandeira Bandeira do cartão utilizado VISA nomeProdutoMatriz Nome do produto matriz CREDITO
nomeProdutoSecundario Nome do produto secundário A VISTA
MÉTODO DE RECEBIMENTO
Android
Parâmetro Método
25
IOS
Parâmetro Método
MENSAGEM GET
HISTÓRICO
Inicia o aplicativo Cielo Mobile na tela de exibição do histórico.
URL
cielomobile://exibirhistorico
PARÂMETROS
Parâmetro Descrição
urlCallback Endereço de callback para a aplicação de venda.
Exemplo:
cielomobile://exibirhistorico?urlCallback=appcliente://retornohistorico
RETORNO HISTÓRICO
Quando a exibição do histórico for finalizada, O Cielo Mobile retornará o fluxo para a aplicação de venda informando o resultado da chamada.
URL
A URL é definida na aplicação do parceiro. Exemplo: appcliente://retornohistorico
PARÂMETROS
26
MENSAGEM Objeto JSON {
“idAplicacao":"com.appParceiro", "retornoAplicacao":"R00",
}
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
retornoAplicacao Código de Retorno da Aplicação R00 idAplicacao Id da aplicação que enviou a transação para o Cielo
Mobile com.appParceiro MÉTODO DE RECEBIMENTO Android Parâmetro Método MENSAGEM Extra IOS Parâmetro Método MENSAGEM GET CONSULTAR TRANSAÇÃO
Busca uma transação específica feita pela aplicação do parceiro.
URL
27 PARÂMETROS
Parâmetro Descrição Exemplo urlCallback Endereço de callback para a
aplicação de venda. cielomobile://buscartransacao?urlCallback=
appcliente://retornoconsulta
MENSAGEM Objeto JSON {
"idTransacao":"1" }
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
idTransacao Id da transação a ser recuperada 1
MÉTODO DE ENVIO Android Parâmetro Método urlCallback GET MENSAGEM Extra Exemplo: cielomobile://buscartransacao?urlCallback=appcliente://retornoconsulta IOS Parâmetro Método urlCallback GET
28 MENSAGEM GET Exemplo: cielomobile://buscartransacao?urlCallback=appcliente://retornoconsulta& mensagem=%7B%22idTransacao%22%3A%22123%22%7D%0A RESPOSTA DA CONSULTA
Quando a consulta é realizada, o Cielo Mobile retornará o fluxo para a aplicação de venda com os dados da transação consultada. O endereço será o informado no
parâmetro “urlCallback” na mensagem de consulta. O endereço deverá ser capaz de receber os parâmetros abaixo.
URL
A URL é definida na aplicação do parceiro. Exemplo: appcliente://retornoconsulta
PARÂMETROS
Parâmetro Descrição Exemplo
MENSAGEM Objeto JSON {
"captura":"ONL-X", "codAutorizacao":"133222", "codProdutoMatriz":"4", "codProdutoSecundario":"204", "codResposta":"000", "dataRequisicao":"141114133218", "dataServidor":"141114133218", "estAcquirer":"0010000244470001", "estVenda":"0000000000000003", "fluxo":"4", "idAplicacao":"b", "idTransacao":"1", "modoCaptura":"141010204080",
29 "nomeAplicacao":"a", "nsu":"419343", "pan":"455182-9478", "referencia":"ref", "retornoAplicacao":"R00", "tipoTransacao":1, "valor":"1000", "versaoAppFinanceira":"1.3.2", “nomeBandeira”:”VISA”, “nomeProdutoMatriz”:”CREDITO”, “nomeProdutoSecundario”:”A VISTA” }
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
pan 6 primeiros-4 últimos dígitos do cartão ou 4 últimos dígitos do cartão
498453-1214 ou
************1214 captura Tipo de captura ("ONL-?" ou "OFF-?") ONL-C
codAutorizacao Código de Autorização 100324
codProdutoMatriz Código produto matriz 4
codProdutoSecundario Código produto secundário 204
codResposta Código de resposta 000
dataRequisicao Data/hora da requisição 140502100145 (yyMMddHHmmss)
30
dataServidor Data/hora servidor 140502100145
(yyMMddHHmmss)
estAcquirer Estab. do Acquirer – EC 0010000244470001
estVenda Estab. para Venda – EC 0000000000000003
fluxo Fluxo do POS 04
idAplicacao Id da aplicação que enviou a transação para o Cielo Mobile
com.appParceiro
idTransacao Id da transação 1
modoCaptura Modo captura 141010204080
nomeAplicacao Nome da aplicação que enviou a transação para o Cielo Mobile
App Parceiro
nsu Número do documento 469603
codAid Código do Aid utilizado na transação A0000000031010
parcelas Número de parcelas 3
referencia Referência da transação Venda 123
retornoAplicacao Código de Retorno da Aplicação R00 tipoTransacao Tipo da transação. Cancelamento ou
Pagamento.
1 – Pagamento 2 - Cancelamento
valor Valor da transação 200 para o valor 2,00.
versaoAppFinanceira Versão da aplicação financeira do Cielo Mobile
1.3.2
nomeBandeira Bandeira do cartão utilizado VISA nomeProdutoMatriz Nome do produto matriz CREDITO
31
nomeProdutoSecundario Nome do produto secundário A VISTA
MÉTODO DE RECEBIMENTO Android Parâmetro Método MENSAGEM Extra IOS Parâmetro Método MENSAGEM GET EXPORTAÇÃO DE HISTÓRICO
Retorna do Cielo Mobile todas as transações do cliente dentro do período informado. Essa exportação deverá ser paginada. Cada página possui no máximo 20 transações.
URL
cielomobile://exportarhistorico
PARÂMETROS
Parâmetro Descrição Exemplo urlCallback Endereço de callback para a
aplicação de venda. cielomobile://exportarhistorico?urlCallback=
appcliente://retornoexportacao
MENSAGEM Objeto JSON {
"dataFim":"141114143719", "dataInicio":"140802143019", "pagina": 1
32 DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo
dataInicio Data/hora inicial do período desejado 141110140000 (yyMMddHHmmss) dataFim Data/hora final do período desejado 141110150000
(yyMMddHHmmss) pagina Número da página que deseja exportar o histórico. Na
primeira requisição, deverá enviar a página 1.
1 MÉTODO DE ENVIO Android Parâmetro Método urlCallback GET MENSAGEM Extra Exemplo: cielomobile://exportarhistorico?urlCallback=appcliente://retornoexportacao IOS Parâmetro Método urlCallback GET MENSAGEM GET Exemplo: cielomobile://exportarhistorico?urlCallback=appcliente://retornoexportacao&mensagem =%7B%22dataFim%22%3A%22141208101010%22%2C%22dataInicio%22%3A%2214 1207101010%22%7D
33 RESPOSTA DA EXPORTAÇÃO DO HISTÓRICO
Retorna o fluxo para a aplicação de venda com os dados resultantes da consulta. O endereço será o informado no parâmetro urlCallBack na mensagem de exportação. O endereço deverá ser capaz de receber os parâmetros abaixo.
URL
A URL é definida na aplicação do parceiro. Exemplo: appcliente://retornoexportacao
PARÂMETROS
Parâmetro Descrição Exemplo MENSAGEM Objeto JSON { "idAplicacao":"b", "retornoAplicacao":"R00", "transacoes": [{"captura":"ONL-X", "codAutorizacao":"143848", "codProdutoMatriz":"4", "codProdutoSecundario":"204", "codResposta":"000", "dataRequisicao":"141114143843", "dataServidor":"141114143843", "estAcquirer":"0010000244470001", "estVenda":"0000000000000003", "fluxo":"4", "idAplicacao":"b", "idTransacao":"1", "modoCaptura":"141010204080", "nomeAplicacao":"a", "nsu":"420697", "pan":"455182-9478", "referencia":"ref", "tipoTransacao":1, "valor":"1000", "versaoAppFinanceira":"1.3.2",“nomeBandeira”:”VISA”, “nomeProdutoMatriz”:”CREDITO”, “nomeProdutoSecundario”:”A VISTA” }], "pagina": 1, "totalPaginas": 10, "totalTransacoes": 2000,
34
}
DETALHAMENTO PARÂMETRO MENSAGEM
Parâmetro Descrição Exemplo idAplicacao Id da aplicação que enviou a transação para o Cielo Mobile com.appParceiro retornoAplicacao Código de Retorno da Aplicação R00 transacoes Lista de objetos de Transacao que possuem a mesma estrutura do objeto retornado na consulta [{"captura":"ONL-X", "codAutorizacao":"143848", "codProdutoMatriz":"4", "codProdutoSecundario":"204", "codResposta":"000", "dataRequisicao":"141114143843", "dataServidor":"141114143843", "estAcquirer":"0010000244470001", "estVenda":"0000000000000003", "fluxo":"4", "idAplicacao":"b", "idTransacao":"1", "modoCaptura":"141010204080", "nomeAplicacao":"a", "nsu":"420697", "pan":"455182-9478", "referencia":"ref", "tipoTransacao":1, "valor":"1000",
"versaoAppFinanceira":"1.3.2"“nomeBandeira”:”VISA”, “nomeProdutoMatriz”:”CREDITO”,
“nomeProdutoSecundario”:”A VISTA”}] pagina Página que
as transações foram exportadas. 1 totalPaginas Total de páginas de transações. 10 totalTransacoes Total de transações que estão gravadas no 2000
35 aplicativo. MÉTODO DE RECEBIMENTO Android Parâmetro Método MENSAGEM Extra IOS Parâmetro Método MENSAGEM GET
EXEMPLO DE IMPLEMENTAÇÃO DE UM CLIENTE IOS
Para integrarmos com o Cielo Mobile temos como exemplo o código abaixo de uma requisição de envio e outra de recebimento. A String JSON é gerada no aplicativo Cliente para comunicar com o Cielo Mobile. O request é montado pela interface URLSchemeSender, no seu método requestWithUrl com parâmtro "strUrl".
36 ENVIO IOS (PAGAMENTO)
NSString *strJson ={ "dataTransacao":"141201112612", "valor":"200", "idTransacao":"123456", "referencia":"ref", "tipoTransacao":1, "nomeAplicacao":"nome", "estVenda":"venda" }
NSString *strUrl = [[NSString stringWithFormat:@"%@&mensagem=%@",
@"cielomobile://pagar?urlCallback=appcliente://retornopagamento", strJson]
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *requestUrl = [NSString stringWithFormat:@"%@", strUrl];
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:requestUrl]]){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:requestUrl]];
} else {
[[UIApplication sharedApplication] openURL:[NSURL
URLWithString:@"itmss://itunes.apple.com/br/app/cielo-mobile/id387244876?mt=8"]];
37 RECEBIMENTO IOS (PAGAMENTO)
Todas as requisições de Caixa Rápido são processadas pelo método descrito abaixo. Esse método deverá ser implementado na classe AppDelegate.
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
NSString *host = [url host];
NSArray *parametros = [[url query] componentsSeparatedByString:@"&"];
NSMutableDictionary *queryStringDictionary = [NSMutableDictionary new];
for (NSString *keyValuePair in parametros) {
NSString *keyValueDecoded = [keyValuePair
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray *pairComponents = [keyValueDecoded componentsSeparatedByString:@"="];
NSString *key = [pairComponents objectAtIndex:0];
NSString *value = [pairComponents objectAtIndex:1];
[queryStringDictionary setObject:value forKey:key];
}
NSString *strJson = [queryStringDictionary objectForKey:@"mensagem"];
}
VALIDAÇÃO IOS
A aplicação Cielo Mobile recebe os dados da requisição do Cliente, valida e processa a requisição. A aplicação parceira recebe o resultado da chamada pela URL de callback que enviou na requisição. O Cielo Mobile retorna em caso de algum parâmetro inválido na requisição R09, este retorno é pela URL de callback.
PLIST CADASTRO URL CALLBACK
A aplicação cliente responsável por processar o retorno vindo do Cielo Mobile deve configurar o property list do projeto. A configuração do URL Scheme deve estar de acordo com o exemplo abaixo. No URL Scheme é onde definimos o host da URL de Callback.
38 EXEMPLO DE IMPLEMENTAÇÃO DE UM CLIENTE ANDROID
Segue abaixo um exemplo de envio e recebimento de chamadas com o Cielo Mobile. A String JSON que foi gerada a partir da classe de comunicação entre o aplicativo do cliente e o Cielo Mobile, deve ser enviada via Intent através do método putExtra e com o nome "MENSAGEM". Conforme exemplo a seguir.
ENVIO (PAGAMENTO)
Uri uri = Uri.parse("cielomobile://pagar?urlCallback=appcliente://retornopagamento");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
String jsonString = "{ "valor":"200", "idTransacao":"1",
"nomeAplicacao":"Aplicacao de Venda", "referencia":"Venda 123"
}";
intent.putExtra("MENSAGEM", jsonString);
startActivityForResult(intent, PAGAMENTO_REQUEST);
RECEBIMENTO (PAGAMENTO)
Intent i = getIntent();
Bundle extras = i.getExtras();
String jsonString = extras.getString("MENSAGEM");
39
A aplicação Cielo Mobile valida os dados de requisição. Por isso, a Intent deverá ser iniciada com o método startActivityForResult.
Esse método retorna para a aplicação parceira o resultado da chamada. Caso o resultado seja RESULT_OK, a aplicação Cielo Mobile irá continuar com o
processamento. Caso seja diferente de RESULT_OK, o Cielo Mobile não irá continuar com o processamento e a aplicação de venda deverá realizar algum tratamento. Segue exemplo:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PAGAMENTO_REQUEST) {
if (resultCode == RESULT_OK) {
txtActivityResult.setText("ActivityResult: OK");
} else if (resultCode == 3) { // URL invalida
Toast.makeText(this, "URL invalida", Toast.LENGTH_SHORT).show();
} else if (resultCode == 2) { // Parametros invalidos
Toast.makeText(this, "Parametro invalido", Toast.LENGTH_SHORT).show();
} }
super.onActivityResult(requestCode, resultCode, data);
}
DADOS DE RETORNO ACTIVITYRESULT
Cógido Descrição
RESULT_OK A requisição foi feita com sucesso. O Cielo Mobile irá continuar com o processamento.
2 Os parâmetros enviados estão inválidos. 3 A URL de callback está inválida.
40 ANDROID MANIFEST
A activity responsável por processar o retorno vindo do Cielo Mobile deve estar configurada no arquivo AndroidManifest.xml para receber a requisição. Exemplo:
<activity
android:name=".activity.respostas.RespostaPagamentoActivity"
android:label="@string/title_activity_resposta_pagamento" > <intent-filter>
<data android:host="retornopagamento" android:scheme="appcliente" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter> </activity> DADOS DE RETORNO FLUXO Fluxo Descrição 4 CRÉDITO À VISTA
5 CRÉDITO PARCELADO ADMINISTRATIVO
6 CRÉDITO PARCELADO LOJA
8 DÉBITO À VISTA
9 DÉBITO PRÉ-DATADO
10 DÉBITO VENDA CREDIÁRIO
11 SIMULAÇÃO DE CREDIÁRIO
13 VISA VALE
41 TIPO DE CAPTURA
O tipo de captura possui o formato YYY-E, segundo especificação abaixo.
YYY Descrição
ONL Se a transação for Online OFF Se a transação for Offline
E Descrição
X Se a captura do número do Cartão foi feita por digitação do embosso D Se a captura do número do Cartão foi feita por leitura da tarja magnética C Se a captura do número do Cartão foi feita por leitura do Chip
L Se a captura do número do Cartão foi feita sem contato.
CÓDIGOS DE RESPOSTA Código Descrição 000 Aprovada Diferente de 000 Negada RETORNO DA APLICAÇÃO Código Descição
R00 Processamento com sucesso
R01 Erro interno
R02 Caixa Rápido não habilitado
42
R04 Valor Zerado
R05 Transação não encontrada
R06 Transação existente
R07 Terminal inoperante
R08 Nenhuma rede disponível
R09 (plataforma IOS)
Parâmetros Inválidos
R10 Limite máximo de transações atingido para exportar o histórico. Deverá ser paginado.
R11 Página inválida.
ORIENTAÇÕES FINAIS
É muito importante que após o término do desenvolvimento o cliente contate a Central de Suporte Técnico para ativar a funcionalidade e garantir que suas vendas sejam capturadas corretamente. Para isso, é necessário realizar os seguintes procedimentos:
1. Desinstalar o aplicativo utilizado no desenvolvimento (Este procedimento é realizado para garantir que será feito o download da última versão)
2. Fazer download do aplicativo
3. Realizar o desbloqueio com o número lógico de produção que será fornecido pelo analista de Suporte Técnico
4. Habilitar a funcionalidade
Central de Suporte Técnico
4002 9111 Capitais e Regiões Metropolitanas 0800 570 0111 Demais Localidades