Google Pay

O Google Pay é uma carteira virtual. Ele permite que os compradores realizem pagamentos em lojas virtuais e apps utilizando, de forma prática e segura, seus cartões de crédito e débito armazenados em suas contas "Google Account" e dispositivos Android.

Pré-Requisitos

Para utilização do Google Pay, é necessário que a loja já possua cadastro e integração Google Pay. Além disso, você deve:

  1. Concordar com os termos de serviço do Google Pay;
  2. Seguir os passos dessa documentação para completar a integração junto à Google Pay;
  3. Contratar a API E-commerce Cielo;
  4. Contratar o Cielo 3.0 como adquirência;
  5. Integrar com a API E-commerce Cielo.

ETAPA 1: Integração com Google Pay

Nesta etapa inicial, você deverá configurar seu projeto e implementar o Google Pay em seu aplicativo Android.

Passo 1 - Configuração do Projeto

Para configurar seu projeto, siga as instruções descritas no Guia de Configuração do Google Pay.
Neste passo, você deverá adicionar dependências importando a biblioteca do Google Play Services ou então escolhendo as APIs que deseja compilar. E então, para ativar o Google Pay no seu aplicativo Android, você deverá **modificar o arquivo _"AndroidManifest.xml"_** do seu projeto de acordo com as instruções dadas na página.

Passo 2 - Implementação do Google Pay

Para integrar o Google Pay em seu aplicativo, siga todos os passos indicados no Tutorial de Implementação do Google Pay.

Para a correta integração do Google Pay via Cielo, é necessário se atentar aos pontos abaixo:

Definição do Gateway

No passo "Step 2: Request a payment token for your payment provider", siga o modelo indicado como "GATEWAY" e atribua o valor "PAYMENT_GATEWAY" ao parâmetro type e o valor "cielo" ao parâmetro gateway, conforme o exemplo dado:

private static JSONObject getTokenizationSpecification() {
  JSONObject tokenizationSpecification = new JSONObject();
  tokenizationSpecification.put("type", "PAYMENT_GATEWAY");
  tokenizationSpecification.put(
      "parameters",
      new JSONObject()
          .put("gateway", "cielo")
          .put("gatewayMerchantId", "exampleMerchantId"));
  return tokenizationSpecification;
}

Preencha o parâmetro gatewayMerchantId com o identificador de sua loja, gerado pelo gateway. O identificador da loja segue o formato "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" (tipo GUID / tamanho 36).

Definição das Bandeiras

No passo "Step 3: Define supported payment card networks", configure conforme as bandeiras aceitas pela wallet.

Definição do Ambiente

No passo "Step 5: Create a PaymentsClient instance", utilize o valor "WalletConstants.ENVIRONMENT_TEST" para o ambiente de testes.

Definição dos Dados de Compra

No passo "Step 7: Create a PaymentDataRequest object", utilize o valor "BRL" para o parâmetro currencyCode. O campo merchantName é o nome que o comprador visualizará durante o pagamento com Google Pay e recomenda-se, desta forma, colocar-se um nome amigável e reconhecido.

Recuperação dos Dados de Pagamento

No passo "Step 9: Handle the response object", está descrito o evento Activity.RESULT_OK, onde é retornado um objeto com todos os dados referentes ao dados de pagamento, inclusive o token de pagamento.

A partir do PaymentData, obtém-se o objeto PaymentMethodToken, através da chamada do método getPaymentMethodToken(). Clique aqui para mais informações.

Na sequência, deve-se obter a string que contém tokens de pagamento a partir do método GetToken() do objeto PaymentMethodToken. Clique aqui para mais informações.

A string obtida no passo anterior possui uma estrutura como a mostrada a seguir. Clique aqui para mais informações.

{
  "protocolVersion": "ECv1",
  "signature": "TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ",
  "signedMessage": "{\"encryptedMessage\":
  \"ZW5jcnlwdGVkTWVzc2FnZQ==\",\"ephemeralPublicKey\":
  \"ZXBoZW1lcmFsUHVibGljS2V5\",\"tag\": \"c2lnbmF0dXJl\"}"
}
ParâmetroTypeDescrição
signedMessagestringMensagem assinada.
signaturestringAssinatura da mensagem.

Guarde os dados signedMessage e signature, que serão requisitados na autorização via API E-commerce Cielo na ETAPA 2, descrita a seguir.

ETAPA 2: Autorização com Token

A autorização com o token do Google Pay acontece da mesma forma que a autorização padrão de um cartão de crédito. Porém, ao invés de se fornecer os dados do cartão abertamente, deverá ser fornecido o token recebido pelo Google Pay, conforme o exemplo a seguir:

Atenção: A integração a seguir deve ser feita por lojas que enviam dados de cartão de forma criptografada. Se a sua loja envia a requisição de autorização de e-wallet com dados descriptografados, vá para Cartão descriptografado.

Requisição

{
  "MerchantOrderId": "2014111708",
  "Customer": {
    (…)
  },
  "Payment": {
    "Type": "CreditCard",
    "Amount": 100,
    "Installments": 1,
    "Wallet": {
      "Type": "AndroidPay",
      "WalletKey": "{\"encryptedMessage\": \"ZW5jcnlwdGVkTWVzc2FnZQ==\",\"ephemeralPublicKey\": \"ZXBoZW1lcmFsUHVibGljS2V5\",\"tag\": \"c2lnbmF0dXJl\"}",
      "AdditionalData": {
        "Signature": "ZXBoZW1lcmFsUHVibGljS2V5"
      }
    }
  }
}
Parâmetros do HeaderDescriçãoTipo e tamanho
MerchantIdID do estabelecimento na Cielo 3.0. Para ambiente Sandbox, utilize 63D6ACCB-2734-4236-AB5D-843A9DAC44C7.GUID (36)
MerchantKeyChave da API para Cielo 3.0. Para ambiente Sandbox, utilize ZCVHDJWKTGOZXADDYJFURIDIKHEMRYQAQDYEJMQK.String (24)
ParâmetroDescriçãoTipo e tamanho
MerchantOrderIdNúmero de identificação do pedido.String (50)
CustomerNó com dados do comprador.Consulte o manual da API E-commerce Cielo.
Payment.TypeTipo do meio de pagamento. Possibilidades: "CreditCard" / "DebitCard".String (100)
Payment.AmountValor do pedido, em centavos.Número (15)
Payment.InstallmentsNúmero de parcelas.Número (2)
Payment.Wallet.TypeNome do provedor de meio de pagamento. Para transações Google Pay, utilize "AndroidPay".String (15)
Payment.Wallet.WalletKeyPreencher com o valor do parâmetro signedMessage retornado pelo Google Pay.String
Payment.Wallet.AdditionalData.SignaturePreencher com o valor do parâmetro signature retornado pelo Google Pay.String

Para mais informações, consulte a Referência da API.

Resposta

A resposta de autorização da wallet terá os mesmos campos apresentados em nossa documentação do API E-commerce, porém com a adição do nó Payment.Wallet repetindo os mesmos campos utilizados na autorização, como descrito acima.

ETAPA 3: Solicitação de dados de produção

Para finalizar o processo, é necessário validar os passos das etapas anteriores e então solicitar as credenciais de acesso para entrar em produção.

Passo 1 - Branding guideline

Verifique se todas as diretrizes de branding foram seguidas conforme descrito no Guia Diretrizes de Marca.

Passo 2 - Checklist e solicitação de credenciais

Verifique se todos os itens do checklist de integração foram atendidos. Após tudo validado, solicite os dados de acesso do ambiente de produção.