Această pagină descrie cum să utilizați exemple de token-uri pentru a testa integrarea.
Generați jetoane de exemplu
Pentru integrări directe, pentru a testa decriptarea token-urilor pe serverul dvs., puteți genera token-uri eșantion dacă setați ENVIRONMENT_TEST atunci când construiți o instanță PaymentsClient .
Când instanța PaymentsClient este construită cu mediul setat la ENVIRONMENT_TEST , apelurile către loadPaymentData funcționează ca de obicei și solicită utilizatorului să selecteze unul dintre cardurile sale reale. Cu toate acestea, nu returnează niciodată informații reale despre cardul selectat și, în schimb, token-ul rezultat are întotdeauna o sarcină utilă constantă.
Verificați semnătura
Jetoanele produse în ENVIRONMENT_TEST sunt criptate cu cheia publică de testare trimisă anterior către Google.
Jetoanele sunt semnate cu cheile de testare Google . Dacă utilizați Tink, asigurați-vă că este setat .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) atunci când construiți un obiect PaymentMethodTokenRecipient .
Sarcină utilă decriptată
După ce tokenul eșantion este decriptat, primiți sarcina utilă în text clar. Structura sarcinii utilă depinde de dacă cardul selectat este tokenizat, adică adăugat la Google Wallet. În plus, sarcina utilă pentru cardurile tokenizate este diferită, în funcție de rețeaua de carduri. Sarcina utilă pentru cardurile netokenizate este întotdeauna aceeași, indiferent de rețeaua de carduri.
Următoarele trei câmpuri pot diferi în sarcina utilă decriptată în comparație cu exemplele de mai jos:
-
messageExpiration: Aceasta este setată la o săptămână de la ora curentă. -
messageId: Acesta este generat aleatoriu pentru fiecare sarcină utilă. -
expirationYear: Aceasta este setată la cinci ani de la anul curent.
Structura sarcinii utile decriptate variază între două versiuni de protocol, ECv1 și ECv2. Dacă implementați o nouă integrare, versiunea este ECv2. Dacă nu sunteți sigur de versiunea protocolului, confirmați acest lucru cu persoana de contact Google.
Card fără tokenuri
Visa
Următorul exemplu este o sarcină utilă decriptată pentru carduri Visa netokenizate:
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
Următorul exemplu este o sarcină utilă decriptată pentru carduri Mastercard netokenizate:
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
Următorul exemplu este o sarcină utilă decriptată pentru carduri Amex netokenizate:
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"
}
}Descoperi
Următorul exemplu este o sarcină utilă decriptată pentru carduri Discover netokenizate:
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"
}
}JCB
Următorul exemplu este o sarcină utilă decriptată pentru carduri JCB netokenizate:
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"
}
}
}
}Card tokenizat
Un card tokenizat este un card adăugat la Google Wallet.
Sarcina utilă decriptată a unui card tokenizat depinde de tipul de card selectat. Următoarele trei exemple prezintă sarcini utile decriptate pentru diferite tipuri de carduri tokenizate.
Visa
Următorul exemplu este o sarcină utilă decriptată pentru carduri Visa tokenizate:
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=",
"3dsEciIndicator": "07"
}
}American Express
Următorul exemplu este o sarcină utilă decriptată pentru carduri American Express tokenizate:
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="
}
}Toate celelalte rețele
Următorul exemplu este o sarcină utilă decriptată pentru carduri tokenizate pentru toate celelalte rețele:
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=="
}
}