อัปเดตเป็นเวอร์ชันล่าสุด

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