Google Wallet Passes API ช่วยให้พาร์ทเนอร์ระบุปลายทางสำหรับการเปิดใช้งานตั๋วขนส่งสาธารณะได้ เมื่อจำเป็นต้องเปิดใช้งาน ปุ่ม "เปิดใช้งาน" จะปรากฏขึ้นสำหรับผู้ใช้ ซึ่งเมื่อแตะแล้ว ระบบจะเรียกใช้ปลายทางที่ระบุพร้อมด้วยพารามิเตอร์ที่อธิบายไว้ด้านล่าง ปลายทางควรตรวจสอบว่าบัตรมีข้อมูลการแลกสิทธิ์ที่ถูกต้อง (ไม่ว่าจะเป็นการตรวจสอบบาร์โค้ดหรือภาพ) ก่อนส่งคืน ซึ่งเมื่อถึงเวลานั้นระบบจะอัปเดตบัตรใน Wallet ของผู้ใช้ให้แสดงข้อมูลการแลกสิทธิ์ โปรดทราบว่าระบบจะไม่แสดงข้อมูลการแลกสิทธิ์ที่มีอยู่ก่อนการเปิดใช้งาน
API การเปิดใช้งาน
มีการระบุปลายทางการเปิดใช้งานใน API โดยใช้ activationOptions
ในคลาสขนส่งสาธารณะ
พาร์ทเนอร์มีหน้าที่ดูแลรักษาปลายทางการเปิดใช้งานที่ใช้งานได้ให้มีเวลาในการตอบสนองที่สมเหตุสมผล
activationOptions: { activationUrl: string }
ฟิลด์ | คำอธิบาย |
---|---|
activationUrl |
URL สำหรับปลายทางพาร์ทเนอร์ที่ระบบจะเรียกใช้คำขอเปิดใช้งาน URL ควรโฮสต์อยู่บน HTTPS และ robots.txt ควรอนุญาตให้ UserAgent:Google-Valuables เข้าถึงเส้นทาง URL |
สถานะการเปิดใช้งานจะจัดเก็บไว้ในออบเจ็กต์โดยใช้ช่อง activationStatus
สถานะที่ถูกต้องประกอบด้วย NOT_ACTIVATED
และ ACTIVATED
ปลายทางการเปิดใช้งานควรอัปเดตออบเจ็กต์ด้วยสถานะ ACTIVATED
รวมถึงตรวจสอบว่าออบเจ็กต์มีข้อมูลการแลกสิทธิ์ที่ถูกต้อง เช่น บาร์โค้ดหรือพารามิเตอร์การตรวจสอบภาพ ระบบอาจใช้ช่อง deviceContext
สำหรับการปักหมุดอุปกรณ์
activationStatus: enum (ActivationStatus), deviceContext: { deviceToken: string }, hasLinkedDevice: boolean
ฟิลด์ | คำอธิบาย |
---|---|
activationStatus |
สถานะการเปิดใช้งานสำหรับออบเจ็กต์การส่งนี้ สถานะนี้จะเปลี่ยนการนำเสนอตั๋วและอนุญาตให้ผู้ใช้ดำเนินการ เช่น ปุ่มเปิดใช้งานจะแสดงบนรายละเอียดของตั๋วหากตั้งค่าเป็น ค่าที่ยอมรับได้มีดังนี้
|
deviceContext |
บริบทของอุปกรณ์ที่จะเชื่อมโยงกับออบเจ็กต์ หากตั้งค่าไว้ ระบบจะส่งข้อมูลการแลกสิทธิ์ไปยังอุปกรณ์ที่ระบุเท่านั้น |
hasLinkedDevice |
ออบเจ็กต์นี้ลิงก์กับอุปกรณ์เครื่องเดียวอยู่หรือไม่ |
ฟิลด์ | คำอธิบาย |
---|---|
deviceToken |
หากตั้งค่าไว้ ระบบจะส่งข้อมูลการแลกสิทธิ์ไปยังอุปกรณ์ที่ระบุเมื่อเปิดใช้งานออบเจ็กต์เท่านั้น ค่านี้ใช้เป็นตัวระบุแบบคงที่เพื่อติดตามอุปกรณ์ของผู้ใช้ไม่ได้ โดยอาจเปลี่ยนแปลงบัตรต่างๆ สำหรับอุปกรณ์เดียวกัน หรือแม้กระทั่งการเปิดใช้งานที่แตกต่างกันสำหรับอุปกรณ์เดียวกันก็ได้ เมื่อใช้การตั้งค่านี้ ผู้โทรจะต้องตั้งค่า โปรดทราบว่าได้รับ |
การปักหมุดอุปกรณ์
การปักหมุดอุปกรณ์เป็นฟีเจอร์ที่อนุญาตให้ผู้ใช้เปิดใช้งานตั๋วในอุปกรณ์เครื่องหนึ่งและแสดงข้อมูลการแลกสิทธิ์ตั๋วได้ในอุปกรณ์นั้นเท่านั้น รายการนี้แยกจาก multipleDevicesAndHoldersAllowedStatus
ของ ONE_USER_ONE_DEVICE
ซึ่งอนุญาตให้แสดงตั๋วบนอุปกรณ์ได้เพียงเครื่องเดียวเท่านั้น ขอแนะนำให้ใช้สถานะ ONE_USER_ALL_DEVICES
กับการปักหมุดอุปกรณ์
ก่อนเปิดใช้งาน ผู้ใช้จะดูตั๋วและเปิดใช้งานปุ่มเปิดใช้งานได้ในอุปกรณ์ทุกเครื่องที่ตนเป็นเจ้าของ เมื่อเปิดใช้งานและปักหมุดไว้กับอุปกรณ์แล้ว อุปกรณ์ที่ปักหมุดไว้จะแสดงข้อมูลการแลกสิทธิ์ และอุปกรณ์อื่นๆ จะแสดงปุ่มเปิดใช้งานเพื่อให้ผู้ใช้ย้ายตั๋วไปยังอุปกรณ์อื่นได้ หากการย้ายตั๋วไม่ใช่ฟังก์ชันการทำงานที่ต้องการ แต่เปิดใช้งานในอุปกรณ์ใดก็ได้ คุณจะอัปเดตตั๋วระหว่างการเปิดใช้งานเป็น ONE_USER_ONE_DEVICE
ได้แทนการใช้การปักหมุดอุปกรณ์
หากต้องการใช้การปักหมุดอุปกรณ์ คุณควรอัปเดตออบเจ็กต์ด้วยช่อง deviceToken
ที่ได้รับพร้อมพารามิเตอร์การเปิดใช้งาน และตั้งค่า hasLinkedDevice
เป็น "จริง" ในการเรียก API เดียวกัน หากต้องการ คุณจะยกเลิกการลิงก์ตั๋วจากอุปกรณ์ได้โดยการตั้งค่า hasLinkedDevice
เป็น "เท็จ" ในการเรียก API ในอนาคต
พารามิเตอร์การเปิดใช้งาน
คำขอที่ส่งไปยังปลายทางการเปิดใช้งานจะมีพารามิเตอร์ต่อไปนี้
ตัวอย่าง JSON:
{ classId: “123.classId”, objectIds: [ “123.objectId” ], expTimeMillis: 1669671940735, eventType: “activate”, nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”, deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002” }
ตัวระบุ | คำอธิบาย |
---|---|
classId |
รหัสชั้นเรียนที่มีคุณสมบัติครบถ้วน โดยใช้รูปแบบต่อไปนี้ <issuer_id.class_id> |
objectIds |
อาร์เรย์ที่มีคุณสมบัติครบถ้วนของรหัสออบเจ็กต์ที่ใช้รูปแบบต่อไปนี้ <issuer_id.object_id> |
expTimeMillis |
เวลาหมดอายุเป็นมิลลิวินาทีตั้งแต่ EPOCH หลังจากเวลาหมดอายุ จะถือว่าข้อความไม่ถูกต้อง |
eventType |
"activate" เสมอ
|
nonce |
ไม่มีการติดตามการจัดส่งที่ซ้ำกัน |
deviceContext |
รหัสที่ไม่ซ้ำกันที่ Google สร้างขึ้นซึ่งแสดงถึงอุปกรณ์ที่ผู้ใช้กำลังดำเนินการ คุณควรใช้รหัสนี้เมื่อทำการอัปเดตที่ผูกออบเจ็กต์กับอุปกรณ์ รหัสนี้อาจไม่ได้เป็นค่าคงที่สำหรับคำขอในอนาคตจากอุปกรณ์หนึ่งๆ |