การลงทะเบียนโปรแกรมสะสมคะแนนสำหรับผู้ใช้และการอัปเกรดบัตร

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

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

ภาพรวม

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

คุณต้องทำตาม 4 ขั้นตอนต่อไปนี้เพื่อใช้ฟีเจอร์นี้

  1. ตั้งค่าคลาสทดสอบ: กำหนดค่า Google Wallet เพื่อทดสอบโฟลว์
  2. พัฒนาหน้าเว็บ: สร้างหน้าลงทะเบียน/ลงชื่อเข้าใช้โดยใช้ Google Wallet SharedDataType
  3. ใช้การส่งกลับ: ส่งบัตรสะสมคะแนนไปยัง Google Wallet หลังจากดำเนินการ
  4. ขอรับการยืนยัน: ส่งเพื่อรับการตรวจสอบและขอเปิดใช้งานการอัปเกรด

เหตุผลในการติดตั้งใช้งานการลงทะเบียนโปรแกรมสะสมคะแนน

หากต้องการทำความเข้าใจคุณค่าของการผสานรวมนี้ คุณควรแยกความแตกต่าง ระหว่างบัตร 2 ประเภทที่มีอยู่ใน Google Wallet ได้แก่ L1 (ผู้ใช้เพิ่ม) และ L2 (พาร์ทเนอร์ออกให้)

ความแตกต่างระหว่าง L1 กับ L2

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

เส้นทางการอัปเกรด: "สะพาน" สู่โปรแกรมของคุณ

การสร้างโฟลว์การลงทะเบียนโปรแกรมสะสมคะแนน ("ปลายทาง") จะช่วยให้ Google สร้าง "สะพาน" ที่อัปเกรดผู้ใช้จากบัตร L1 แบบคงที่ไปเป็นบัตร L2 อย่างเป็นทางการ ของคุณได้ ทริกเกอร์การอัปเกรดหลักๆ มี 2 อย่าง ดังนี้

  1. การอัปเกรดบัตรจาก L1 เป็น L2: หากผู้ใช้เคยเพิ่มบัตรของคุณด้วยตนเอง (L1) Google Wallet จะแจ้งให้ผู้ใช้ไปที่ขั้นตอนการลงชื่อเข้าใช้ใหม่เพื่ออัปเกรดเป็นบัตรแบบไดนามิกอย่างเป็นทางการ (L2)
  2. การอัปเกรดบัตรที่นำเข้าจาก Gmail: หาก Google Wallet ตรวจพบบัตรสะสมคะแนนที่ใช้ Gmail ของผู้ใช้ ระบบจะแจ้งให้ผู้ใช้ไปที่ขั้นตอนการสมัครและตรวจสอบสิทธิ์เพื่อรับบัตร L2 อย่างเป็นทางการ

ขั้นตอนที่ 1: ตั้งค่าบัตรทดสอบใน Google Wallet

กำหนด URL การลงทะเบียนและการลงชื่อเข้าใช้ โลโก้โปรแกรม และฟิลด์ผู้ใช้ที่เลือก จากนั้นใช้discoverableProgramฟิลด์ที่ซ้อนกันใน loyaltyclass เพื่อตั้งค่าที่เหมาะสม

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

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

ขั้นตอนที่ 2: พัฒนาหน้าการลงทะเบียนและหน้าลงชื่อเข้าใช้

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

คุณต้องระบุหน้าเว็บใดหน้าเว็บหนึ่งหรือทั้ง 2 หน้าที่อนุญาตให้ผู้ใช้ ดำเนินการต่อไปนี้ให้เสร็จสมบูรณ์

  1. URL สำหรับลงชื่อเข้าใช้ที่ผู้ใช้สามารถลงชื่อเข้าใช้บัญชีที่มีอยู่ได้
  2. URL การลงทะเบียนที่ผู้ใช้สามารถสร้างบัญชีใหม่ได้

หน้าลงชื่อเข้าใช้และหน้าลงทะเบียนต้องเป็นไปตามข้อกำหนดต่อไปนี้

  • มอบประสบการณ์การใช้งานที่เป็นมิตรกับอุปกรณ์เคลื่อนที่
  • ลดจำนวนช่องที่ต้องกรอกในกระบวนการลงทะเบียน
  • อนุญาตให้ผู้ใช้ลงชื่อเข้าใช้หรือลงทะเบียนให้เสร็จสมบูรณ์ภายในหน้าเดียว
  • ใช้HTTPSการเข้ารหัสที่มีใบรับรองที่ถูกต้องเพื่อให้มั่นใจว่าข้อมูลผู้ใช้จะได้รับการส่งอย่างปลอดภัย
  • ตรวจสอบว่าหน้าลงชื่อเข้าใช้และการลงทะเบียนมีความพร้อมในการทำงานอย่างน้อย 99.9%

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

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

เมื่อแสดงหน้าลงชื่อเข้าใช้หรือลงทะเบียน Google Wallet จะสร้าง Android WebView และPOSTส่งคำขอไปยัง URL ที่คุณระบุ ข้อมูลผู้ใช้จะ ระบุไว้ในพารามิเตอร์ SharedDataType ซึ่งรวมอยู่ในคำขอ POST ที่มี Content-Type เป็น application/x-www-form-urlencoded และการเข้ารหัส UTF-8 ค่าของพารามิเตอร์ SharedDataType คือออบเจ็กต์ JSON ที่เข้ารหัส Base64

ออบเจ็กต์ JSON อาจมีช่องต่อไปนี้ ทั้งนี้ขึ้นอยู่กับการดำเนินการที่ผู้ใช้เลือกและช่องที่คุณระบุเพื่อขอจากผู้ใช้

ช่อง การลงทะเบียน
อีเมล
firstName
lastName
addressLine [1-3]
city
รัฐ
รหัสไปรษณีย์
country
โทรศัพท์

ดูตัวอย่างออบเจ็กต์ JSON ที่ถอดรหัสแล้วซึ่งอยู่ใน SharedDataType

ทรัพยากร

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

ขั้นตอนที่ 3: ใช้การส่งกลับไปยัง Google Wallet ทันที

เมื่อได้รับการตรวจสอบสิทธิ์ (ลงชื่อเข้าใช้) หรือหลังจากสร้างบัญชี (ลงทะเบียน) แล้ว หน้าเว็บควรส่งบัตรสะสมคะแนนของผู้ใช้กลับไปยัง Google Wallet ทันที

คุณสามารถส่งบัตรสะสมคะแนนกลับไปที่ Google Wallet ได้โดยเปลี่ยนเส้นทางไปยังลิงก์ที่มีโครงสร้างดังนี้

https://pay.google.com/gp/v/save/{jwt_generated}

ความยาวที่ปลอดภัยสำหรับ URL คือ 2,000 อักขระ ลิงก์ของคุณไม่ควรเกินขีดจำกัดนี้ ออบเจ็กต์ที่เข้ารหัสใน JWT ควรมีขนาดเล็กและมีเฉพาะข้อมูลที่เจาะจงสำหรับผู้ใช้เท่านั้น พยายามเก็บข้อมูลส่วนใหญ่ไว้ในคลาสของออบเจ็กต์ โดยสร้างคลาสก่อนสร้าง JWT สำหรับออบเจ็กต์ขนาดใหญ่ที่เกินขีดจำกัด ให้ลองสร้างออบเจ็กต์ใน Google Wallet API ก่อน แล้วส่งเฉพาะรหัสออบเจ็กต์ใน JWT

ขั้นตอนการสื่อสารโดยทั่วไป

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

ขั้นตอนการลงชื่อเข้าใช้การลงทะเบียน

ขั้นตอนที่ 4: ขอรับการยืนยันและเปิดใช้งาน

หลังจากทำงานด้านการพัฒนาเสร็จสมบูรณ์และทดสอบขั้นตอนการลงทะเบียน/ลงชื่อเข้าใช้แล้ว คุณต้องส่งคำขอรับการตรวจสอบการติดตั้งใช้งานและเปิดใช้งานอย่างเต็มรูปแบบ

  1. ไปที่ Google Pay and Wallet Console
  2. ใช้วิดเจ็ตติดต่อทีมสนับสนุน
  3. แจ้งทีมสนับสนุนว่าคุณได้ผสานรวมการลงทะเบียนโปรแกรมสะสมคะแนนเรียบร้อยแล้ว

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

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

คำถามที่พบบ่อย

  • รูปภาพที่ใช้ในโปรแกรมสะสมคะแนนของฉันมีข้อกำหนดไหม ใช่ คุณควรโฮสต์รูปภาพในHTTPS เนื่องจากรูปภาพจะไม่ปรากฏใน Google Wallet หากไม่ได้โฮสต์

  • มีเครื่องมือใดบ้างที่ช่วยลดความซับซ้อนในการติดตั้งใช้งานและการแก้ไขข้อบกพร่องของ JWT ได้ แพลตฟอร์มอย่าง www.jwt.io ช่วยให้คุณถอดรหัสและแก้ไขข้อบกพร่องของโทเค็นได้ในระหว่างกระบวนการพัฒนา ซึ่งจะช่วยให้คุณยืนยันเนื้อหาที่ส่งได้ โปรดทราบว่า Google ไม่มีส่วนเกี่ยวข้องและไม่ได้แนะนำบุคคลที่สามรายใดรายหนึ่งโดยเฉพาะ

  • เราจะจัดการข้อมูล SharedDataType ที่เข้ารหัส Base64 อย่างถูกต้องได้อย่างไร ตรวจสอบว่าคุณใช้การเข้ารหัส UTF-8 ตลอดกระบวนการ สตริง JSON จะได้รับการเข้ารหัส UTF-8 ก่อน จากนั้นจึงเข้ารหัสโดยใช้ android.util.Base64 ด้วยตัวเลือก NO_WRAP และ URL_SAFE ซึ่งสอดคล้องกับส่วนที่ 4 ของ RFC 3548