ข้อกำหนดของเครื่องจัดการการชำระเงินของ Google Pay

  • ชื่อแฮนเดิล: com.google.pay
  • เวอร์ชัน: 2026-01-11

1. บทนำ

com.google.payแฮนเดิลเลอร์ช่วยให้ธุรกิจเสนอ Google Pay เป็น ตัวเลือกการชำระเงินที่รวดเร็วผ่านแพลตฟอร์มที่รองรับ UCP ได้ Google Pay API ช่วยให้ชำระเงินได้อย่างรวดเร็วโดยให้สิทธิ์ผู้ใช้เข้าถึงวิธีการชำระเงินที่จัดเก็บไว้ใน บัญชี Google

แฮนเดิลนี้ช่วยให้รูปแบบการผสานรวมแบบไม่มีส่วนหัวซึ่งธุรกิจระบุ การกำหนดค่า Google Pay (เช่น เครือข่ายบัตรและพารามิเตอร์เกตเวย์ที่อนุญาต) และแพลตฟอร์มจัดการการโต้ตอบฝั่งไคลเอ็นต์กับ Google Pay API เพื่อสร้างโทเค็นการชำระเงินที่ปลอดภัย

1.1 ประโยชน์หลัก

  • การกำหนดค่าแบบสากล: ธุรกิจกำหนดค่า Google Pay เพียงครั้งเดียวโดยใช้ JSON มาตรฐาน ซึ่งจะช่วยให้แพลตฟอร์มที่ได้รับอนุญาตแสดงผลอินเทอร์เฟซการชำระเงิน ได้โดยไม่ต้องใช้โค้ดส่วนหน้าแบบกำหนดเอง
  • ส่วนหน้าแบบแยกส่วน: แพลตฟอร์มจะจัดการความซับซ้อนของการผสานรวม Google Pay JavaScript API หรือ SDK ในขณะที่ธุรกิจจะใช้โทเค็นที่ได้
  • การแปลงข้อมูลเป็นโทเค็นที่ปลอดภัย: ใช้ประโยชน์จากการแปลงข้อมูลเป็นโทเค็นในตัวของ Google เพื่อส่ง ข้อมูลเข้าสู่ระบบที่เข้ารหัสไปยังผู้ให้บริการชำระเงิน (PSP) ของธุรกิจโดยตรง

2. การผสานรวมธุรกิจ

2.1 ข้อกำหนด

ก่อนที่จะโฆษณา Google Pay ผ่าน UCP ธุรกิจต้องดำเนินการต่อไปนี้

  1. รับรหัสผู้ขาย Google Pay: ต้องใช้สำหรับการประมวลผลในสภาพแวดล้อม PRODUCTION (ลงทะเบียนใน Google Pay และ Wallet Console)
  2. ตรวจสอบการรองรับ PSP: ตรวจสอบว่าผู้ให้บริการชำระเงิน (PSP) ของคุณอยู่ใน รายชื่อโปรเซสเซอร์และเกตเวย์ที่รองรับ สำหรับการแปลงโทเค็น Google Pay

2.2 การกำหนดค่าแฮนเดิล

ธุรกิจต่างๆ โฆษณาการรองรับ Google Pay โดยใส่ตัวแฮนเดิลไว้ในอาร์เรย์ตัวแฮนเดิลการชำระเงิน การกำหนดค่าเป็นไปตามโครงสร้างที่จำเป็นต่อการเริ่มต้น Google Pay API อย่างเคร่งครัด

2.2.1 สคีมาการกำหนดค่า

ออบเจ็กต์การกำหนดค่าจะกำหนดสภาพแวดล้อม ข้อมูลระบุตัวตนของธุรกิจ และวิธีการชำระเงินที่อนุญาต

วิธีการชำระเงินผ่าน Google Pay

อิงตาม PaymentMethod ของ Google Pay

ข้อกำหนดการแปลงข้อมูลเป็นโทเค็น

อิงตาม TokenizationSpecification ของ Google Pay

2.2.2 ตัวอย่างการประกาศตัวแฮนเดิล

{
  "payment": {
    "handlers": [
      {
        "id": "8c9202bd-63cc-4241-8d24-d57ce69ea31c",
        "name": "com.google.pay",
        "version": "2026-01-11",
        "spec": "https://pay.google.com/gp/p/ucp/2026-01-11/",
        "config_schema": "https://pay.google.com/gp/p/ucp/2026-01-11/schemas/config.json",
        "instrument_schemas": [
          "https://pay.google.com/gp/p/ucp/2026-01-11/schemas/card_payment_instrument.json"
        ],
        "config": {
          "api_version": 2,
          "api_version_minor": 0,
          "environment": "TEST",
          "merchant_info": {
            "merchant_name": "Example Merchant",
            "merchant_id": "01234567890123456789",
            "merchant_origin": "checkout.merchant.com"
          },
          "allowed_payment_methods": [
            {
              "type": "CARD",
              "parameters": {
                "allowed_auth_methods": ["PAN_ONLY"],
                "allowed_card_networks": ["VISA", "MASTERCARD"]
              },
              "tokenization_specification": {
                "type": "PAYMENT_GATEWAY",
                "parameters": {
                  "gateway": "example",
                  "gatewayMerchantId": "exampleGatewayMerchantId"
                }
              }
            }
          ]
        }
      }
    ]
  }
}

2.3 เอนทิตี

2.3.1 สคีมาของเครื่องมือ

เครื่องมือ Google Pay (card_payment_instrument) ขยายเครื่องมือการชำระเงินด้วยบัตรพื้นฐาน โดยจะรับช่วงฟิลด์ Display มาตรฐาน (เช่น brand และ last_digits) เพื่อให้มั่นใจว่าการแสดงผลใบเสร็จจะสอดคล้องกัน ขณะเดียวกันก็ปรับแต่งฟิลด์ credential เพื่อส่งเพย์โหลดการแปลงโทเค็นของ Google Pay ที่เฉพาะเจาะจง

ลักษณะการทำงานของแพลตฟอร์ม: แพลตฟอร์มมีหน้าที่ในการแมปการตอบกลับจาก Google Pay PaymentMethodData ไปยังโครงสร้างนี้ก่อนที่จะส่งไปยังธุรกิจ

ชื่อ ประเภท ต้องระบุ คำอธิบาย
id สตริง มี ตัวระบุที่ไม่ซ้ำกันสำหรับเครื่องมือการชำระเงินนี้ ซึ่งแพลตฟอร์มเป็นผู้กำหนด
handler_id สตริง มี ตัวระบุสำหรับแฮนเดิลของ Google Pay
ประเภท สตริง มี ค่าคงที่ = card ระบุว่าเครื่องมือนี้ทำงานเหมือนบัตร (รับค่าฟิลด์การแสดงบัตร)
brand สตริง มี เครือข่ายบัตร (เช่น visa, mastercard) แมปจาก info.cardNetwork ของ Google Pay
last_digits สตริง มี หมายเลขบัตร 4 หลักสุดท้าย แมปจาก info.cardDetails ของ Google Pay
rich_text_description สตริง ไม่ คำอธิบายข้อความ Rich Text ของการ์ด (ไม่บังคับ) (เช่น Visa ที่มีเลขลงท้าย 1234 หมดอายุ 12/2025")
rich_card_art string (uri) ไม่ URI ที่ไม่บังคับไปยังรูปภาพริชมีเดียที่แสดงการ์ด (เช่น อาร์ตเวิร์กของการ์ดผู้ออกบัตร)
billing_address ที่อยู่ทางไปรษณีย์ ไม่ ที่อยู่สำหรับการเรียกเก็บเงินที่เชื่อมโยงกับบัตร
ข้อมูล เข้าสู่ระบบ เพย์โหลดของเอกสารรับรอง ไม่ ข้อมูลการแปลงโทเค็นที่ปลอดภัยซึ่ง Google Pay ส่งคืน

เพย์โหลดของข้อมูลเข้าสู่ระบบ

ออบเจ็กต์นี้ทำหน้าที่เป็น credential สำหรับเครื่องมือ ซึ่งจะเชื่อมโยงโดยตรงกับ ข้อมูลการแปลงข้อมูลเป็นโทเค็นของ Google Pay

ที่อยู่ทางไปรษณีย์

ออบเจ็กต์นี้ทำหน้าที่เป็นฟิลด์ address ซึ่งจะแมปกับ PostalAddress โดยตรง

3. การผสานรวมแพลตฟอร์ม

3.1 ข้อกำหนด

ก่อนจัดการการชำระเงินของ com.google.pay แพลตฟอร์มต้องดำเนินการต่อไปนี้

  1. สามารถโหลด Google Pay API สำหรับเว็บ (หรือเทียบเท่ากับ Android) ได้
  2. ปฏิบัติตามหลักเกณฑ์การใช้แบรนด์ Google Pay เมื่อแสดงปุ่มชำระเงิน

3.2 โปรโตคอลการชำระเงิน

แพลตฟอร์มต้องทำตามขั้นตอนต่อไปนี้เพื่อประมวลผลตัวแฮนเดิล

ขั้นตอนที่ 1: ค้นหาและกำหนดค่า

แพลตฟอร์มจะเริ่มต้นไคลเอ็นต์เพื่อจัดการวงจร API

ขั้นตอนที่ 2: ตรวจสอบความพร้อมในการชำระเงิน

แพลตฟอร์มจะตรวจสอบว่าผู้ใช้มีความสามารถในการชำระเงินด้วยวิธีการชำระเงินที่ระบุหรือไม่ก่อนที่จะแสดงปุ่ม

ขั้นตอนที่ 3: สร้างคำขอการชำระเงิน

แพลตฟอร์มจะรวบรวมออบเจ็กต์คำขอข้อมูลการชำระเงิน ซึ่งรวมถึงการกำหนดค่าผู้ขาย วิธีการชำระเงิน และรายละเอียดธุรกรรม (ราคาและสกุลเงิน)

ขั้นตอนที่ 4: เรียกใช้การโต้ตอบของผู้ใช้

แพลตฟอร์มจะทริกเกอร์การแสดงชีตการชำระเงินเมื่อผู้ใช้โต้ตอบกับ ปุ่มชำระเงิน

ขั้นตอนที่ 5: ชำระเงินให้เสร็จสมบูรณ์

เมื่อผู้ใช้โต้ตอบสำเร็จ Google Pay API จะแสดงออบเจ็กต์ PaymentInstrument ภายใต้คีย์ payment_data แพลตฟอร์มจะแมปการตอบกลับนี้ กับcard_payment_instrumentสคีมาและส่งคำขอการทำธุรกรรม ให้เสร็จสมบูรณ์

POST /checkout-sessions/{checkout_id}/complete

{
  "payment_data": {
    "id": "pm_1234567890abc",
    "handler_id": "8c9202bd-63cc-4241-8d24-d57ce69ea31c",
    "type": "card",
    "brand": "visa",
    "last_digits": "4242",
    "billing_address": {
      "street_address": "123 Main Street",
      "extended_address": "Suite 400",
      "address_locality": "Charleston",
      "address_region": "SC",
      "postal_code": "29401",
      "address_country": "US",
      "first_name": "Jane",
      "last_name": "Smith"
    },
    "credential": {
      "type": "PAYMENT_GATEWAY",
      "token": "{\"signature\":\"...\",\"protocolVersion\":\"ECv2\"...}"
    }
  },
  "risk_signals": {
      ...
  }
}

4. การประมวลผลทางธุรกิจ

เมื่อได้รับเครื่องมือการชำระเงินของ Google Pay ธุรกิจต้องดำเนินการต่อไปนี้

  1. ตรวจสอบแฮนเดิลเลอร์: ยืนยันว่า handler_id สอดคล้องกับแฮนเดิลเลอร์ของ Google Pay
  2. ดึงโทเค็น: ดึงสตริงโทเค็นจาก payment_data.credential.token
  3. ประมวลผลการชำระเงิน: ส่งสตริงโทเค็นและรายละเอียดธุรกรรมไปยัง ปลายทางของ PSP
    • หมายเหตุ: PSP ส่วนใหญ่มีช่องเฉพาะสำหรับ "เพย์โหลดของ Google Pay" หรือ "โทเค็นเครือข่าย"
  4. การตอบกลับการคืนสินค้า: ตอบกลับด้วยสถานะการชำระเงินที่เสร็จสมบูรณ์แล้ว (สำเร็จ/ไม่สำเร็จ)

5. ข้อควรพิจารณาด้านความปลอดภัย

5.1 ความปลอดภัยของโทเค็น

  • PAYMENT_GATEWAY: เมื่อใช้การสร้างโทเค็นประเภทนี้ ระบบจะเข้ารหัสโทเค็น สำหรับฝ่ายที่สร้างโทเค็นโดยเฉพาะ บุคคลที่ส่งผ่านข้อมูล จะถอดรหัสโทเค็นนี้ไม่ได้ และควรส่งผ่านโทเค็นไปยังบุคคลที่ทำโทเค็น ตามที่เป็น
  • โดยตรง: หากใช้การแปลงโทเค็น DIRECT ธุรกิจจะได้รับข้อมูลบัตรที่เข้ารหัส ซึ่งต้องถอดรหัส ซึ่งจะเพิ่มขอบเขตการปฏิบัติตามข้อกำหนด PCI DSS อย่างมาก และโดยทั่วไปเราไม่แนะนำให้ทำเช่นนี้ เว้นแต่ธุรกิจจะเป็น ผู้ให้บริการที่ปฏิบัติตามข้อกำหนด PCI ระดับ 1

5.2 การแยกสภาพแวดล้อม

  • โหมดทดสอบ: ในสภาพแวดล้อม TEST Google Pay จะแสดงโทเค็นจำลอง โดยจะไม่มีการเรียกเก็บเงิน
  • โหมดการใช้งานจริง: ใช้บัตรจริง ธุรกิจต้องตรวจสอบว่าข้อมูลเข้าสู่ระบบ PSP ใน config.allowed_payment_methods ตรงกับสภาพแวดล้อม