ฟีเจอร์การลงทะเบียนและลงชื่อเข้าใช้โปรแกรมสะสมคะแนนช่วยให้ผู้ใช้ค้นหาโปรแกรมสะสมคะแนนของคุณและเข้าร่วมหรือลงชื่อเข้าใช้บัญชีได้โดยตรงจาก Google Wallet ระบบจะนำผู้ใช้ไปยังเว็บไซต์ที่เหมาะกับอุปกรณ์เคลื่อนที่ของคุณเพื่อดำเนินการให้เสร็จสมบูรณ์ หลังจากนั้นผู้ใช้จะเพิ่มบัตรประจำตัวอย่างเป็นทางการลงใน Google Wallet ได้
การติดตั้งใช้งานฟีเจอร์นี้เป็นข้อกำหนดเบื้องต้นในการแปลงบัตรที่ผู้ใช้เพิ่ม "แบบคงที่" ให้เป็นบัตรที่ลิงก์กับ API "แบบไดนามิก" คู่มือนี้จะให้ภาพรวมของสิทธิประโยชน์และขั้นตอนการติดตั้งใช้งานที่จำเป็นในการเปิดใช้โปรแกรมสะสมคะแนนสำหรับการลงทะเบียน การลงชื่อเข้าใช้ และการอัปเกรดบัตร
ภาพรวม
หากต้องการเริ่มต้นใช้งาน โปรดตรวจสอบว่าคุณได้ตั้งค่าโปรเจ็กต์ไว้ก่อนหน้านี้และมีสิทธิ์เข้าถึง Google Wallet API
คุณต้องทำตาม 4 ขั้นตอนต่อไปนี้เพื่อใช้ฟีเจอร์นี้
- ตั้งค่าคลาสทดสอบ: กำหนดค่า Google Wallet เพื่อทดสอบโฟลว์
- พัฒนาหน้าเว็บ: สร้างหน้าลงทะเบียน/ลงชื่อเข้าใช้โดยใช้ Google Wallet
SharedDataType - ใช้การส่งกลับ: ส่งบัตรสะสมคะแนนไปยัง Google Wallet หลังจากดำเนินการ
- ขอรับการยืนยัน: ส่งเพื่อรับการตรวจสอบและขอเปิดใช้งานการอัปเกรด
เหตุผลในการติดตั้งใช้งานการลงทะเบียนโปรแกรมสะสมคะแนน
หากต้องการทำความเข้าใจคุณค่าของการผสานรวมนี้ คุณควรแยกความแตกต่าง ระหว่างบัตร 2 ประเภทที่มีอยู่ใน Google Wallet ได้แก่ L1 (ผู้ใช้เพิ่ม) และ L2 (พาร์ทเนอร์ออกให้)
ความแตกต่างระหว่าง L1 กับ L2
| ฟีเจอร์ | L1 Pass (ผู้ใช้เพิ่ม) | บัตร L2 (ออกโดยพาร์ทเนอร์) |
|---|---|---|
| ต้นทาง | สร้างขึ้นเมื่อผู้ใช้สแกนบัตรจริงด้วยตนเองหรือพิมพ์หมายเลข | สร้างและพุชโดยใช้ Wallet API หลังจากที่ผู้ใช้ลงชื่อสมัครใช้หรือลงชื่อเข้าใช้โดยใช้โฟลว์ของคุณ |
| ควบคุม | คงที่ พาร์ทเนอร์จะมองไม่เห็นบัตรนี้และควบคุมไม่ได้ | ไดนามิก พาร์ทเนอร์มีสิทธิ์ควบคุมอย่างเต็มที่โดยใช้ API |
| ฟังก์ชันการทำงาน | รูปภาพแบบคงที่ของบาร์โค้ด อัปเดตไม่ได้ | อัปเดตยอดคะแนน สถานะระดับ แสดงข้อเสนอที่ปรับเปลี่ยนในแบบของคุณ และรับการแจ้งเตือนได้ |
เส้นทางการอัปเกรด: "สะพาน" สู่โปรแกรมของคุณ
การสร้างโฟลว์การลงทะเบียนโปรแกรมสะสมคะแนน ("ปลายทาง") จะช่วยให้ Google สร้าง "สะพาน" ที่อัปเกรดผู้ใช้จากบัตร L1 แบบคงที่ไปเป็นบัตร L2 อย่างเป็นทางการ ของคุณได้ ทริกเกอร์การอัปเกรดหลักๆ มี 2 อย่าง ดังนี้
- การอัปเกรดบัตรจาก L1 เป็น L2: หากผู้ใช้เคยเพิ่มบัตรของคุณด้วยตนเอง (L1) Google Wallet จะแจ้งให้ผู้ใช้ไปที่ขั้นตอนการลงชื่อเข้าใช้ใหม่เพื่ออัปเกรดเป็นบัตรแบบไดนามิกอย่างเป็นทางการ (L2)
- การอัปเกรดบัตรที่นำเข้าจาก 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 หน้าที่อนุญาตให้ผู้ใช้ ดำเนินการต่อไปนี้ให้เสร็จสมบูรณ์
- URL สำหรับลงชื่อเข้าใช้ที่ผู้ใช้สามารถลงชื่อเข้าใช้บัญชีที่มีอยู่ได้
- 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: ขอรับการยืนยันและเปิดใช้งาน
หลังจากทำงานด้านการพัฒนาเสร็จสมบูรณ์และทดสอบขั้นตอนการลงทะเบียน/ลงชื่อเข้าใช้แล้ว คุณต้องส่งคำขอรับการตรวจสอบการติดตั้งใช้งานและเปิดใช้งานอย่างเต็มรูปแบบ
- ไปที่ Google Pay and Wallet Console
- ใช้วิดเจ็ตติดต่อทีมสนับสนุน
- แจ้งทีมสนับสนุนว่าคุณได้ผสานรวมการลงทะเบียนโปรแกรมสะสมคะแนนเรียบร้อยแล้ว
หลังจากตรวจสอบการติดตั้งใช้งานของคุณอย่างละเอียดแล้ว และยืนยันว่าฟังก์ชันการทำงานร่วมกับแอป 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