Google Pay API ได้เปิดตัวโครงสร้างออบเจ็กต์ใหม่สำหรับ
PaymentDataRequest และ
IsReadyToPayRequest ออบเจ็กต์ในเดือนกรกฎาคม 2018 คู่มือนี้อธิบายวิธีอัปเดต
ออบเจ็กต์ที่จัดรูปแบบสำหรับ Google Pay API เวอร์ชัน 1 เป็นออบเจ็กต์ที่จัดรูปแบบสำหรับเวอร์ชัน 2
วิธีการชำระเงิน
ระบบจะระบุเวอร์ชัน API พร้อมกับออบเจ็กต์คำขอแต่ละรายการใน Google Pay API เวอร์ชัน 2
Google Pay API เวอร์ชัน 1 รองรับบัตรเป็นรูปแบบการชำระเงินเพียงรูปแบบเดียว วิธีการชำระเงิน
CARD
เป็นหนึ่งในตัวเลือกวิธีการชำระเงินที่เป็นไปได้หลายรายการใน Google Pay API เวอร์ชัน 2 เว็บไซต์ที่
ระบุค่า allowedPaymentMethods เป็น CARD ก่อนหน้านี้จะต้องตั้งค่า
allowedAuthMethods เป็น PAN_ONLY เว็บไซต์ที่ระบุ
ค่า allowedPaymentMethods เป็น TOKENIZED_CARD ก่อนหน้านี้จะต้องตั้งค่า
allowedAuthMethods เป็น CRYPTOGRAM_3DS
ระบบจะระบุเครือข่ายบัตรที่อนุญาตพร้อมกับวิธีการตรวจสอบสิทธิ์ที่รองรับสำหรับบัตรในเครือข่ายเหล่านั้น
apiVersion 1
{ allowedPaymentMethods: [ 'CARD', 'TOKENIZED_CARD' ], cardRequirements: { allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [{ type: 'CARD', parameters: { allowedAuthMethods: [ 'PAN_ONLY', 'CRYPTOGRAM_3DS' ], allowedCardNetworks: [ 'AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA' ] } }] }
เครือข่ายบัตรที่อนุญาตและวิธีการตรวจสอบสิทธิ์ของเครือข่ายจะรวมอยู่ใน
IsReadyToPayRequest สำหรับ CARD
วิธีการชำระเงิน
การสร้างโทเค็นข้อมูลการชำระเงินด้วยบัตร
Google Pay API จะแสดงผลข้อมูลบัตรที่เข้ารหัสซึ่งเกตเวย์ที่ระบุอ้างอิงหรือ
ถอดรหัสในเซิร์ฟเวอร์ของคุณ Google Pay API เวอร์ชัน 2 จะย้าย
การสร้างโทเค็นวิธีการชำระเงิน
ไปไว้ในวิธีการชำระเงิน CARD
apiVersion 1
{ paymentMethodTokenizationParameters: { tokenizationType: 'PAYMENT_GATEWAY', parameters: { ';gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', tokenizationSpecification: { type: 'PAYMENT_GATEWAY', parameters: { 9;gateway': 'example', 'gatewayMerchantId': 'exampleMerchantId' } } }] }
รหัสผู้ขาย Google
รหัสผู้ขาย Google เป็นพร็อพเพอร์ตี้ระดับบนสุดใน Google Pay API เวอร์ชัน 1 ปัจจุบัน รหัสผู้ขาย Google จะอยู่ในออบเจ็กต์ MerchantInfo พร้อมชื่อผู้ขายที่ไม่บังคับ
apiVersion 1
{ merchantId: '12345678901234567890' }
apiVersion 2
{ merchantInfo: { merchantId: '12345678901234567890' } }
ที่อยู่สำหรับการเรียกเก็บเงิน
ที่อยู่สำหรับการเรียกเก็บเงินและหมายเลขโทรศัพท์สำหรับการเรียกเก็บเงินที่ไม่บังคับจะเชื่อมโยงกับวิธีการชำระเงิน CARD
หากเว็บไซต์ขอที่อยู่สำหรับการเรียกเก็บเงิน การกำหนดค่าที่เกี่ยวข้องกับการตอบกลับที่คาดไว้จะอยู่ในออบเจ็กต์
BillingAddressParameters
apiVersion 1
{ cardRequirements: { billingAddressRequired: true, billingAddressFormat: 'FULL' }, phoneNumberRequired: true }
apiVersion 2
{ allowedPaymentMethods: [{ type: 'CARD', parameters: { billingAddressRequired: true, billingAddressParameters: { format: 'FULL', phoneNumberRequired: true } } }] }
ที่อยู่สำหรับจัดส่ง
ข้อกำหนดที่อยู่สำหรับจัดส่งที่ไม่บังคับจะยังคงอยู่ที่ระดับบนสุดของ
PaymentDataRequest ออบเจ็กต์
เราได้เปลี่ยนชื่อพร็อพเพอร์ตี้ shippingAddressRequirements เป็น
shippingAddressParameters
การตอบกลับของ Google Pay API เวอร์ชันก่อนหน้าอาจแสดงผลหมายเลขโทรศัพท์เป็นส่วนหนึ่งของที่อยู่สำหรับจัดส่ง เมื่อมีการขอหมายเลขโทรศัพท์ Google Pay API ไม่รองรับหมายเลขโทรศัพท์สำหรับจัดส่งในทุกเวอร์ชันอีกต่อไป คุณต้องอัปเดตตัวจัดการการตอบกลับที่คาดหวังหมายเลขโทรศัพท์สำหรับจัดส่ง
apiVersion 1
{ shippingAddressRequired: true, shippingAddressRequirements: { allowedCountryCodes: [ 'US', 'CA' ] } }
apiVersion 2
{ shippingAddressRequired: true, shippingAddressParameters: { allowedCountryCodes: [ 'US', 'CA' ] } }
การตอบกลับ PaymentData
การตอบกลับออบเจ็กต์ PaymentData
สำหรับเว็บไซต์ที่ตั้งค่าพร็อพเพอร์ตี้ apiVersion เป็น 2 ใน PaymentDataRequest
ได้เปลี่ยนไปอ้างอิงบัตรเป็นการตอบกลับข้อมูลการชำระเงินที่เป็นไปได้หลายรายการ
พร็อพเพอร์ตี้ apiVersion และ apiVersionMinor ที่รวมอยู่ในออบเจ็กต์ PaymentDataRequest จะปรากฏในการตอบกลับ PaymentData เพื่อระบุรูปแบบที่คาดไว้
apiVersion 1
{ // no version specified }
apiVersion 2
{ apiVersion: 2, apiVersionMinor: 0 }
ข้อมูลเกี่ยวกับวิธีการชำระเงินที่เลือกและการสร้างโทเค็นจะอยู่ใน
paymentMethodData พร็อพเพอร์ตี้
เราได้นำพร็อพเพอร์ตี้ 2 รายการออกจากออบเจ็กต์ cardInfo ของวิธีการชำระเงินด้วยบัตร ได้แก่
cardClass และ cardImageUri
apiVersion 1
{ cardInfo: { cardDescription: 'Visa •••• 1234', cardNetwork: 'VISA', cardDetails: 1234 }, paymentMethodToken: { tokenizationType: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } }
apiVersion 2
{ paymentMethodData: { type: 'CARD', description: 'Visa •••• 1234', info: { cardNetwork: 'VISA', cardDetails: '1234' }, tokenizationData: { type: 'PAYMENT_GATEWAY', token: 'examplePaymentMethodToken' } } }
การตอบกลับข้อความที่เข้ารหัส
เว็บไซต์ที่ระบุประเภทการสร้างโทเค็นวิธีการชำระเงินเป็น DIRECT และยอมรับวิธีการชำระเงิน TOKENIZED_CARD ของ API เวอร์ชัน 1 ต้องอัปเดตวิธีจัดการพร็อพเพอร์ตี้ encryptedMessage ที่ถอดรหัสแล้ว เว็บไซต์ต้องดำเนินการนี้เพื่อส่งต่อ โทเค็นอุปกรณ์ Android ที่ตรวจสอบสิทธิ์ด้วย Cryptogram 3-D Secure และตัวบ่งชี้การพาณิชย์อิเล็กทรอนิกส์ (ECI) ที่ไม่บังคับไปยังเกตเวย์หรือโปรแกรมประมวลผลต่อไป บัตรเป็น paymentMethod ของ
CARD โดยมีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการตรวจสอบสิทธิ์ของบัตรที่เลือกใน
paymentMethodDetails.authMethod
apiVersion 1
{ "paymentMethod": "TOKENIZED_CARD", "paymentMethodDetails": { "authMethod": "3DS", "dpan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "3dsCryptogram": "AAAAAA...", "3dsEciIndicator": "eci indicator" } }
apiVersion 2
{ "paymentMethod": "CARD", "paymentMethodDetails": { "authMethod": "CRYPTOGRAM_3DS", "pan": "1111222233334444", "expirationMonth": 10, "expirationYear": 2020, "cryptogram": "AAAAAA...", "eciIndicator": "eci indicator" } }