Testowanie za pomocą tokenów próbnych

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

Poniżej znajdziesz przykładowy ładunek odszyfrowany dla karty nietokenizowanej:

ECv2

{
        "gatewayMerchantId": "some-merchant-id",
        "messageExpiration": "1561534717239",
        "messageId": "AH2EjteBXyoZR2TrJK_C2SKvwoG0dsw5WsQDkGOODXA_jwN0TF9j_I_NzWOLNwImcjBEfndMBiDgDJx9phz6H3D4jJQKy22-zcm38gaVcSPK3T_y7Qj1JEAZ-V0KgjpOXWBQTxC2M6vV",
        "paymentMethod": "CARD",
        "paymentMethodDetails": {
            "expirationYear": 2025,
            "expirationMonth": 12,
            "pan": "4111111111111111",
            "authMethod": "PAN_ONLY"
        }
    }
    

ECv1

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

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": 2025,
            "expirationMonth": 12,
            "pan": "4895370012003478",
            "authMethod": "CRYPTOGRAM_3DS",
            "eciIndicator": "07",
            "cryptogram": "AgAAAAAABk4DWZ4C28yUQAAAAAA="
        }
    }
    

ECv1

{
      "messageExpiration": "1507738377032",
      "paymentMethod": "TOKENIZED_CARD",
      "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
      "paymentMethodDetails": {
        "expirationYear": 2025,
        "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": 2025,
            "expirationMonth": 12,
            "pan": "370295136149943",
            "authMethod": "CRYPTOGRAM_3DS",
            "cryptogram": "JnPYbs6FkC1tiVLREAABoAAAkgA="
        }
    }
    

ECv1

{
      "messageExpiration": "1507738377032",
      "paymentMethod": "TOKENIZED_CARD",
      "messageId": "AH2EjtcHYs1Ye-ZIZuZXd7eNO4QjQfZjBDtP2ti0tob_a5o22lHmGWHsBVYrrSylkFC3ZTsRdvMadQpwOGCIl7XxhTKcfElmgF7UFbcI8CeUZCWRmbTH5s7h69Baqr4FAM735VNThPiP",
      "paymentMethodDetails": {
        "expirationYear": 2025,
        "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": 2025,
            "expirationMonth": 12,
            "pan": "5204240250197840",
            "authMethod": "CRYPTOGRAM_3DS",
            "cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA=="
        }
    }
    

ECv1

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