ทดสอบด้วยโทเค็นตัวอย่าง

หน้านี้จะอธิบายวิธีใช้โทเค็นตัวอย่างเพื่อทดสอบการผสานรวม

สร้างโทเค็นตัวอย่าง

สำหรับการผสานรวมโดยตรง หากต้องการทดสอบการถอดรหัสโทเค็นในเซิร์ฟเวอร์ คุณสามารถสร้างโทเค็นตัวอย่างได้หากตั้งค่า ENVIRONMENT_TEST เมื่อสร้างอินสแตนซ์ PaymentsClient

เมื่อสร้างอินสแตนซ์ PaymentsClient โดยตั้งค่าสภาพแวดล้อมเป็น ENVIRONMENT_TEST การเรียกไปยัง loadPaymentData จะทำงานตามปกติและขอให้ผู้ใช้เลือกบัตรจริงใบใดใบหนึ่ง อย่างไรก็ตาม ฟังก์ชันนี้จะไม่แสดงข้อมูลจริง จากบัตรที่เลือก และโทเค็นที่ได้จะมีเพย์โหลดคงที่ เสมอ

ยืนยันลายเซ็น

โทเค็นที่สร้างใน ENVIRONMENT_TEST จะได้รับการเข้ารหัสด้วยคีย์สาธารณะสำหรับการทดสอบที่คุณ ส่งให้ Google ก่อนหน้านี้

โทเค็นจะได้รับการลงนามด้วย คีย์ทดสอบของ Google หากคุณใช้ Tink โปรดตรวจสอบว่า .fetchSenderVerifyingKeysWith(GooglePaymentsPublicKeysManager.INSTANCE_TEST) ได้รับการตั้งค่า เมื่อคุณสร้างออบเจ็กต์ PaymentMethodTokenRecipient

เพย์โหลดที่ถอดรหัสแล้ว

เมื่อถอดรหัสโทเค็นตัวอย่างแล้ว คุณจะได้รับเพย์โหลดข้อความธรรมดา โครงสร้างเพย์โหลด จะขึ้นอยู่กับว่าบัตรที่เลือกมีการแปลงเป็นโทเค็นหรือไม่ ซึ่งหมายถึงการเพิ่มลงใน Google Wallet นอกจากนี้ เพย์โหลดสำหรับบัตรที่ใช้โทเค็นจะแตกต่างกันไปตามเครือข่ายบัตร เพย์โหลดสำหรับบัตรที่ไม่ได้ใช้โทเค็นจะเหมือนกันเสมอ ไม่ว่าจะเป็นเครือข่ายบัตรใดก็ตาม

ฟิลด์ 3 รายการต่อไปนี้อาจแตกต่างกันในเพย์โหลดที่ถอดรหัสแล้วเมื่อเทียบกับตัวอย่างด้านล่าง

  • messageExpiration: โดยจะตั้งค่าเป็น 1 สัปดาห์นับจากเวลาปัจจุบัน
  • messageId: ระบบจะสร้างค่านี้แบบสุ่มสำหรับเพย์โหลดแต่ละรายการ
  • expirationYear: โดยจะตั้งค่า 5 ปีนับจากปีปัจจุบัน

โครงสร้างของเพย์โหลดที่ถอดรหัสแล้วจะแตกต่างกันระหว่างโปรโตคอล 2 เวอร์ชัน ได้แก่ ECv1 และ ECv2 หากคุณ ติดตั้งใช้งานการผสานรวมใหม่ เวอร์ชันจะเป็น ECv2 หากไม่แน่ใจเกี่ยวกับเวอร์ชันของโปรโตคอล โปรดยืนยันกับผู้ติดต่อของ Google

บัตรที่ไม่ได้ใช้โทเค็น

Visa

ตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร Visa ที่ไม่ได้ใช้โทเค็นมีดังนี้

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

ต่อไปนี้คือตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร Mastercard ที่ไม่ได้ใช้โทเค็น

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

ตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร Amex ที่ไม่ได้ใช้โทเค็นมีดังนี้

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

Discover

ตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร Discover ที่ไม่ได้ใช้โทเค็นมีดังนี้

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

ต่อไปนี้เป็นตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร JCB ที่ไม่ได้ใช้โทเค็น

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

บัตรที่ใช้โทเค็น

บัตรที่แปลงเป็นโทเค็นคือบัตรที่เพิ่มลงใน Google Wallet

เพย์โหลดที่ถอดรหัสแล้วของบัตรที่แปลงเป็นโทเค็นจะขึ้นอยู่กับประเภทบัตรที่เลือก ตัวอย่าง 3 รายการต่อไปนี้แสดงเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตรที่แปลงเป็นโทเค็นประเภทต่างๆ

Visa

ต่อไปนี้เป็นตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร Visa ที่ใช้โทเค็น

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

ตัวอย่างเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตร American Express ที่ใช้โทเค็นมีดังนี้

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

เครือข่ายอื่นๆ ทั้งหมด

ต่อไปนี้เป็นตัวอย่างของเพย์โหลดที่ถอดรหัสแล้วสำหรับบัตรที่ใช้โทเค็นสำหรับเครือข่ายอื่นๆ ทั้งหมด

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