การสื่อสารระหว่างเครื่องชำระเงินกับแอป Google Wallet
เทอร์มินัลจะระบุตัวเองด้วยรหัสผู้เรียกเก็บเงินที่แมปกับรหัสผู้ออกการแลกสิทธิ์ เมื่อเกิดการแตะอัจฉริยะขึ้น เทอร์มินัลจะส่งรหัสผู้เรียกเก็บเงินไปยังอุปกรณ์ของผู้ใช้ จากนั้นแอป Google Wallet จะตรวจสอบรหัสคลาสและรหัสผู้เรียกเก็บเงินของบัตรแต่ละใบที่จัดเก็บไว้ เมื่อพบการจับคู่ที่ตรงกันอย่างน้อย 1 รายการ แอป Google Wallet จะส่งบัตรที่ตรงกันไปยังเทอร์มินัล โปรดดูรายละเอียดการตั้งค่าในการกำหนดค่าผู้ขาย
ตัวอย่างที่ 1: ผู้ออกการแลกสิทธิ์ 1 ราย
ในแผนภาพก่อนหน้า มีผู้ออก 2 รายที่แตกต่างกัน
- ผู้ออก
2018
เป็นนักพัฒนาแอป (หรือเรียกอีกอย่างว่าผู้รวบรวมข้อมูล) - ผู้ออก
1990
เป็นผู้ขาย, fooPizza (หรือที่เรียกว่าผู้ออกการแลกสิทธิ์)
fooPizza ผู้ออกการแลกสิทธิ์ ต้องการเปิดใช้ฟังก์ชันการแตะอัจฉริยะสำหรับบัตร (จัดการโดยผู้รวบรวมข้อมูล) ผู้ออกผู้รวบรวมข้อมูลและการแลกสิทธิ์ต้องทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การแตะอัจฉริยะสำหรับเทอร์มินัลของผู้ขาย
ขั้นตอน | บทบาท | คำอธิบาย |
---|---|---|
1 | ผู้รวบรวมข้อมูล | สร้างคลาสและออบเจ็กต์ของบัตรผ่าน (ในแผนภาพ abc และ 123 ตามลำดับ) |
2 | ผู้รวบรวมข้อมูล | ใส่รหัสผู้ออกการแลกสิทธิ์ในพร็อพเพอร์ตี้ redemptionIssuers ของคลาสบัตร ซึ่งจะเป็นการแจ้งให้ Google Wallet ทราบว่ารหัสผู้ออกบัตร 1990 ได้รับอนุญาตให้แลกสิทธิ์ออบเจ็กต์บัตรที่อ้างอิงถึงคลาสนี้ได้ |
3 | การแลกสิทธิ์ ผู้ออกบัตร | รับรหัสผู้เรียกเก็บเงิน (ในแผนภาพ 12345678 )
|
4 | การแลกสิทธิ์ ผู้ออกบัตร | ตั้งค่ารหัสผู้เรียกเก็บเงิน 12345678 บนเครื่องชำระเงินที่รองรับการแตะอัจฉริยะแต่ละรายการที่จะใช้ ระบบจะส่งออบเจ็กต์ที่มีรหัสคลาส abc และรหัสผู้เรียกเก็บเงิน 12345678 ไปยังผู้อ่าน |
ตัวอย่างที่ 2: ผู้ออกการแลกสิทธิ์หลายราย
คลาสบัตรผ่านรายการเดียวจะมีผู้ออกการแลกสิทธิ์ได้หลายราย หากต้องการแลกคลาสของบัตรที่เจาะจง รหัสของผู้ออกการแลกสิทธิ์ต้องรวมอยู่ในพร็อพเพอร์ตี้ redemptionIssuers
ของชั้นเรียน จากนั้น ผู้ออกการแลกสิทธิ์แต่ละรายจะมีรหัสผู้เรียกเก็บเงินของตัวเอง ซึ่งกำหนดค่าไว้บนเทอร์มินัลที่รองรับการแตะอัจฉริยะ
ในแผนภาพก่อนหน้า มีผู้ออก 3 ราย ได้แก่
- ผู้ออก
8088
เป็นนักพัฒนาแอป (ผู้รวบรวมข้อมูล) - ผู้ออก
1990
เป็นผู้ขาย, fooPizza (ผู้ออกการแลกสิทธิ์) - ผู้ออก
2018
เป็นผู้ขาย, yumPie (ผู้ออกการแลกสิทธิ์)
ผู้ออกผู้รวบรวมข้อมูลและการแลกสิทธิ์ต้องทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การแตะอัจฉริยะสำหรับเครื่องชำระเงินของผู้ขาย
ขั้นตอน | บทบาท | คำอธิบาย |
---|---|---|
1 | ผู้รวบรวมข้อมูล | สร้างคลาสและออบเจ็กต์ของบัตรผ่าน (ในแผนภาพ abc และ 123 ตามลำดับ) |
2 | ผู้รวบรวมข้อมูล | ใส่รหัสผู้ออกการแลกสิทธิ์ในพร็อพเพอร์ตี้ redemptionIssuers ของคลาสบัตร ซึ่งเป็นการแจ้งให้ Google Wallet ทราบว่ารหัสผู้ออกบัตร 1990 และ 2018 ได้รับอนุญาตให้แลกสิทธิ์ออบเจ็กต์บัตรที่อ้างอิงถึงคลาสนี้ |
3 | ผู้ออกการแลกสิทธิ์ | รับรหัสผู้สะสม (ในแผนภาพ 12345678 สำหรับ fooPizza และ 18802001 สำหรับ yumPie) |
4 | ผู้ออกการแลกสิทธิ์ | กำหนดรหัสผู้เรียกเก็บเงินที่สอดคล้องกันบนเทอร์มินัลที่รองรับการแตะอัจฉริยะ
แต่ละรายการที่จะนำมาใช้ ระบบจะส่งออบเจ็กต์ที่มีรหัสคลาส abc และรหัสผู้เรียกเก็บเงินที่ตรงกันไปยังผู้อ่าน |
ตัวอย่างที่ 3: ไม่มีผู้รวบรวมข้อมูล
โดยสามารถพัฒนาและออกบัตรโดยสารภายในบัญชีผู้ออกบัตรเดียวกันได้ ในกรณีนี้ ไม่มีผู้รวบรวมข้อมูลที่จัดการคลาสบัตรสำหรับผู้ออกการแลกสิทธิ์หลายราย นักพัฒนาซอฟต์แวร์บัตรต้องใส่รหัสผู้ออกบัตรในพร็อพเพอร์ตี้ redemptionIssuers
ของชั้นเรียนดังกล่าวเพื่อให้แลกสิทธิ์คลาสบัตรหนึ่งๆ ได้
จากนั้น ผู้พัฒนาบัตรจะต้องขอรับรหัสผู้เรียกเก็บเงินและกำหนดค่าบนเครื่องชำระเงินที่รองรับการแตะอัจฉริยะ
นักพัฒนาแอปจะต้องทำตามขั้นตอนต่อไปนี้เพื่อเปิดใช้การแตะอัจฉริยะสำหรับเครื่องชำระเงินของผู้ขาย
ขั้นตอน | บทบาท | คำอธิบาย |
---|---|---|
1 | ผ่าน นักพัฒนาซอฟต์แวร์ | สร้างคลาสและออบเจ็กต์ของบัตรผ่าน (ในแผนภาพ abc และ 123 ตามลำดับ) |
2 | ผ่าน นักพัฒนาซอฟต์แวร์ | ใส่รหัสผู้ออกบัตรในพร็อพเพอร์ตี้ redemptionIssuers ของคลาสบัตร ซึ่งจะเป็นการบอก Google Wallet ว่ารหัสผู้ออก 2018 ได้รับอนุญาตให้แลกสิทธิ์ออบเจ็กต์บัตรที่อ้างอิงคลาสนี้ได้ |
3 | ผ่าน นักพัฒนาซอฟต์แวร์ | รับรหัสผู้เรียกเก็บเงิน (ในแผนภาพ 12345678 )
|
4 | ผ่าน นักพัฒนาซอฟต์แวร์ | กำหนดรหัสผู้เรียกเก็บเงินที่สอดคล้องกันบนเทอร์มินัลที่รองรับการแตะอัจฉริยะ
แต่ละรายการที่จะนำมาใช้ ระบบจะส่งออบเจ็กต์ที่มีรหัสคลาส abc และรหัสผู้เรียกเก็บเงินที่ตรงกันไปยังผู้อ่าน |
ประสบการณ์และพฤติกรรมของผู้ใช้
ลักษณะการทำงานของสิ่งที่รับส่งระหว่างเครื่องชำระเงินและแอป Google Wallet ขึ้นอยู่กับผู้ใช้และวิธีโต้ตอบกับแอป Google Wallet ในขณะนั้น
สถานการณ์ที่ 1: ผู้ใช้เปิดบัตรที่ต้องการ
ขั้นตอน | บทบาท | คำอธิบาย |
---|---|---|
1 | ผู้ใช้ | เลือกบัตรที่ต้องการในแอป Google Wallet |
2 | ผู้ใช้ | แตะเทอร์มินัลที่เปิดใช้การแตะอัจฉริยะ |
3 | เทอร์มินัล | (รหัสผู้เรียกเก็บเงินที่ตรงกัน) ระบบจะส่งบัตรไปยังเทอร์มินัล (รหัสผู้เรียกเก็บเงินไม่ตรงกัน) ระบบจะไม่ส่งบัตรไปยังเครื่องชำระเงิน |
สถานการณ์ที่ 2: แท็บหน้าแรกของ Google Wallet หรือมุมมองหน้าจอที่ปลดล็อกแล้ว
ขั้นตอน | บทบาท | คำอธิบาย |
---|---|---|
1 | ผู้ใช้ | เปิดแท็บหน้าแรกในแอป Google Wallet หรือปลดล็อก หน้าจอของอุปกรณ์ |
2 | ผู้ใช้ | แตะเทอร์มินัลที่เปิดใช้การแตะอัจฉริยะ |
3 | เทอร์มินัล | (การจับคู่รหัสผู้เรียกเก็บเงินที่ถูกต้องรายการเดียว) ระบบจะส่งบัตรไปยังเครื่องชำระเงิน
(รหัสผู้เรียกเก็บเงินที่ตรงกันหลายรหัส) แสดงภาพสไลด์บัตรที่ถูกต้อง และส่งบัตรที่ผู้ใช้เลือก |
โปรดทราบว่าความถูกต้องของบัตรขึ้นอยู่กับการกำหนดค่าเฉพาะของออบเจ็กต์บัตร โปรดตรวจสอบพร็อพเพอร์ตี้ออบเจ็กต์บัตรต่อไปนี้
state
validTimeInterval
ตัวอย่างคอลเล็กชันการแตะอัจฉริยะ
ตารางต่อไปนี้อธิบายผู้ออกบัตรและบัตรที่จะใช้ในตัวอย่างนี้
ชื่อผู้ขาย | ILuvCoffee | กาแฟ | มอคคา-อาร์-ยู |
---|---|---|---|
รหัสผู้ออกบัตร | 123 |
456 |
789 |
รหัสผู้สะสม | 11111111 |
44444444 |
77777777 |
ระดับในโปรแกรมสะสมคะแนน | R พื้นฐาน | รางวัลของฉัน | |
อาร์โกลด์ |
ILuvCoffee มีโปรแกรมสะสมคะแนน 2 ระดับ ได้แก่ R-Basic และ R-Gold ในขณะเดียวกัน Coffee-Foo มีโปรแกรมสะสมคะแนนที่มีเพียงระดับเดียว นั่นคือ My Rewards และ Mocha-R-Us ไม่มีโปรแกรมสะสมคะแนน
ในฐานะที่เป็นส่วนหนึ่งของแคมเปญการโปรโมตข้ามแพลตฟอร์ม ผู้ขายต้องการให้ลูกค้าใช้ตัวเลือกต่อไปนี้
- ลูกค้าระดับ R-Basic สามารถใช้ Smart Tap เพื่อแลกรับการเป็นสมาชิกสะสมคะแนนได้ที่ Coffee-Foo และ Mocha-R-Us
- ลูกค้าระดับ R-Gold ไม่จำเป็นต้องแลกรับฟีเจอร์การแตะอัจฉริยะ
- ลูกค้า My Rewards สามารถใช้การแตะอัจฉริยะเพื่อแลกรับการเป็นสมาชิกสะสมคะแนนได้ที่ Coffee-Foo เท่านั้น
คลาสความภักดีแต่ละชั้นต้องมีการตั้งค่าต่อไปนี้ในพร็อพเพอร์ตี้ redemptionIssuers
ของคำจำกัดความคลาสเพื่อให้แคมเปญนี้ทำงานได้
ระดับการสะสมคะแนน | รหัสผู้ออกการแลกสิทธิ์ |
---|---|
R พื้นฐาน | ["456", "789"] |
อาร์โกลด์ | [] |
รางวัลของฉัน | ["456"] |
ด้วยการกำหนดค่านี้ ออบเจ็กต์บัตรที่อ้างอิงถึงคลาสเหล่านี้จะมีรหัสผู้เรียกเก็บเงินดังต่อไปนี้
- R-Basic:
44444444
,77777777
- R-Gold: ไม่มีรหัสผู้เรียกเก็บเงิน
- รางวัลของฉัน:
44444444
การตรวจสอบสิทธิ์ผู้รวบรวมในเวลาแตะ
ในฐานะส่วนหนึ่งของการกำหนดค่าผู้ออกใบรับรอง บัญชีผู้ออกอาจมีคีย์สาธารณะหลายรายการที่เชื่อมโยงอยู่ คีย์สาธารณะเหล่านี้ จะอยู่ในแอป Google Wallet ซึ่งใช้ในการตรวจสอบสิทธิ์ เมื่อผู้ใช้แตะอุปกรณ์บนเทอร์มินัลที่เปิดใช้งานการแตะอัจฉริยะ ขั้นตอนการตรวจสอบสิทธิ์นี้จะเกิดขึ้นหลังจากที่แอปพบออบเจ็กต์บัตรที่ออกให้กับผู้ใช้ที่มีรหัสผู้เรียกเก็บเงินตรงกับค่าที่เทอร์มินัลโฆษณา
จากตัวอย่างในส่วนก่อนหน้านี้ ตารางต่อไปนี้จะอธิบายคีย์สาธารณะที่เชื่อมโยงกับผู้ออกแต่ละราย
ชื่อผู้ขาย | ILuvCoffee | กาแฟ | มอคคา-อาร์-ยู |
---|---|---|---|
รหัสผู้ออกบัตร | 123 |
456 |
789 |
รหัสผู้สะสม | 11111111 |
44444444 |
77777777 |
ระดับในโปรแกรมสะสมคะแนน | R พื้นฐาน | รางวัลของฉัน | |
อาร์โกลด์ | |||
คีย์สาธารณะ | aaa | bbb |
ลูกค้าตัวอย่างมีบัตรสะสมคะแนนต่อไปนี้บันทึกไว้ในแอป Google Wallet
- ILuvCoffee: R-Basic
- Coffee-Foo: รางวัลของฉัน
เช่นเคย มีการตั้งค่าต่อไปนี้ในพร็อพเพอร์ตี้ redemptionIssuers
สำหรับคลาสโปรแกรมสะสมคะแนนแต่ละรายการ
- R-Basic:
["456", "789"]
- รางวัลของฉัน:
["456"]
หากผู้ใช้แตะอุปกรณ์ที่เครื่องชำระเงินของผู้ขายแต่ละราย จะเกิดผลลัพธ์ที่เป็นไปได้ 3 ประการดังนี้
เทอร์มินัลของผู้ขาย | ผลลัพธ์ |
---|---|
ILuvCoffee | เนื่องจากขณะนี้ยังไม่ได้กำหนดค่า ILuvCoffee (รหัสผู้ออกการแลกสิทธิ์ 123 ) ให้แลกสิทธิ์ใช้คลาสการสะสมคะแนนของตนเอง ซึ่งก็คือ R-Basic จึงไม่มีการส่งข้อมูล |
กาแฟ | แอป Google Wallet จะตรวจสอบสิทธิ์กับเทอร์มินัล Coffee-Foo โดยใช้คีย์สาธารณะ bbb สถานการณ์ใดสถานการณ์หนึ่งที่ระบุไว้ในส่วนประสบการณ์ของผู้ใช้จะเกิดขึ้น โดยขึ้นอยู่กับหน้าจอปัจจุบันที่ผู้ใช้กำลังดูในอุปกรณ์ |
มอคคา-อาร์-ยู | ในตัวอย่างนี้ไม่มีคีย์สาธารณะสำหรับ Mocha-R-U แม้ว่าจะแลกสิทธิ์โปรแกรม R-Basic กับผู้ขายได้ แต่โปรแกรมดังกล่าวก็ตรวจสอบสิทธิ์กับเครื่องชำระเงินไม่ได้ ดังนั้นจึงไม่มีการส่งข้อมูลใดๆ |
ขีดจำกัดการตรวจสอบสิทธิ์
เมื่อบัตรซิงค์กับแอป Google Wallet ของผู้ใช้ ระบบจะค้นหาผู้ออกการแลกสิทธิ์ทั้งหมดของบัตรนั้นจากแบ็กเอนด์ของ Google Wallet รหัสผู้เรียกเก็บเงิน คีย์สาธารณะ และเวอร์ชันคีย์ของผู้ออกการแลกสิทธิ์แต่ละรายจะจัดเก็บอยู่ใน แอป Google Wallet
บัตรแต่ละใบมีรหัสผู้ออกการแลกสิทธิ์ได้หลายรายการ จากนั้น แต่ละรายการจะแมปกับ รหัสผู้เรียกเก็บเงินที่เจาะจงสำหรับผู้ขายรายใดรายหนึ่ง นอกจากนี้ ยังมีคีย์สาธารณะและเวอร์ชันคีย์หลายรายการสำหรับรหัสผู้เรียกเก็บเงินเดียว
แอป Google Wallet จะไม่พยายามตรวจสอบสิทธิ์กับเครื่องชำระเงิน หากไม่มีบัตรที่เครื่องชำระเงินนั้นแลกสิทธิ์ได้ โดยอิงตามเวอร์ชัน รหัสผู้รวบรวมและเวอร์ชันคีย์สาธารณะ หากต้องการอัปเดตคีย์สาธารณะสำหรับบัตร เครื่องชำระเงินดังกล่าวต้องเชื่อมต่ออินเทอร์เน็ตเพื่อให้ดึงคีย์สาธารณะใหม่จากแบ็กเอนด์ของ Google Wallet ได้
โดยบัตร 1 ใบจะเชื่อมโยงกับคีย์สาธารณะหลายรายการพร้อมกันได้ ดูข้อมูลเกี่ยวกับการตั้งค่าคีย์สาธารณะหลายรายการสำหรับบัตรเดียวกันได้ที่การกำหนดค่าผู้ขาย
การส่งค่าระหว่างการแตะ
หากต้องการส่งข้อมูลจากบัตรในระหว่างการแตะ คุณจะต้องตั้งค่า smartTapRedemptionValue
ของออบเจ็กต์บัตร เมื่อเปิดใช้คลาสที่สอดคล้องกับออบเจ็กต์สำหรับการแตะอัจฉริยะ ระบบจะส่งค่านี้ไปยังเทอร์มินัล
ระบบจะใช้ค่านี้ตามการผสานรวมและกรณีการใช้งานของคุณเพื่อระบุบัตรของผู้ใช้และดำเนินการตรรกะธุรกรรมที่จำเป็น เช่น รายละเอียดต่อไปนี้
- อัปเดตยอดคงเหลือหรือสถานะของผู้ใช้
- อัปเดตแบ็กเอนด์ของคุณเองโดยอิงตามธุรกรรม
- ทำการอัปเดตออบเจ็กต์บัตรโดยใช้ Google Wallet API เพื่อให้สถานะ ของผู้ใช้มีการเปลี่ยนแปลงบนอุปกรณ์ของผู้ใช้
เครื่องชำระเงินและแอป Google Wallet จะจัดการการเข้ารหัสข้อมูลทั้งหมดที่ส่งผ่าน NFC เทอร์มินัลจะจัดการการถอดรหัสข้อมูลหลังจากการแตะอัจฉริยะเกิดขึ้น โดยภายในข้อมูลจะมีระเบียน NDEF ของออบเจ็กต์บริการที่แสดงถึงแต่ละบัตรผ่าน Service number NDEF Record
ของออบเจ็กต์บริการมีเพย์โหลดที่มีชุดค่าในพร็อพเพอร์ตี้ smartTapRedemptionValue
ของออบเจ็กต์การส่ง ซึ่งหมายความว่านักพัฒนาซอฟต์แวร์บัตรไม่จำเป็นต้องจัดการกับการเข้ารหัสข้อมูลที่ส่ง
หากต้องการเพิ่มความปลอดภัยอีกชั้นหนึ่ง คุณสามารถตั้งค่าพร็อพเพอร์ตี้ smartTapRedemptionValue
ให้มีเฉพาะระบบที่ได้รับข้อมูลที่ส่ง (เช่น จุดขาย) เท่านั้นที่ถอดรหัสได้ อย่างไรก็ตาม นักพัฒนาซอฟต์แวร์บัตรและผู้ดูแลระบบ POS จะเป็นผู้รับผิดชอบในกระบวนการเข้ารหัส/ถอดรหัส