Google Pay™

Google Pay permite que os seus clientes armazenem formas de pagamento na própria conta Google para fazer compras mais rápidas e com segurança.

Como Funciona#

Quando o comprador clica no botão de pagamento do Google Pay, são exibidas as formas de pagamentos salvas na conta do Google dele. O comprador pode selecionar rapidamente a forma de pagamento desejada e opcionalmente preencher informações adicionais da compra. Após esta interação com a Google Pay, estes mesmos dados serão enviados/processados pelo Carat para efetuar o fluxo de pagamento.

O Google Pay é suportado pelo Carat, no entanto, não é suportado por todos os adquirentes e não está ativado por padrão na sua conta. Entre em contato com um membro de nossa equipe de suporte para obter mais informações.

Atenção: Ao utilizar o Google Pay pelo Carat, o lojista deve estar ciente e aderente à Política de Utilização Aceitável e o mesmo aceita os Termos de Serviço da API Google Pay.


Pagamento REST#

Integre-se ao Google Pay#

Para começar a processar pagamentos com o Google Pay, você precisa se integrar ao Google via Web ou Android. Durante a integração, você verá que alguns parâmetros são necessários para processar o Google Pay através do Carat:

  • O parâmetro gatewayMerchantId deve ser preenchido com o merchant_id da loja no Carat;
  • O parâmetro gateway deve ser preenchido com softwareexpress;

Este é um exemplo da integração via web, em que é necessário configurar com os dados do Carat:

const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
gateway: 'softwareexpress',
gatewayMerchantId: '<ESITEF_MERCHANT_ID>',
},
};

Este é um trecho de exemplo da integração via Android, em que é necessário configurar com os dados do Carat:

.setPaymentMethodTokenizationType(WalletConstants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY)
.addParameter("gateway", "softwareexpress")
.addParameter("gatewayMerchantId", "<ESITEF_MERCHANT_ID>")

Além disso, a loja precisa seguir as diretrizes de layout do Google Pay. Consulte a documentação do Google Pay para as diretrizes da marca.

As seguintes redes de cartões disponíveis no Google Pay são suportadas pelo Carat: VISA, ELECTRON, MASTERCARD, MAESTRO, ELO, ELO_DEBIT, AMEX, DISCOVER e JCB. Os seguintes meios de autorização disponíveis no Google Pay são suportados pelo Carat: PAN_ONLY e 3DS_CRYPTOGRAM. Entre em contato com nossa equipe de suporte para ativar as configurações adequadas para a sua loja.

As telas abaixo demonstram um fluxo de compra na Web recomendado pela Google Pay.  -no-filter

As telas abaixo demonstram um fluxo de compra no Android recomendado pela Google Pay.  -no-filter

Envie os dados para o Carat#

Ao concluir a integração com o Google, você terá todas as informações necessárias para realizar um pagamento com o Carat.

O Google responderá com a resposta PaymentData, que inclui a carga criptografada (token). Da resposta do Google contendo as informações do cliente, extraia o token do Google Pay, seguindo as referências da API. Atualmente o token pode ser extraido de paymentData.paymentMethodData.tokenizationData.token. Utilize este token na requisição de efetivação de pagamento no campo card.wallet_transaction_id. Adicionalmente será necessário repassar o campo paymentData.paymentMethodData.info.cardNetwork para o campo wallet_returned_card_brand. Abaixo segue um exemplo desta requisição:

O conteúdo do paymentData.paymentMethodData.tokenizationData.token equivale a uma JSON, mas não há necessidade de tratar este conteúdo. Repasse o valor obtido sem realizar qualquer tratamento para o campo card.wallet_transaction_id.

curl -X POST \
https://{{url}}/e-sitef/api/v1/payments/<NIT> \
--header "Content-Type: application/json" \
--header "merchant_id: <MERCHANT_ID>" \
--header "merchant_key: <MERCHANT_KEY>" \
--data-binary '{
"authorizer_id": "405",
"card": {
"wallet_transaction_id": "{\"signatures\":\"MEUCIH1PBdMmbWMvaR/ArH08R/OT41Or2yfLqbzj2JG9VGfJAiEA+6NPKT6sAKZeaLacm29wIS8v2tUwPE281JuRBf81imo\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEm1j1auejJXFzexs/H3TasImWFERsifrx93W7wxZb0dpLxk/FaK8hQN6Ypwep8DaYrEKSp6zvxeE4ezDrssf/Bg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1576347458323\\\"}\",\"signatures\":[\"MEYCIQCbAolg3/K2yD0/p3K7gRFhXva79STrj+rZcYp/3vi6ogIhANGT/9GkO9S1lJtnu3C6QQ/kFSR2wxtPJRGfuqSKs9FE\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"Dcm8wxtB6Bp7CyHV1OBqTskStqX3K5x7I0fV/2V0KsMLkZHP5nn+IXC+HBLkZtPF0Ov6uBD1eLbOB2KQd1cVmBPm7f4xSsB4DaYTktfk2AaLpR0BZlb9errv4jl4QAxSLdxw8Hk3EKicSmvsUNE2SzFBOONPrvv1qe03ZnzB3Q0ID1ocsBJ09PQ/2jft0WY/Py6iAA4sccZKmxLdo83NJJc1VrfcGLcqwy5InUV4nSxmXrnr/eNQDIx9p4Yf3RSVlS6/t+bEpUjpUSwSNoHwzhlWOve3/Gm+yt+OKheXOWSsXiHJL1rV1ENgDroR2uMUb85OZCF1ulStb6U8xocRVKSKkhAxFVUehz568huQdlEjns+5MMWdZkNgH3cXMgTQxZ6DiUYxMthUhdT8HINXCUYxaT/od/Njh2JZHJb2R4u4HsfViUoIVRHojSaepXP3KI2z4G9hPwKX/MWeEMyiZRUiCHHe0VJoU/8xxg\\\\u003d\\\\u003d\\\",\\\"ephemeralPublicKey\\\":\\\"BG0eCJ8xbPN55ht7b3oDZgFgwG4rZxkRWrOFnmW9wwxUrZS0A6oeMAySLKThMydaGuoTbbiAwK38zx8pnNKgirA\\\\u003d\\\",\\\"tag\\\":\\\"uPvitOn+aGk48RlrwzYSKgDicO5oYtmMEWXzj5rUewo\\\\u003d\\\"}\"}",
"wallet_returned_card_brand" : "MASTER"
},
}'

No exemplo acima, foi definido no campo authorizer_id com o valor 405, que corresponde selecionar a Google Pay como forma de pagamento; e foi definido no campo wallet_transaction_id com o valor do token da Google Pay . Uma execução bem-sucedida do comando acima retornará um JSON semelhante à abaixo.

{
"code": "0",
"message": "OK. Transaction successful.",
"payment": {
"authorizer_code": "000",
"authorizer_message": "Transacao OK",
"status": "CON",
"nit": "<NIT>",
"order_id": "13034649671",
"customer_receipt": "====CUPOM COMPRADOR====",
"merchant_receipt": "====CUPOM ESTABELECIMENTO====",
"authorizer_id": "405",
"acquirer_id": "1005",
"acquirer_name": "Redecard",
"authorizer_date": "28/02/2020T08:57",
"authorization_number": "132030",
"merchant_usn": "13034649671",
"esitef_usn": "170713097340300",
"sitef_usn": "132030",
"host_usn": "999132030",
"payment_date": "13/07/2017T15:52",
"amount": "1000",
"payment_type": "C",
"issuer": "2",
"authorizer_merchant_id": "<MERCHANT_ID>"
}
}

Para maiores detalhes, veja a documentação do fluxo de pagamento do Carat.


Armazenamento REST#

É possível realizar o armazenamento de cartão, sendo que existem algumas exceções de casos, dependendo de como o token da Google Pay foi gerada. Entre em contato com a nossa equipe de suporte para realizar as configurações necessárias para possibilitar este armazenamento.

O armazenamento de cartão REST funciona como se fosse armazenar um cartão qualquer, porém com os seguintes cuidados:

  • Ao invés de enviar os número do cartão, envie o campo wallet_transaction_id.
  • O envio do campo authorizer_id deve ser '405' (Google Pay).

Para maiores detalhes, veja aqui.

Pagamento HTML#

Para utilizar o Google Pay com o pagamento HTML, entre em contato com um membro de nossa equipe de suporte para realizar a configuração necessária. É possível determinar quais bandeiras serão aceitas no Google Pay na integração HTML.