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=="
  }
}