サンプル トークンでのテスト

このページでは、サンプル トークンを使用して統合をテストする方法について説明します。

サンプル トークンの生成

直接統合では、PaymentsClient インスタンスを作成するときに環境を TEST に設定することで、販売者のサーバーで復号をテストするためのサンプル トークンを生成できます。

環境を TEST に設定して PaymentsClient インスタンスを作成した場合、loadPaymentData の呼び出しは通常どおり動作し、ユーザーは実際のカードを選択するよう求められます。ただし内部では、選択されたカードから実際の情報は返されず、その代わりに常に一定のペイロードを含むトークンが返されます。

署名の検証

TEST 環境で生成されるトークンは、以前に Google に送信された販売者のテスト用公開鍵で暗号化されています。

これらのトークンは Google のテスト鍵で署名されています。Tink を使用する場合は、PaymentMethodTokenRecipient オブジェクトを作成するときに .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) が設定されていることを確認してください。

復号されたペイロード

サンプル トークンが復号されると、クリアテキスト ペイロードが手に入ります。ペイロードの構造は、選択したカードがトークン化されているかどうかによって異なります(「トークン化された」とは、Google Pay に追加されていることを意味します)。さらに、トークン化されたカードのペイロードは、カード ネットワークによって異なります。トークン化されていないカードのペイロードは、カード ネットワークに関係なく常に同じになります。

復号されたペイロードに含まれる次の 3 つのフィールドは、このページのサンプルとは異なる場合があります。

  • messageExpiration: 現在の時刻から 1 週間後に設定されたタイムスタンプ。
  • messageId: これはペイロードごとにランダムに生成されます。
  • expirationYear: これは今年から 5 年後に設定されます。

復号されたペイロードの構造は、ECv1 と ECv2 の 2 つのプロトコル バージョン間で異なります。新しい統合を実装する場合のバージョンは ECv2 です。プロトコル バージョンが不明な場合は、Google の担当者にご確認ください。

トークン化されていないカード

次に、トークン化されていないカードの復号されたペイロードの例を示します。

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

トークン化されたカード

「トークン化されたカード」とは、Google Pay に追加されたカードのことです。

トークン化されたカードの復号されたペイロードは、選択したカードの種類によって異なります。以下の 3 つの例では、トークン化されたカードの種類に応じた、復号されたペイロードを示しています。

Visa

以下は、トークン化された 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

以下は、トークン化された 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="
      }
    }
    

他のすべてのネットワーク

以下は、他のすべてのネットワークのトークン化されたカードの復号されたペイロードの例です。

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