การลิงก์ข้อมูลประจำตัว - OAuth 2.0

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

โปรดปรึกษาทีมกฎหมายหากมีคำถามเกี่ยวกับกฎระเบียบด้านความเป็นส่วนตัว และแนวทางปฏิบัติในการขอความยินยอม

ข้อกำหนดหลัก

  • โปรโตคอล: ใช้ขั้นตอนรหัสการให้สิทธิ์ OAuth 2.0 (RFC 6749 2.3.1)
  • การตรวจสอบสิทธิ์ไคลเอ็นต์: ต้องรองรับการตรวจสอบสิทธิ์พื้นฐาน HTTP (client_secret_basic) ที่ปลายทางโทเค็น
  • ขอบเขต: คุณต้องรองรับขอบเขต UCP มาตรฐานที่กำหนดไว้ในส่วนนี้
  • การค้นหา: คุณต้องโฮสต์ไฟล์ข้อมูลเมตาที่ /.well-known/oauth-authorization-server (RFC 8414) เพื่อให้แพลตฟอร์มค้นหาปลายทางของคุณได้

ขอบเขต

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

  • ชื่อขอบเขต: ucp:scopes:checkout_session

ประสบการณ์ของผู้ใช้: คุณควรแสดงขอบเขตที่ขอเป็นหน้าจอคำยินยอมแบบรวมรายการเดียว (เช่น "อนุญาตให้ Google จัดการเซสชันการชำระเงิน") แทนที่จะเป็นการเปิด/ปิดทางเทคนิคแบบละเอียด

การลิงก์ที่มีประสิทธิภาพยิ่งขึ้นของ Google

การลิงก์ที่ปรับปรุงแล้วของ Google เป็นส่วนเสริมที่ไม่บังคับสำหรับ OAuth 2.0 มาตรฐาน โดยจะ ใช้ประโยชน์จากการยืนยัน JWT เพื่อรวมการตรวจสอบความตั้งใจและการแลกเปลี่ยนโทเค็นใน ปลายทางของโทเค็น OAuth 2.0 (ความตั้งใจ check, create, get)

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

ข้อมูลเมตาของเซิร์ฟเวอร์การให้สิทธิ์ (ตัวอย่าง JSON)

คุณต้องเผยแพร่ออบเจ็กต์ JSON นี้ที่ https://[your-domain]/.well-known/oauth-authorization-server

ตัวอย่าง

{
  "issuer": "https://merchant.example.com",
  "authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
  "token_endpoint": "https://merchant.example.com/oauth2/token",
  "revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
  "scopes_supported": [
    "ucp:scopes:checkout_session"
  ],
  "response_types_supported": [
    "code"
  ],
  "grant_types_supported": [
    "authorization_code",
    "refresh_token"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic"
  ],
  "service_documentation": "https://merchant.example.com/docs/oauth2"
}