Na tej stronie opisujemy, jak testować integrację z użyciem tokenów próbnych.
Generowanie tokenów próbnych
Aby przetestować odszyfrowywanie tokena na serwerze w przypadku integracji bezpośrednich, możesz wygenerować tokeny przykładowe, jeśli podczas tworzenia wystąpienia PaymentsClient środowisko zostało ustawione na TEST.
Jeśli utworzone wystąpienie PaymentsClient ma środowisko ustawione na TEST, wywołania loadPaymentData działają normalnie i wyświetlają użytkownikowi prośbę o wybranie jednej z jego prawdziwych kart płatniczych. Nigdy jednak nie zwracają rzeczywistych informacji z wybranej karty. Zamiast tego otrzymany token ma zawsze stały ładunek.
Sprawdzanie podpisu
Tokeny utworzone w środowisku TEST są zaszyfrowane za pomocą Twojego klucza publicznego, który został przez Ciebie wcześniej wysłany do Google.
Tokeny są podpisane za pomocą kluczy testowych Google. Jeśli korzystasz z biblioteki Tink, upewnij się, że określono .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) podczas tworzenia obiektu PaymentMethodTokenRecipient.
Odszyfrowany ładunek
Po odszyfrowaniu tokenu próbnego otrzymujesz ładunek w postaci niezaszyfrowanej. Struktura ładunku zależy od tego, czy wybrana karta jest tokenizowana, co oznacza, że została dodana do Google Pay, czy nie. Dodatkowo w przypadku kart tokenizowanych ładunek będzie się różnić w zależności od sieci operatora karty. Ładunek dla kart nietokenizowanych jest zawsze taki sam, niezależnie od sieci.
Te trzy pola w Twoim ładunku odszyfrowanym mogą być inne niż w poniższych próbkach:
messageExpiration: sygnatura czasowa ustawiona na tydzień później, licząc od danego momentu;messageId: identyfikator losowo generowany dla każdego ładunku;expirationYear: ustawiony na za pięć lat, licząc od bieżącego roku.
Struktura ładunku odszyfrowanego różni się w zależności od wersji protokołu: ECv1 lub ECv2. Jeśli wdrażasz nową integrację, wykorzystywana będzie wersja ECv2. Jeśli nie masz pewności co do wersji protokołu, zapytaj o to swoją osobę kontaktową w Google.
Karta nietokenizowana
Visa
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart nietokenizowanych Visa:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1650574736277",
"messageId": "AH2Ejtc88ZHJ-2aYBQWzHwvp6l0JsCHgxVt8s91A-ZUikaXNbcjsFm6gg9ExeVR-jzIyT-mJvA_ntvfRsDDOH2jnKMjdTtXIJvPt0NBUU45R7-gnjxkx-sI0ldcWvbDHsV0735yFDbWk",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "4111111111111111",
"authMethod": "PAN_ONLY"
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "4111111111111111"
}
}MasterCard
Poniżej znajdziesz przykład odszyfrowanego ładunku dla kart nietokenizowanych MasterCard:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1650574585777",
"messageId": "AH2Ejte23Sp0DBWqKVQ1d8ICVQialPGgXSsTT4NnCjNy3i-jdJg6B_wllO8590dFfrLg16GqGcuSrEPjl-sQZ-K8sKCL62ahwh5kzUv4ggLwioImJmuEuKfAiEQBRW0L8zlo0Nv6LFuk",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "5555555555554444",
"authMethod": "PAN_ONLY"
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "5555555555554444"
}
}American Express
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart nietokenizowanych Amex:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1650574857349",
"messageId": "AH2EjtcmoURSXm2RhZ8ihnJrsty-7Ewm3NEnJDM-Atw9ewbIPvuarglows0vtaCV33b4z3PpM5RsMklbpe0aNPK5_BanGxmp_JSsOEtZYuf4m3cHTtKnxpQeonN07XDK-DUPKAaRwLfY",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "378282246310005",
"authMethod": "PAN_ONLY"
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "378282246310005"
}
}Discover
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart nietokenizowanych Discover:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1650574781399",
"messageId": "AH2EjteSxPPpbJOXKXzG1Cqkh1kzJz0UP1AG4w75n9q7gCtWsawfRlqtUZofjIBnKlbozvASxKkkdbjv2-rOfNGd_st4kFqPeb6O3IE-fXeIcHzH8x56tMRylEnfnrF6x01ET8KdUeLS",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "6011111111111117",
"authMethod": "PAN_ONLY"
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "6011111111111117"
}
}Karta tokenizowana
Karta tokenizowana to karta, która została dodana do Google Pay.
Odszyfrowany ładunek dla karty tokenizowanej zależy od typu wybranej karty. W poniższych trzech przykładach są pokazane ładunki odszyfrowane dla różnych typów kart tokenizowanych.
Visa
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart tokenizowanych Visa:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1561533871082",
"messageId": "AH2Ejtc8qBlP_MCAV0jJG7ErQKeDrkEUtQ0N3QRvPXWJc-jgC0VTfgmarDRZvTwuzirQPdUjkMkiQ7tnDidZbtlQTO-mAgMIdXRMuYedhZXnCcokmkJOOnE7jBn-pvkyBncOgpPWFFn3",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "4895370012003478",
"authMethod": "CRYPTOGRAM_3DS",
"eciIndicator": "07",
"cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA="
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "TOKENIZED_CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"dpan": "4895370012003478",
"expirationMonth": 12,
"authMethod": "3DS",
"3dsCryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA=",
"eciIndicator": "07"
}
}American Express,
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart tokenizowanych American Express:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1561534208255",
"messageId": "AH2Ejtf3Lp6LzjK6BswXBvVKZapBJNgMUbVHF_TORaVi7lV0tvRfzvApsZm-RAXF_szQq9qS_BwLTgZGrXvk0ZydZwUISo4x6dxojDoz0fl7loXwZ8JApFrQWU__ExxljKY4Y4mu2aQz",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "370295136149943",
"authMethod": "CRYPTOGRAM_3DS",
"cryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "TOKENIZED_CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"dpan": "370295136149943",
"expirationMonth": 12,
"authMethod": "3DS",
"3dsCryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
}
}Wszystkie inne sieci
Poniżej znajdziesz przykład ładunku odszyfrowanego dla kart tokenizowanych pozostałych sieci:
ECv2
{
"gatewayMerchantId": "some-merchant-id",
"messageExpiration": "1561534208255",
"messageId": "AH2EjterqtEqlB9vQvy2kJEugwCDYtMzVtLrVH26Qd1RDFK_EFsFmPdpPOqcCIedXNpAc6sCM61GuYM_bgVl930tU8I0Ar0WUx87MIw36skUC-IT_APvbx4qRqw9Hfu2W-7zY6LMdgZ5",
"paymentMethod": "CARD",
"paymentMethodDetails": {
"expirationYear": 2027,
"expirationMonth": 12,
"pan": "5204240250197840",
"authMethod": "CRYPTOGRAM_3DS",
"cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
}
}ECv1
{
"messageExpiration": "1507738377032",
"paymentMethod": "TOKENIZED_CARD",
"messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
"paymentMethodDetails": {
"expirationYear": 2027,
"dpan": "5204240250197840",
"expirationMonth": 12,
"authMethod": "3DS",
"3dsCryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
}
}