Nesta página, descrevemos como usar tokens de amostra para testar sua integração.
Gerar tokens de amostra
É possível gerar tokens de amostra para testar a descriptografia de token para integrações diretas no seu
servidor, caso tenha definido o ambiente como TEST
ao criar uma
instância PaymentsClient
.
Quando a instância PaymentsClient
é criada com o ambiente definido como
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. Em vez disso, o token resultante sempre terá um payload
constante.
Verificar assinatura
Os tokens produzidos no ambiente 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 a Tink, verifique se
.fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST)
é definido
ao criar um objeto PaymentMethodTokenRecipient
.
Payload descriptografado
Depois que o token de amostra é descriptografado, você recebe o payload de texto não criptografado. A estrutura do payload depende de se o cartão selecionado foi 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 de cartões.
Os três campos a seguir podem ser diferentes no seu payload descriptografado em comparação aos exemplos abaixo:
messageExpiration
: um carimbo de data/hora definido uma semana a partir da hora atual.messageId
: gerado aleatoriamente para cada payload.expirationYear
: definido para cinco anos a partir do ano atual.
A estrutura do payload descriptografado é diferente nas duas versões de protocolo, ECv1 e ECv2. Se você implementar uma nova integração, a versão será ECv2. Caso não tenha certeza sobre a versão do protocolo, confirme com seu ponto de contato do Google.
Cartão não tokenizado
Visa
Confira a seguir um exemplo de payload descriptografado para cartões Visa não tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1650574736277", "messageId": "AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "4111111111111111", "authMethod": "PAN_ONLY" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "4111111111111111" } }
Mastercard
Confira a seguir um exemplo de payload descriptografado para cartões Mastercard não tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1650574585777", "messageId": "AH2Ejte23Sp0DBWqKVQ1d8ICVQialPGgXSsTT4NnCjNy3i-jdJg6B_wllO8590dFfrLg16GqGcuSrEPjl-sQZ-K8sKCL62ahwh5kzUv4ggLwioImJmuEuKfAiEQBRW0L8zlo0Nv6LFuk", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "5555555555554444", "authMethod": "PAN_ONLY" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "5555555555554444" } }
American Express
Confira a seguir um exemplo de payload descriptografado para cartões Amex não tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1650574857349", "messageId": "AH2EjtcmoURSXm2RhZ8ihnJrsty-7Ewm3NEnJDM-Atw9ewbIPvuarglows0vtaCV33b4z3PpM5RsMklbpe0aNPK5_BanGxmp_JSsOEtZYuf4m3cHTtKnxpQeonN07XDK-DUPKAaRwLfY", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "378282246310005", "authMethod": "PAN_ONLY" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "378282246310005" } }
Discover
Confira a seguir um exemplo de payload descriptografado para cartões Discover não tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1650574781399", "messageId": "AH2EjteSxPPpbJOXKXzG1Cqkh1kzJz0UP1AG4w75n9q7gCtWsawfRlqtUZofjIBnKlbozvASxKkkdbjv2-rOfNGd_st4kFqPeb6O3IE-fXeIcHzH8x56tMRylEnfnrF6x01ET8KdUeLS", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "6011111111111117", "authMethod": "PAN_ONLY" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "6011111111111117" } }
Cartão tokenizado
"Cartão tokenizado" se refere a cartões adicionados ao Google Pay.
O payload descriptografado de um cartão tokenizado depende do tipo de cartão selecionado. Nos três exemplos a seguir, veja payloads descriptografados de tipos diferentes de cartões tokenizados.
Visa
Veja a seguir um exemplo de payload descriptografado de cartões Visa tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1561533871082", "messageId": "AH2Ejtc8qBlP_MCAV0jJG7ErQKeDrkEUtQ0N3QRvPXWJc-jgC0VTfgmarDRZvTwuzirQPdUjkMkiQ7tnDidZbtlQTO-mAgMIdXRMuYedhZXnCcokmkJOOnE7jBn-pvkyBncOgpPWFFn3", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "4895370012003478", "authMethod": "CRYPTOGRAM_3DS", "eciIndicator": "07", "cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "TOKENIZED_CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "dpan": "4895370012003478", "expirationMonth": 12, "authMethod": "3DS", "3dsCryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=", "eciIndicator": "07" } }
American Express
Veja a seguir um exemplo de payload descriptografado de cartões American Express tokenizados:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1561534208255", "messageId": "AH2Ejtf3Lp6LzjK6BswXBvVKZapBJNgMUbVHF_TORaVi7lV0tvRfzvApsZm-RAXF_szQq9qS_BwLTgZGrXvk0ZydZwUISo4x6dxojDoz0fl7loXwZ8JApFrQWU__ExxljKY4Y4mu2aQz", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "370295136149943", "authMethod": "CRYPTOGRAM_3DS", "cryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA=" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "TOKENIZED_CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "dpan": "370295136149943", "expirationMonth": 12, "authMethod": "3DS", "3dsCryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA=" } }
Todas as outras redes
Veja a seguir um exemplo de payload descriptografado de cartões tokenizados de todas as outras redes:
ECv2
{ "gatewayMerchantId": "some-merchant-id", "messageExpiration": "1561534208255", "messageId": "AH2EjterqtEqlB9vQvy2kJEugwCDYtMzVtLrVH26Qd1RDFK_EFsFmPdpPOqcCIedXNpAc6sCM61GuYM_bgVl930tU8I0Ar0WUx87MIw36skUC-IT_APvbx4qRqw9Hfu2W-7zY6LMdgZ5", "paymentMethod": "CARD", "paymentMethodDetails": { "expirationYear": 2028, "expirationMonth": 12, "pan": "5204240250197840", "authMethod": "CRYPTOGRAM_3DS", "cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA==" } }
ECv1
{ "messageExpiration": "1507738377032", "paymentMethod": "TOKENIZED_CARD", "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP", "paymentMethodDetails": { "expirationYear": 2028, "dpan": "5204240250197840", "expirationMonth": 12, "authMethod": "3DS", "3dsCryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA==" } }