ขั้นตอนการสื่อสารของการแตะอัจฉริยะ

การสื่อสารระหว่างเครื่องชำระเงินกับแอป 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 ของออบเจ็กต์บัตร เมื่อเปิดใช้คลาสที่สอดคล้องกับออบเจ็กต์สำหรับการแตะอัจฉริยะ ระบบจะส่งค่านี้ไปยังเทอร์มินัล

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

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

เครื่องชำระเงินและแอป Google Wallet จะจัดการการเข้ารหัสข้อมูลทั้งหมดที่ส่งผ่าน NFC เทอร์มินัลจะจัดการการถอดรหัสข้อมูลหลังจากการแตะอัจฉริยะเกิดขึ้น โดยภายในข้อมูลจะมีระเบียน NDEF ของออบเจ็กต์บริการที่แสดงถึงแต่ละบัตรผ่าน Service number NDEF Record ของออบเจ็กต์บริการมีเพย์โหลดที่มีชุดค่าในพร็อพเพอร์ตี้ smartTapRedemptionValue ของออบเจ็กต์การส่ง ซึ่งหมายความว่านักพัฒนาซอฟต์แวร์บัตรไม่จำเป็นต้องจัดการกับการเข้ารหัสข้อมูลที่ส่ง

หากต้องการเพิ่มความปลอดภัยอีกชั้นหนึ่ง คุณสามารถตั้งค่าพร็อพเพอร์ตี้ smartTapRedemptionValue ให้มีเฉพาะระบบที่ได้รับข้อมูลที่ส่ง (เช่น จุดขาย) เท่านั้นที่ถอดรหัสได้ อย่างไรก็ตาม นักพัฒนาซอฟต์แวร์บัตรและผู้ดูแลระบบ POS จะเป็นผู้รับผิดชอบในกระบวนการเข้ารหัส/ถอดรหัส