Testar com tokens de amostra

Em integrações diretas, para testar a descriptografia de token em seu servidor, é possível gerar tokens de amostra configurando ENVIRONMENT_TEST no momento da criação de uma instância do PaymentsClient.

Quando a instância PaymentsClient é criada com o ambiente definido como ENVIRONMENT_TEST, as chamadas para loadPaymentData funcionam normalmente e solicitam que o usuário selecione um dos cartões reais. No entanto, ela nunca retorna informações reais do cartão que foi selecionado e, em vez disso, o token resultante sempre tem um payload constante.

Criptografia

Os tokens produzidos no ENVIRONMENT_TEST são criptografados com sua chave pública de teste que foi enviada anteriormente ao Google.

Os tokens são assinados com as chaves de teste do Google. Se você usa o Tink, assegure-se de que .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) esteja definido quando você cria um objeto PaymentMethodTokenRecipient.

Payload de teste

O payload do token depende de o cartão selecionado ser tokenizado, o que significa que ele foi adicionado ao Google Pay ou não. Além disso, o payload para cartões tokenizados é diferente, o que depende da rede do cartão. Para cartões não tokenizados, ele é sempre o mesmo, independentemente da rede do cartão.

Os três campos seguintes podem diferir no seu payload de teste em comparação com os exemplos abaixo:

  • messageExpiration: um carimbo de data e hora definido em uma semana a partir da hora atual.
  • messageId: gerado aleatoriamente para cada payload.
  • expirationYear: definido para cinco anos a partir do ano atual.

Cartão não tokenizado

No exemplo a seguir, veja como um payload de teste de um cartão não tokenizado precisa ser:

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2022,
    "expirationMonth": 12,
    "pan": "4111111111111111"
  }
}

Cartão tokenizado

Um "cartão tokenizado" é um cartão adicionado ao Google Pay.

O payload de teste de um cartão tokenizado depende do tipo de cartão selecionado. Nos exemplos a seguir, veja payloads de teste para diferentes tipos de cartões tokenizados:

Visa:

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2022,
    "dpan": "4895370012003478",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
    "eciIndicator": "07"
  }
}

American Express:

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2022,
    "dpan": "370295136149943",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
  }
}

Todas as outras redes:

{
  "messageExpiration": "1507738377032",
  "paymentMethod": "TOKENIZED_CARD",
  "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
  "paymentMethodDetails": {
    "expirationYear": 2022,
    "dpan": "5204240250197840",
    "expirationMonth": 12,
    "authMethod": "3DS",
    "3dsCryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
  }
}