Você está na página 1de 34

Integrar a Google Pay API

para seus pagamentos móveis

Versão do documento 1.3


Conteúdo

1. HISTÓRICO DO DOCUMENTO........................................................................................................ 3

2. APRESENTAÇÃO................................................................................................................................. 4

3. DECLARAR UM CONTRATO GOOGLE PAY NO ........................................................................ 5

4. CINEMÁTICA DAS TROCAS..............................................................................................................6

5. GERENCIAR OS PRAZOS DE ESPERA (TIMEOUT)................................................................... 7

6. CONSULTAR OS CÓDIGOS DE EXEMPLOS...................................................................................9

7. CONFIGURAR SEU PROJETO........................................................................................................ 10



7.1. Ativar a API Google Pay ........................................................................................................................10
7.2. Adicionar as dependências........................................................................................................................ 10

8. REALIZAR O PAGAMENTO NO APLICATIVO MÓVEL............................................................ 11



8.1. Definir a versão Google Pay usada........................................................................................................ 11
8.2. Definir o gateway de pagamento.............................................................................................................. 11
8.3. Definir os métodos de pagamentos suportados.........................................................................................11
8.4. Enviar os métodos de pagamentos suportados......................................................................................... 12
8.5. Criar uma instância PaymentsClient......................................................................................................... 12
8.6. Verificar se o pagamento é possível......................................................................................................... 13
8.7. Criar um objeto PaymentDataRequest................................................................................................. 13
8.8. Declarar um gestor de evento usuário...................................................................................................... 15
8.9. Seleção do meio de pagamento.................................................................................................................16

8.10. Recuperar os dados de Google Pay ...................................................................................................... 16

9. ENVIAR OS DADOS PARA A PLATAFORMA DE PAGAMENTO............................................. 19

10. TRATAR O RESULTADO DO PAGAMENTO..............................................................................23

11. PASSAR EM MODO DE PRODUÇÃO......................................................................................... 25



12. GERENCIAR SUAS TRANSAÇÕES GOOGLE PAY NO BACK OFFICE PAYZEN.................26

12.1. Google Pay ...........................................................................................................................................26
12.2. uma transação.........................................................................................................................................28
12.3. uma transação.........................................................................................................................................29
12.4. uma transação.........................................................................................................................................30
12.5. Editar a referência de um pedido............................................................................................................31
12.6.................................................................................................................................................................... 31
12.7.................................................................................................................................................................... 31
12.8. Capturar uma transação........................................................................................................................... 32
12.9. Conciliação manual................................................................................................................................. 32
12.10. Realizar um reembolso..........................................................................................................................33

13. OBTER AJUDA................................................................................................................................34


1. HISTÓRICO DO DOCUMENTO

Versão Autor Data Comentário


1.3 Lyra Network 25/04/2019 Aposição da menção Trade Mark.
1.2 Lyra Network 14/01/2019
• Atualização dos pré-requisitos
• Adição do procedimento de criação de um contrato

1.1 Lyra Network 19/10/2018


• Atualização para a última versão da API Google Pay™.
• Atualização dos exemplos de códigos

1.0 Lyra Network 10/07/2018 Versão inicial.

Este documento e o seu conteúdo são estritamente confidenciais. Ele não é contratual. Qualquer reprodução
e/ou divulgação de todo ou parte deste documento ou do seu conteúdo para um terceiro é rigorosamente
proibida e sujeita à uma autorização prévia e escrita de Lyra Network. Todos os direitos reservados.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 3 / 34
2. APRESENTAÇÃO

Google Pay™ é um meio de pagamento que permite ao comprador realizar suas compras
facilmente usando seu cartão de pagamento registrado na sua conta Google.
É um meio simples, rápido e seguro de comprar online ou via um aplicativo móvel.

Existe dois tipos de integração:


• integração em uma aplicativo móvel
• integração em um site de e-commerce (o pagamento é realizado no navegador do comprador).

O presente documento apresenta a integração em um aplicativo móvel usando o payload retornado pela
API Google Pay™. No entanto, pode-se adaptar as instruções que seguem usando um payload proveniente
do cliente para a API Java Script Google Pay™.

Checkout rápido Google Pay™:

Quando um comprador fizer um pagamento, ele deve informar seu endereço de faturamento e de entrega
no aplicativo móvel.
Para facilitar os pagamentos do comprador em diferentes sites ou aplicativos, pode-se gerenciar os
endereços de faturamento e de entrega no wallet Google.
O comprador seleciona seu meio de pagamento e seus endereços uma vez só, e o site de e-commerce
usará os dados contidos na resposta (payload).
(As informações são enviadas automaticamente à plataforma de pagamento e são exibidos no Back Office
PayZen).

Pontos importantes:
• A implementação atual não permite realizar uma autenticação 3D Secure durante um pagamento
Google Pay™. Não há portanto transferência de responsabilidade (Liability shift).
• A implementação atual não permite criar pagamentos recorrentes (pagamentos por assinatura) com o
meio de pagamento Google Pay™.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 4 / 34
3. DECLARAR UM CONTRATO GOOGLE PAY™ NO

Depuis le menu Configuração > Empresa > Afiliações:


1. Cliquez sur Criar uma afiliação.
La boite de dialogue "Choix du type de contrat" s'affiche.

2. Selecione Google Pay.


O assistente de criação de contrato abre.

Les champs Gateway et Gateway Merchant ID sont renseignés. Ces deux informations sont utiles pour
l'intégration de Google Pay™ au sein d'une application mobile.
Entre em contato com PayZen se você desejar digitar o CVV na integração móvel.

3. Lisez et acceptez les CGS de Google Pay™ en cochant la case prévue à cet effet.
Cette action est obligatoire pour terminer la création du contrat.

4. Cliquez sur Encerrar.

Une fois le contrat créé, cliquez sur le bouton "Associar à uma loja" et associez-le à la boutique de votre
choix.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 5 / 34
4. CINEMÁTICA DAS TROCAS

1. O aplicativo móvel apresenta uma solicitação paymentDataRequest à API Google Pay™ para coletar os
dados do cartão do comprador.
2. A API Google Pay™ retorna um objeto PaymentData contendo os dados numéricos (também chamado
"payload").
3. O aplicativo móvel envia o payload ao servidor do estabelecimento comercial.
4. O servidor do estabelecimento comercial elabora e apresenta uma solicitação createPayment usando o
payload para valorisar a propriedade walletPayload do objeto cardRequest. A propriedade scheme toma
o valor de GOOGLEPAY.
As outras propriedades do objetocardRequest não devem ser valorizadas.
5. A plataforma de pagamento analisa a solicitação, decifra os dados do cartão e realiza a solicitação de
autorização. Envia depois o resultado do pagamento ao servidor do estabelecimento comercial.
6. O servidor do estabelecimento comercial recebe uma resposta createPaymentResponse e analisa o
resultado do pagamento. Envia a informação ao aplicativo que realizará seu tratamento.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 6 / 34
5. GERENCIAR OS PRAZOS DE ESPERA (TIMEOUT)

O tratamento de uma solicitação serviço web articula-se em torno de uma serie de eventos assíncronos
tais como:
• o envio da solicitação via a rede do site do Estabelecimento Comercial,
• o transporte das informações na rede internet,
• o tratamento do pagamento pela plataforma,
• a interrogação dos servidores bancários, etc

Um incidente pode ocorrer a qualquer etapa e aumentar o tempo de tratamento (e portanto o tempo de
espera para o comprador).

A resposta a uma solicitação pode atrasar por múltiplas razões:


• Um tempo longo de resposta por parte do emissor do cartão do portador (no caso de cartões
provenientes de fora do país, no caso de período correspondentes à alta atividade tal como o dia das
mães, natal, ...).
• Um tempo longo de resposta por parte do comprador durante a transmissão e a recepção da solicitação
de autorização.
• Um tempo longo de resposta no seu aplicativo devido a uma carga importante.
• Um tempo longo de resposta da plataforma de pagamento
• Um problema de peering na Internet podendo ocasionar perdas de mensagens, etc...

Em função dos prazos configurados, você não pode receber resposta enquanto o tratamento assíncrono
continua em execução na plataforma de pagamento.
Um tempo longo de tratamento não deve ser considerado como um pagamento recusado.
Portanto, você deve configurar seu código para gerenciar os problemas potenciais que podem resultar da
conexão à API SOAP.

Recomendações
O tempo médio de tratamento de uma solicitação de pagamento pela plataforma é inferior a 5 segundos.
Você deve definir um prazo de espera de 20 até 30 segundos entre:
• o servidor do estabelecimento comercial e a plataforma de pagamento,
• o aplicativo móvel e o servidor do estabelecimento comercial.

Enquanto o comprador espera, uma mensagem indicando claramente que o pagamento está em
andamento deve ser exibida.
Uma vez que o prazo de espera venceu, você deve notificar ao comprador que seu pagamento foi recusado.

Para gerenciar corretamente estes casos de timeout, recomendamos 2 soluções:


• Criar suas transações em validação manual
O servidor do estabelecimento comercial deve enviar uma solicitação para validar toda transação
realizada com sucesso.
As transações em timeout não serão validadas e vencerão (após 7 dias para um pagamento realizado
na rede CB).
Uma vez vencidas, não poderão ser capturadas no banco.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 7 / 34
Nenhum comprador será debitado indevidamente.

• Criar suas transações em validação automática


O servidor do estabelecimento comercial deve solicitar a plataforma de pagamento para cancelar ou
reembolsar o comprador, para toda solicitação em timeout.
O servidor do estabelecimento comercial deverá então obrigatoriamente enviar um código de pedido
único nas solicitações de pagamento.
Em seguida, para cada transação em timeout, o servidor do estabelecimento comercial deve:
• solicitar a plataforma de pagamento para recuperar a UUID e o status da transação correspondente
(métodofindPayments)
Se a UUID não existe, indica que um erro técnico impediu a criação da transação.
Se a transação tiver um status REFUSED, nenhuma ação será necessária.
• cancelar ou reembolsar a transação (usando os métodos cancelPayment ourefundPayment) se a
solicitação de autorização foi aceita durante o timeout.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 8 / 34
6. CONSULTAR OS CÓDIGOS DE EXEMPLOS

Para auxiliá-lo em função do seu aplicativo, disponibilizamos exemplos complementares de


implementação. Favor consultar estes links abaixo:
Servidor estabelecimento comercial
• https://github.com/lyra/googlepay-payment-sparkjava-integration-sample
Android
• https://github.com/lyra/googlepay-payment-android-integration-sample

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 9 / 34
7. CONFIGURAR SEU PROJETO

Se você desejar maiores informações sobre a API de pagamento Google Pay™, consulte a documentação
oficial: https://developers.google.com/pay/api/android/

Siga as recomendações da Google para as considerações gráficas (logomarcas e textos):


https://developers.google.com/pay/api/android/guides/brand-guidelines

Se você encontrar problemas com as chamadas à API Google Pay™, consulte a página seguinte:
https://developers.google.com/pay/api/android/support/troubleshooting

7.1. Ativar a API Google Pay™


Para ativar a API Google Pay™ e usá-la no seu projeto, você tem que adicionar o que está a seguir no tag
<application> do arquivo AndroidManifest.xml:
<application>
...
<!-- Enables the Google Pay API -->
<meta-data
android:name="com.google.android.gms.wallet.api.enabled"
android:value="true" />
</application>

7.2. Adicionar as dependências


Adicione a dependência Google Play Services 16.0.x (versão mais antiga aceita) ao seu arquivo build.gradle:
dependencies {
compile 'com.google.android.gms:play-services-wallet:16.0.0'
compile 'com.android.support:appcompat-v7:24.1.1'
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 10 / 34
8. REALIZAR O PAGAMENTO NO APLICATIVO MÓVEL

As etapas seguintes apresentam como integrar a API Google Pay™ em um aplicativo móvel.

8.1. Definir a versão Google Pay™ usada


Criar um objeto BaseRequest contendo as propriedades abaixo que serão usadas em todas suas
solicitações:

Trecho do exemplo de código:

private fun getBaseRequest(): JSONObject {


return JSONObject()
.put("apiVersion", 2)
.put("apiVersionMinor", 0)
}

8.2. Definir o gateway de pagamento


Implementar o método getTokenizationSpecification como segue para notificar que você usará a
plataforma de pagamento "lyra".

Trecho do exemplo de código:

private const val GATEWAY_TOKENIZATION_NAME = "lyra"


private const val GATEWAY_MERCHANT_ID = "<REPLACE_ME>"

private fun getTokenizationSpecification(gatewayMerchantId: String): JSONObject {


val params = JSONObject().put("gateway", GATEWAY_TOKENIZATION_NAME)
params.put("gatewayMerchantId", gatewayMerchantId)

return JSONObject().put("type", "PAYMENT_GATEWAY").put("parameters", params)


}

Substitue <REPLACE_ME> pelo número de contrato Google Pay™ exibido no https://secure.payzen.com.br/vads-


merchant/(Menu > > ).
Se você estiver usando o código de exemplo, informe seu número de contrato Google Pay™ no arquivo MainActivity.kt
(variável GATEWAY_MERCHANT_ID).

8.3. Definir os métodos de pagamentos suportados


Implemente o método getAllowedCardNetworks como segue para especificar os tipos de cartões
autorizados para o pagamento.

Trecho do exemplo de código:

private const val SUPPORTED_NETWORKS = "VISA, MASTERCARD, DISCOVER, JCB"


this.supportedNetworks = supportedNetworks.split(Regex(",[ ]*")).toTypedArray()

private fun getAllowedCardNetworks(): JSONArray {


val allowedCardNetworks = JSONArray()
for (network in supportedNetworks) {
allowedCardNetworks.put(network)
}
return allowedCardNetworks
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 11 / 34
Implemente o método getAllowedCardAuthMethods e dê-lhe o valor PAN_ONLY.

Trecho do exemplo de código:

private val SUPPORTED_METHODS = Arrays.asList("PAN_ONLY")!!

private fun getAllowedCardAuthMethods(): JSONArray {


val allowedCardAuthMethods = JSONArray()
for (method in SUPPORTED_METHODS) {
allowedCardAuthMethods.put(method)
}
return allowedCardAuthMethods
}

Para maiores detalhes, consulte a documentação sobre o objeto CardParameters.

8.4. Enviar os métodos de pagamentos suportados


Implemente a função getCardPaymentMethod.
Criar um objeto cardPaymentMethod para enviar os métodos de pagamentos suportados pelo meio de
pagamento CARD bem como as informações sobre o gateway de pagamento.

Trecho do exemplo de código:

private fun getCardPaymentMethod(additionalParams: JSONObject?, tokenizationSpecification:


JSONObject?): JSONObject {
val params = JSONObject()
.put("allowedAuthMethods", getAllowedCardAuthMethods())
.put("allowedCardNetworks", getAllowedCardNetworks())

// Additional parameters provided?


if (additionalParams != null && additionalParams.length() > 0) {
val keys = additionalParams.keys()
while (keys.hasNext()) {
val key = keys.next()
params.put(key, additionalParams.get(key))
}
}
val cardPaymentMethod = JSONObject()
cardPaymentMethod.put("type", "CARD")
cardPaymentMethod.put(
"parameters", params)
if (tokenizationSpecification != null) {
cardPaymentMethod.put(
"tokenizationSpecification", tokenizationSpecification)
}
return
}

Para maiores detalhes, consulte a documentação sobre o objeto CardParameters.

8.5. Criar uma instância PaymentsClient


Criar uma instância de PaymentsClient no método onCreate do seu Activity para estabelecer a interação
com a API PaymentsClient.

private fun initPaymentsClient(activity: Activity, mode: String): PaymentsClient {


val builder = Wallet.WalletOptions.Builder()
if (mode == "TEST") {
builder.setEnvironment(WalletConstants.ENVIRONMENT_TEST)
} else {
builder.setEnvironment(WalletConstants.ENVIRONMENT_PRODUCTION)
}
return Wallet.getPaymentsClient(activity, builder.build())
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 12 / 34
Durante a fase de integração, se você usar o código de exemplo, a variável PAYMENT_MODE deverá ter o valor TEST no
arquivo MainActivity.kt.

8.6. Verificar se o pagamento é possível


Implemente o método isReadyToPayRequest para verificar se as versões Android e Google Play instaladas
no dispositivo móvel são suportadas pela API PaymentsClient.
Conforme a resposta, poderá por exemplo esconder/ocultar o botão de pagamento.

Trecho do exemplo de código:

private fun prepareIsReadyToPayRequest(): IsReadyToPayRequest {


val isReadyToPayRequest = getBaseRequest()
isReadyToPayRequest.put(
"allowedPaymentMethods", JSONArray()
.put(getCardPaymentMethod(null, null)))
return IsReadyToPayRequest.fromJson(isReadyToPayRequest.toString())
}

PayZenPayment.isPaymentPossible(paymentsClient).addOnCompleteListener { task ->


try {
val result = task.getResult(ApiException::class.java)
if (result) {
// show Google Pay as a payment option
payBtn.visibility = View.VISIBLE
} else {
payBtn.visibility = View.VISIBLE
Toast.makeText(this, "isPaymentPossible return false", Toast.LENGTH_LONG).show()
}
} catch (e: ApiException) {
Toast.makeText(this, "isPaymentPossible exception catched", Toast.LENGTH_LONG).show()
}
}

8.7. Criar um objeto PaymentDataRequest


Quando o comprador estiver pronto para pagar, crie um objeto PaymentDataRequest e vincule a ele seu
objeto BaseRequest.
Este objeto deverá conter os dados necessários ao pagamento:
• informações do gateway de pagamento,
• métodos de pagamento suportados pelo seu aplicativo,
• informações adicionais que você deseja ter na resposta,

Define os métodos de pagamento suportados valorizando a propriedade allowedPaymentMethods com o


resultado da função getCardPaymentMethod (ver capítulo Enviar os métodos de pagamentos suportados na
página 12).

Define o detalhe da transação no objeto TransactionInfo:


propriedadetotalPriceStatus
valor "FINAL"
Parâmetro obrigatório para uma chamada createPaymentDataRequest().
Seu valor não será levado em conta para o pagamento.
propriedadetotalPrice
valor "10.00"
Parâmetro obrigatório para uma chamada createPaymentDataRequest().
No entanto, somente o valor enviado na chamada ao método createPayment de API Webservices SOAP v5 será
levado em conta no pagamento.
propriedadecurrencyCode

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 13 / 34
valor "EUR"
Parâmetro obrigatório para uma chamada createPaymentDataRequest().
No entanto, somente o valor enviado na chamada ao método createPayment de API Webservices SOAP v5 será
levado em conta no pagamento.

Para maiores detalhes, consulte a documentação sobre o objeto TransactionInfo.

Digite as informações adicionais que você deseja ter na resposta:


propriedade billingAddressRequired
valor true
Torna obrigatório digitar o endereço de faturamento. O endereço selecionado será retornado no
payload.
Útil se você desejar disponibilizar um checkout rápido ao comprador.
propriedade emailRequired
valor true
Permite enviar o e-mail vinculado à conta Google selecionada.
propriedade shippingAddressRequired
valor true
Torna obrigatório digitar o endereço de entrega. O endereço selecionado pelo comprador será
retornado no payload.
Útil se você desejar disponibilizar um checkout rápido ao comprador.
propriedade phoneNumberRequired
valor true
Torna obrigatório digitar o número de telefone no endereço de entrega e de faturamento.
Se shippingAddressRequired ou billingAddressRequired tiver o valor true, o número
de telefone será enviado no payload.
Útil se você desejar disponibilizar um checkout rápido ao comprador.

Para maiores detalhes, consulte a documentação sobre o objeto PaymentDataRequest.

Trecho do código de exemplo:

private fun preparePaymentDataRequest(price: String, currency: String, gatewayMerchantId:


String): PaymentDataRequest {
val paymentDataRequestJson = getBaseRequest()
val additionalParams = JSONObject()
val transactionJson = JSONObject()
transactionJson
.put("totalPriceStatus", "FINAL")
.put("totalPrice", price)
.put("currencyCode", currency)
additionalParams.put("billingAddressRequired", true)
additionalParams
.put("billingAddressParameters", JSONObject()
.put("format", "FULL").put("phoneNumberRequired", false))
paymentDataRequestJson
.put("allowedPaymentMethods", JSONArray()
.put(getCardPaymentMethod(additionalParams,
getTokenizationSpecification(gatewayMerchantId))))

paymentDataRequestJson.put("shippingAddressRequired", true)
paymentDataRequestJson.put("emailRequired", true)
paymentDataRequestJson.put("transactionInfo", transactionJson)
return PaymentDataRequest.fromJson(paymentDataRequestJson.toString())
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 14 / 34
8.8. Declarar um gestor de evento usuário
Define um OnClickListener no seu botão "Pagar" para iniciar a criação do objeto PaymentDataRequest. Use
o método resolveTask do AutoResolveHelper com o PaymentDataRequest para exibir o Bottom Sheet Google
Pay.
O resultado será então enviado para seu método onActivityResult().

Trecho do exemplo de código:

fun onPayClick(view: View) {


progressBar.visibility = View.VISIBLE

val paymentDataRequest = preparePaymentDataRequest()


AutoResolveHelper.resolveTask(
paymentsClient.loadPaymentData(paymentDataRequest),
this,
GooglePayManagement.GOOGLE_PAYMENT_CODE_RESULT
)
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 15 / 34
8.9. Seleção do meio de pagamento
Para poder pagar com Google Pay™, o comprador deve ter salvo um meio de pagamento dentro do prazo
de validade no seu Google Pay™.

Para realizar a fase de integração no ambiente de teste, o integrador deverá:


• ter uma conta Google,
• vincular um meio de pagamento válido a sua conta Google Pay™.

Quando o bottom sheet for exibido Google Pay™, selecione seu


cartão e clique no botão Continuar.

No ambiente de teste, os dados retornados no objeto PaymentData não são reais e não correspondem
aos dados do cartão salvo na sua conta Google.
Portanto, seu cartão nunca será debitado enquanto seu aplicativo estiver configurado no ambiente de
TESTE.

No ambiente de teste, a mensagem seguinte será exibida no bottom sheet Google Pay:
"Aplicativo desconhecido. Favor continuar somente se você confiar em este aplicativo."

8.10. Recuperar os dados de Google Pay™


Os dados do comprador são retornados para o aplicativo móvel em um objeto PaymentData (também
chamado "payload").
Para tratar os dados do payload, sobrescreva o método onActivityResult() do seu activity como segue:

Trecho do exemplo de código:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {


super.onActivityResult(requestCode, resultCode, data)
// Manage Google Pay result
if (requestCode == GooglePayManagement.GOOGLE_PAYMENT_CODE_RESULT) {
when (resultCode) {
Activity.RESULT_OK -> {
if (data != null) {
val paymentData = PaymentData.getFromIntent(data)
val googlePayData = paymentData!!.toJson()
// Execute payment
PayZenPayment.executeTransaction(googlePayData, this)
} else {
PayZenPayment.returnsResult(false,
PayZenPaymentErrorCode.UNKNOWN_ERROR, "Unknown error", this)
}
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 16 / 34
Activity.RESULT_CANCELED -> {
PayZenPayment.returnsResult(false,
PayZenPaymentErrorCode.PAYMENT_CANCELLED_ERROR, "Payment cancelled by user", this)
}
AutoResolveHelper.RESULT_ERROR -> {
PayZenPayment.returnsResult(false,
PayZenPaymentErrorCode.UNKNOWN_ERROR, "Unknown error", this)
}
}
}
}

Se você escolheu o checkout rápido, você deve transformar o payload em objeto JSON, analisá-lo para
depois salvar os dados necessários (dados do comprador, endereço de entrega etc..).

Exemplo de recuperação do endereço de faturamento:

when (resultCode) {
Activity.RESULT_OK -> {
if (data != null) {
val paymentData = PaymentData.getFromIntent(data)
val googlePayData = paymentData!!.toJson()
val billingAddress =
JSONObject(
JSONObject(
JSONObject(
googlePayload!!.toJson()
).getString("paymentMethodData")
).getString("info")
).getString("billingAddress")

Exemplo de objeto PaymentData:

JSON result Example :{


"apiVersionMinor":0,
"apiVersion":2,
"paymentMethodData":{
"description":"Visa •••• 3513",
"tokenizationData":{
"type":"PAYMENT_GATEWAY",
"token":"{\"signature\":\"MEUCIC1+XSqhtgCWQa\/3k7OFIesJX0SYBtCeOKjD
+O2JBWO9AiEAg03FhXVVwD0NRhiPnjGWdfTqTXm39fnzr+XvHdbecY4\\u003d\",\"protocolVersion
\":\"ECv1\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"qjXoUw7ptqWE\/G
+PSOb8QoR+hqzM7h1S7iQ3jH\/mxmjJi\/\/MY5Kem6WmuQxMQbz0pXeX5mxjmUxvbIQzGhtLLELoTWxuAF
\/mLSuoIznPbvJNxQ9xGOVMQYuo0jTKqUUv6QrjMBTSCcQx2ktkDS3EjHOWBPTw22mI\/
kXz0wn5x6jlMLEUTFkNlPZYjeoFRvUXpw0XoECNdouiiJwub52zmyebY7pz1JlG5DQOMWRvrCnj5Kgs9sxzXp1VJJ
+rIqewoBOgl\/BgKsf87fOxVJFYqOmq+LR\/wk8PDKE9VE1XakQBG8kxhSflMQaqC
+ObObJfoUC9ruIDK7iFkT8EFV3FVWHu8ZVYmoek3HWabZ36NdRPUyGtDCjOR+CmT8tneRHyqRzy8S4Yk5LyCObTZ
+rbI0toveNchZdakUhMLyFFLqkgnc\/g3WJnLpujRy3jgOe6\/+ymb1gaiOnQQA\\\\u003d\\\\u003d\\
\",\\\"ephemeralPublicKey\\\":\\\"BKB3qFuCrmNI0bOxVg\/kVCcCtswHrwabcrm18JtPTB+w5L\/
d39dnrgaGajdYvdLrFRQc5RyQ52Ug3e151yDNE6E\\\\u003d\\\",\\\"tag\\\":\\\"rJ5SapWOGc\/f4eqzif+P9D\/
wSg\/yvfOJ63yVbRc1lGY\\\\u003d\\\"}\"}"
},
"type":"CARD",
"info":{
"cardNetwork":"VISA",
"cardDetails":"3513",
"billingAddress":{
"address3":"",
"sortingCode":"",
"address2":"",
"countryCode":"FR",
"address1":"109 Rue de l'Innovation",
"postalCode":"31670",
"name":"My Network",
"locality":"Labège",
"administrativeArea":""
}
}
},
"shippingAddress":{
"address3":"",
"sortingCode":"",
"address2":"",
"countryCode":"FR",
"address1":"109 Rue de l'Innovation",
"postalCode":"31670",
"name":"My Network",

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 17 / 34
"locality":"Labège",
"administrativeArea":""
},
"email":"network.gpay@gmail.com"
}

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 18 / 34
9. ENVIAR OS DADOS PARA A PLATAFORMA DE PAGAMENTO

Agora que o aplicativo móvel recuperou os dados do pagamento, você deve enviá-los ao seu servidor.

Uma vez que os dados forma recebidos pelo servidor, você deve chamar o serviço web de criação de
pagamento (createPayment) da API Webservices SOAP v5

Sua solicitação conterá os elementos seguintes:

Os cabeçalhos SOAP Obrigatório Permite identificar o estabelecimento comercial e garantir a segurança


das trocas com a plataforma de pagamento.
Um objeto commonRequest Facultativo Permite forçar o número de contrato que será usado para realizar o
pagamento.
Um objeto cardRequest Obrigatório Permite enviar o payload para a plataforma de pagamento. Uma vez
decifrada, os dados serão usados para realizar o pagamento.
Um objeto paymentRequest Obrigatório Permite enviar as informações do pagamento (valor, moeda etc..)
Um objeto customerRequest Facultativo Permite enviar os dados do comprador.
Um subobjeto billingRequest Facultativo Permite enviar o endereço de faturamento do comprador.
Um subobjeto shippingRequest Facultativo Permite enviar o endereço de entrega do comprador.
Um objeto shoppingCartRequest Facultativo Permite enviar informações sobre o conteúdo do carrinho

Observação:
A implementação atual de Google Pay™ não é compatível com o 3D Secure. É portanto inútil enviar o objeto
threeDSRequest na sua solicitação.

Etapa 1: Gere SOAP-HEADER como definido na documentação.


Exemplo de header:

<?xml version="1.0" encoding="UTF-8"?>


<SOAP-ENV:Enveloppe xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://v5.ws.vads.lyra.com/"
xmlns:ns2="http://v5.ws.vads.lyra.com/Header/">
<SOAP-ENV:Header>
<ns2:shopId>12345678</ns2:shopId>
<ns2:requestId>70c08d51-214b-4a9b-9e74-eadcdde6710c</ns2:requestId>
<ns2:timestamp>2018-07-06T13:51:32Z</ns2:timestamp>
<ns2:mode>TEST</ns2:mode>
<ns2:authToken>o53KmUXgjqhiyTooIfRjh6wF+NJwVQg790mpbrjTg18=</ns2:authToken>
</SOAP-ENV:Header>
...

Etapa 2: Crie um objeto commonRequest como definido na documentação se você desejar forçar o número
de contrato a ser usado para realizar o pagamento.
Etapa 3: Crie um objeto cardRequest:
Atributos do objeto
Valor
cardRequest
scheme GOOGLEPAY
walletPayload Objeto PaymentData em formato json tal como recebido pelo servidor do estabelecimento comercial.

Os atributos number, expiryYear e expiryMonth tornam-se facultativos quando o atributo scheme tiver
o valor GOOGLEPAY.

Etapa 4: Crie um objeto paymentRequest :


Atributos do objeto
Descrição
cardRequest
amount Valor a ser pago. Pode ser diferente do valor enviado no objeto PaymentDataRequest.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 19 / 34
Atributos do objeto
Descrição
cardRequest
currency Código numérico da moeda a ser usada para o pagamento.
Ex: Ex: 986 para o Real do Brasil (BRL)

Etapa 5: Crie um objeto orderRequest:


Atributo do objeto
Descrição
orderRequest
orderId Referência do pedido.
Recomendamos usar referências de pedido único. Em caso de timeout, esta referência será usada
para encontrar a transação correspondente.

Etapa 6: Gerenciamento dos endereços de entrega e de faturamento.


Se você escolheu um checkout rápido, os dados são automaticamente enviados à plataforma de
pagamento. Você pode passar para a etapa 7.
Se você gerencia a seleção de endereços com seu aplicativo móvel, você pode enviar estas informações
à plataforma de pagamento para que elas estejam exibidas no Back Office. Para isso, crie um objeto
customerRequest.

Etapa 6.1: Crie um objeto billingRequest:


Atributos do objeto
Descrição
billingRequest
email Endereço e-mail do comprador.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor
da propriedade "email" do payload.
address Primeira linha do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor
da propriedade "paymentMethodData.Info.billingAddress.address1" do payload.
zipCode CEP do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "paymentMethodData.Info.billingAddress.postalCode" do payload.
city Cidade do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "paymentMethodData.Info.billingAddress.locality" do payload.
country País do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "paymentMethodData.Info.billingAddress.countryCode" do payload.
firstName Nome do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "paymentMethodData.Info.billingAddress.name" do payload.
cellPhoneNumber Número de telefone celular.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "paymentMethodData.Info.billingAddress.phoneNumber" do payload.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 20 / 34
Etapa 6.2: Crie um objeto shippingRequest:
Atributos do objeto
Descrição
shippingRequest
email Endereço e-mail do comprador.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor
da propriedade "email" do payload.
address Primeira linha do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor
da propriedade "shippingAddress.address1" do payload.
zipCode CEP do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "shippingAddress.postalCode" do payload.
city Cidade do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "shippingAddress.locality" do payload.
country País do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "shippingAddress.countryCode" do payload.
firstName Nome do endereço de faturamento.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "shippingAddress.name" do payload.
cellPhoneNumber Número de telefone celular.
Se você deixar este campo vazio, a plataforma de pagamento recuperará automaticamente o valor da
propriedade "shippingAddress.phoneNumber" do payload.

Etapa 7: Crie um objeto shoppingCartRequest se você desejar enviar informações sobre o conteúdo do
carrinho.

Consulte o Guia de implementação - API Webservices SOAP v5 para maiores detalhes sobre a integração
do método createPayment().

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 21 / 34
Exemplo de mensagem XML gerada na chamada do método createPayment():

<?xml version="1.0" encoding="UTF-8"?>


<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://v5.ws.vads.lyra.com/"
xmlns:ns2="http://v5.ws.vads.lyra.com/Header/">
<SOAP-ENV:Header>
<ns2:shopId>12345678</ns2:shopId>
<ns2:requestId>88c53eb7-6015-4ec6-8045-206e5caa2e2c</ns2:requestId>
<ns2:timestamp>2018-07-09T10:15:54Z</ns2:timestamp>
<ns2:mode>TEST</ns2:mode>
<ns2:authToken>ALxESNJ+mE5htqWccF5OTkYC2noxnDr570DrnI2+5SE=</ns2:authToken>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:createPayment>
<commonRequest>
<paymentSource>EC</paymentSource>
</commonRequest>
<paymentRequest>
<amount>2990</amount>
<currency>986</currency>
</paymentRequest>
<orderRequest>
<orderId>myOder</orderId>
</orderRequest>
<cardRequest>
<scheme>GOOGLEPAY</scheme>
<walletPayload>{"apiVersionMinor":0,"apiVersion":2,"paymentMethodData":{"description":
"Visa •••• 3513","tokenizationData":{"type":"PAYMENT_GATEWAY","token":"{\"signature\":
\"MEUCIC1+XSqhtgCWQa\/3k7OFIesJX0SYBtCeOKjD+O2JBWO9AiEAg03FhXVVwD0
NRhiPnjGWdfTqTXm39fnzr+XvHdbecY4\\u003d\",\"protocolVersion\":\"ECv1\",\"signedMessage
\":\"
{\\\"encryptedMessage\\\":\\\"qjXoUw7ptqWE\/G+PSOb8QoR+hqzM7h1S7iQ3jH\/mxmjJi\/\/M
Y5Kem6WmuQxMQbz0pXeX5mxjmUxvbIQzGhtLLELoTWxuAF\/mLSuoIznPbvJNxQ9xGOVM
QYuo0jTKqUUv6QrjMBTSCcQx2ktkDS3EjHOWBPTw22mI\/kXz0wn5x6jlMLEUTFkNlPZYjeoFR
vUXpw0XoECNdouiiJwub52zmyebY7pz1JlG5DQOMWRvrCnj5Kgs9sxzXp1VJJ+rIqewoBOgl\/B
gKsf87fOxVJFYqOmq+LR\/wk8PDKE9VE1XakQBG8kxhSflMQaqC+ObObJfoUC9ruIDK7iFkT8
EFV3FVWHu8ZVYmoek3HWabZ36NdRPUyGtDCjOR+CmT8tneRHyqRzy8S4Yk5LyCObTZ+rb
I0toveNchZdakUhMLyFFLqkgnc\/g3WJnLpujRy3jgOe6\/+ymb1gaiOnQQA\\\\u003d\\\\u003d\\\",\\\"e
phemeralPublicKey\\\":\\\"BKB3qFuCrmNI0bOxVg\/kVCcCtswHrwabcrm18JtPTB+w5L\/d39dnrga
GajdYvdLrFRQc5RyQ52Ug3e151yDNE6E\\\\u003d\\\",\\\"tag\\\":\\\"rJ5SapWOGc\/f4eqzif+P9D\/wS
g\/yvfOJ63yVbRc1lGY\\\\u003d\\\"}\"}"},"type":"CARD","info":
{"cardNetwork":"VISA","cardDetails":
"3513","billingAddress":
{"address3":"","sortingCode":"","address2":"","countryCode":"FR","address1"
:"109Ruedel'Innovation","postalCode":"31670","name":"Lyranetwork","locality":"Labège",
"administrativeArea":""}}},"shippingAddress":
{"address3":"","sortingCode":"","address2":"",

"countryCode":"FR","address1":"109Ruedel'Innovation","postalCode":"31670","name":"MyNetwork",
"locality":"Labège","administrativeArea":""},"email":"test.gpay@gmail.com"}</
walletPayload>
</cardRequest>
<customerRequest>
<billingDetails>
<email>test@test.com</email>
</billingDetails>
</customerRequest>
<techRequest/>
</ns1:createPayment>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 22 / 34
10. TRATAR O RESULTADO DO PAGAMENTO

Diversos controles são realizados pela plataforma de pagamento quando recebe sua solicitação
createPayment.
Estes controles podem resultar em:
• exceções (SOAP Fault Exception)
• erros aplicativos
Em caso de exceção, a resposta terá um objeto Fault apresentando em detalhe o erro encontrado (erro
de formato etc..).

Exemplo de resposta quando a loja não tiver as opções obrigatórias para o pagamento Google Pay :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<soap:Fault>
<faultcode xmlns:ns1="http://www.w3.org/2003/05/soap-envelope">ns1:Sender</faultcode>
<faultstring>
bad.shopId: The shop with shopId 12345678 is not allowed to call the Web Service
</faultstring>
<detail>
<requestId>f269ff49-3b8a-4314-b999-24b39ce03287</requestId>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

Se a solicitação for válida, então a resposta terá o objeto commonReponse.


O campo commonReponse.responseCode fornece informações sobre o tratamento da solicitação.
Quando responseCode tiver o valor 0 na resposta, a transação foi criada.
Qualquer outro valor de responseCode informa que a solicitação foi recusada antes do pagamento.
O campo responseCodeDetail detalha o erro encontrado.

Para verificar o status do pagamento, você deve analisar o valor do campo


commonResponse.transactionStatusLabel

Os únicos status que podem garantir que um pagamento foi aceito são os seguintes:
• CAPTURED
• AUTHORIZED
• AUTHORIZED_TO_VALIDATE

Quando transactionStatusLabel tiver o valor REFUSED, você deve verificar que o campo paymentError esteja
presente no objeto paymentResponse.
Este campo fornece informações sobre as razões da recusa.

Se paymentError não estiver valorizado, analise o campo result do objeto authorizationResponse para
conhecer a razão da recusa do pagamento.

Consulte o Guia de implementação - API Webservices SOAP v5 para ter a lista completa dos erros possíveis.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 23 / 34
Exemplo de resposta retornada em caso de pagamento aceito

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://v5.ws.vads.lyra.com/"
xmlns:ns2="http://v5.ws.vads.lyra.com/Header/" ">
<SOAP-ENV:Header>
<shopId>12345678</shopId>
<requestId>8bb621fa-8512-45cc-b695-a30fe104cb06</requestId>
<timestamp>2018-07-11T09:51:00Z</timestamp>
<mode>TEST</mode>
<authToken>Le5sPmTnoE8xh3qtU7F1SxhaieO3rh9uLxQpy/4bEu4=</authToken>
</SOAP-ENV:Header>
<soap:Body>
<ns2:createPaymentResponse>
<createPaymentResult>
<requestId>8bb621fa-8512-45cc-b695-a30fe104cb06</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<shopId>91335531</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2018-07-11T11:51:00.749+02:00</submissionDate>
<contractNumber>5555555</contractNumber>
</commonResponse>
<paymentResponse>
<transactionId>927452</transactionId>
<amount>2990</amount>
<currency>986</currency>
<expectedCaptureDate>2018-07-11T11:51:00.791+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2018-07-11T11:51:00.791+02:00</creationDate>
<liabilityShift>NO</liabilityShift>
<transactionUuid>3257eebe44ab4b409315022735c45c2a</transactionUuid>
<sequenceNumber>1</sequenceNumber>
<paymentType>SINGLE</paymentType>
</paymentResponse>
<orderResponse>
<orderId>myOder</orderId>
</orderResponse>
<cardResponse>
<number>411111XXXXXX1111</number>
<scheme>VISA</scheme>
<brand>VISA</brand>
<country>GB</country>
<bankCode>0169</bankCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2023</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>2990</amount>
<currency>9868</currency>
<date>2018-07-11T11:51:00.791+02:00</date>
<number>3fe3c2</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
<customerResponse>
<billingDetails>
<language>fr_FR</language>
</billingDetails>
<shippingDetails/>
<extraDetails/>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationResultData>
<transactionCondition>COND_SSL</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>CARD_FRAUD</name>
<result>OK</result>
</riskControl>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 24 / 34
11. PASSAR EM MODO DE PRODUÇÃO

Se sua integração for correta, você conseguiu criar uma transação Google Pay no ambiente de teste.
Você deve agora pedir a validação do seu processo para Google.
1. Google disponibiliza a lista dos pontos a serem verificados:
https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist
2. Uma vez que todos os pontos forem aprovados, você deve preencher o formulário seguinte para solicitar
a passagem em produção:
https://services.google.com/fb/forms/googlepayAPIenable/
3. Quando Google lhe pedirá seu aplicativo de produção, modifique o método onCreate do seu Activity
como segue:
...
builder.setEnvironment(WalletConstants.ENVIRONMENT_PRODUCTION)
...

Se você usar o código de exemplo, modifique o valor da variável PAYMENT_MODE em PRODUCTION no arquivo
MainActivity.kt.

4. Modifique então a chamada createPayment realizada pelo seu servidor Estabelecimento Comercial para
usar a chave de produção quando gerar o SOAP HEADER.
5. Modifique o valor do cabeçalho mode no seu método createPayment como segue:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Enveloppe xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://v5.ws.vads.lyra.com/"
xmlns:ns2="http://v5.ws.vads.lyra.com/Header/">
<SOAP-ENV:Header>
<ns2:shopId>70258842</ns2:shopId>
<ns2:requestId>b2e0beab-371e-4751-9aa7-20d69daac1ac</ns2:requestId>
<ns2:timestamp>2018-07-09T12:37:51Z</ns2:timestamp>
<ns2:mode>PRODUCTION</ns2:mode>
<ns2:authToken>x7JqR7QLDRc4bsM57nOyf5xzKqlalEqPmeai1EAOZDM=</ns2:authToken>
</SOAP-ENV:Header>

6. Envie seu aplicativo configurado em modo produção para Google para realizar os últimos testes.
O aplicativo deverá ser assinado com a chave de release. A chave de debug não funcionará em ambiente
de produção.
7. Quando Google autorizar, ative os pagamentos Google Pay no Google Pay Developer Profile para este
aplicativo, e instale o aplicativo no Google Play Store.
Para maiores detalhes, você pode consultar as instruções de instalação de um aplicativo:
https://developers.google.com/pay/api/android/guides/test-and-deploy/deploy-your-application?
authuser=1

Após a passagem em produção, se você realizar uma chamada com WalletConstants.ENVIRONMENT_TEST, aparecerá a
menção abaixo quando exibir o bottom sheet Google Pay:
"Aplicativo desconhecido. Favor continuar somente se você confiar em este aplicativo."

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 25 / 34
12. GERENCIAR SUAS TRANSAÇÕES GOOGLE PAY™ NO BACK
OFFICE PAYZEN

O Back Office permite realizar diferentes ações nas transações Google Pay™ em função dos status delas:
Ações disponíveis na aba :




• (Somente para as transações realizadas no ambiente de teste)


• .
Ações disponíveis na aba :





• .

Você pode ter acesso a estas ações de três maneiras diferentes:


• pela barra de menus.

• fazendo um clique direito.

• embaixo da janela do Detalhe da transação.

12.1. Google Pay™


As transações estão disponíveis no Back Office EC no menu Gerenciamento > Transações.
No menu Gerenciamento, o Estabelecimento Comercial pode acessar as transações reais e as transações
de TESTE.
Observação:
Segundo os diretos de acesso, as transações de TESTE (por exemplo: perfil desenvolvedor) e/ou as
transações reais (por exemplo: perfil contador) podem ser exibidas.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 26 / 34
Por padrão, a interface exibe o conteúdo da aba Transações em andamento. Apresenta todas as transações
do dia.

Particularidades de um pagamento realizado com Google Pay™ :


Os pagamentos realizados com sucesso estão disponíveis no , na aba .

Os pagamentos em falha estão disponíveis no , na aba .

Para exibir o detalhe de uma transação:

1. Selecione uma transação.


2. Clique direito e selecione Exibir o detalhe da transação ou clique duas vezes na transação desejada.
A janela Detalhe de uma transação em andamento aparece.
Dentre as informações apresentadas, você encontrará por exemplo :
• o meio de pagamento usado
• a referência do pedido
• o valor da transação
• a data de criação da transação
• o status da transação
• O tipo de carteira eletrônica usado: Google Pay™
3. Clique na aba Auth.Google Pay para visualizar as informações sobre a autenticação Google Pay™.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 27 / 34
12.2. uma transação
A ação está disponível quando a transação tiver um dos status seguintes :


Este ação permite validar a captura no banco da transação. Uma transação que não foi validada antes da
data de vencimento da solicitação de autorização se tornará vencida. Não poderá mais ser capturada no
banco.

Para validar uma transação:


1. Selecione a aba

2. Selecione a transação

3. Clique em

Uma vez a transação aprovada, o status torna-se:


• "" para as transações cujo status era "",
• "" para as transações cujo status era "",

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 28 / 34
12.3. uma transação
A ação está disponível quando a transação tiver um dos status seguintes :




Esta ação permite modificar o valor e a data de captura no banco conforme as regras seguintes:
• O valor modificado não pode ser superior ao valor inicial.
• Quando a transação ainda não foi autorizada, a data de captura pode ser qualquer data entre a data
atual e a data de captura especificada pelo estabelecimento comercial durante o pagamento.
Uma solicitação de autorização será automaticamente enviada se a data de captura escolhida encontrar-
se entre a data atual e data de fim de validade de uma solicitação de autorização.
• Quando a transação já foi autorizada, a data de captura no banco não pode ultrapassar a data de
validade da autorização.

Para alterar uma transação:


1. Selecione a aba

2. Selecione a transação.

3. Clique em .
A caixa de diálogo Alteração de uma transação abre.

4. Se você desejar modificar o valor da transação, informe um novo valor.


Lembre-se que o novo valor deve ser inferior ao valor inicial.

5. Se você desejar modificar a data de captura no banco, informe a data de captura.


O calendário apresentará as datas autorizadas para a captura no banco. As datas são calculadas
conforme o prazo de validade da autorização. Este prazo depende do meio de pagamento e de qual
rede foi usada para realizar a solicitação de autorização.

Você poderá validar as transações com o status ou , assinalando a caixa Validar a transação.

6. Clique em .

Se você quiser, pode exibir o detalhe da transação para consultar estas modificações (clique direito na
transação modificada > ).

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 29 / 34
12.4. uma transação
A operação Cancelar está disponível somente para as transações que não foram capturadas.

1. Clique direito em uma transação.

2. Selecione Cancelar.

3. Confirme que você quer cancelar definitivamente a transação selecionada.

O status da transação se tornará Cancelado.

Observação
É possível cancelar mais de uma transação ao mesmo tempo.
Basta selecionar a totalidade das transações a serem canceladas. Você pode usar a tecla Ctrl e o clique
para fazer uma seleção múltipla.
Após a seleção, você pode clicar em Cancelar com o clique direito ou na barra de menu, e confirmar sua
escolha.
Os status das transações se tornarão Cancelado.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 30 / 34
12.5. Editar a referência de um pedido
Esta operação permite ao Estabelecimento Comercial mudar a referência de pedido.
Para editar a referência pedido de uma transação:
1. Clique direito na transação.

2. Selecione Editar a referência de um pedido.

3. Digite a nova referência do pedido

4. Clique em OK.

12.6.
Para enviar de novo o e-mail de confirmação da transação para o comprador, se o e-mail não foi recebido
ou se precisar corrigir o endereço e-mail.
1. Procure a transação.

2. Clique direito na transação.

3. Clique direito na transação e clique em .


A janela para digitar o endereço e-mail do comprador abre.

4. Digitar o endereço e-mail.

5. Clique em OK.

12.7.
Para enviar de novo o e-mail de confirmação da transação para o Estabelecimento Comercial
1. Procure a transação.

2. Clique direito na transação e clique em .


Uma mensagem de confirmação de envio é exibida.

3. Clique em OK.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 31 / 34
12.8. Capturar uma transação
A opção Capturar está disponível somente para as transações que não foram capturadas.
Para capturar manualmente uma transação:
1. Selecione a aba .

2. Clique direito em uma transação.

3. Selecione .

4. Confirme que você quer capturar selecionada.

12.9. Conciliação manual


Esta operação permite realizar a conciliação manual dos pagamentos de um Estabelecimento Comercial a
partir de um extrato bancário.

1. Na aba Transações capturadas, procure a transação desejada.

2. Clique direito na transação.

3. Selecione Conciliação manual.

4. Clique em Sim para confirmar a conciliação manual da transação selecionada.


A janela Comentário abre.

5. Digite um comentário para esta conciliação.

6. Clique em OK.

O status de conciliação da transação se tornará Conciliado.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 32 / 34
12.10. Realizar um reembolso
A ação Realizar um reembolso se encontra disponível quando a transação tiver o status apresentado.
Esta transação permite creditar de volta a conta de um comprador.
A conta de um comprador é creditada com o valor reembolsado, e o mesmo valor é debitado da conta do
estabelecimento comercial.

Em função do adquirente, pode-se reembolsar parte ou a totalidade do valor da transação.


O prazo de reembolso efetivo nas contas depende também do adquirente.

Para realizar um reembolso:


1. Selecione a aba .

2. Selecione a transação.

3. Clique em .
A caixa de diálogo Reembolso da transação abre.
Exemplo de reembolso total Exemplo de reembolso parcial

4. Digite o valor que deseja reembolsar.


A caixa de texto abre se o reembolso parcial for possível.

5. Clique em .

O detalhe da transação de reembolso aparece.

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 33 / 34
13. OBTER AJUDA
Procurando por ajuda? Confira nossa FAQ em nosso site
https://payzen.io/pt-BR/faq/sitemap.html

Para qualquer pergunta técnica ou solicitação de ajuda, entre em contato com o suporte técnico.

Para facilitar o atendimento das suas solicitações, você deverá informar seu código de loja (número com
8 dígitos).
Esta informação está disponível no e-mail de cadastro da sua loja ou no Back Office EC (menu Configuração
> Loja > Configuração).

Integrar a Google Pay API para seus pagamentos móveis - Versão do documento 1.3
Todos os direitos reservados - 34 / 34

Você também pode gostar