ภาพรวม

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

API การเปิดใช้งาน

ระบุปลายทางการเปิดใช้งานใน API โดยใช้ activationOptions ใน ชั้นโดยสาร พาร์ทเนอร์มีหน้าที่รับผิดชอบในการดูแลรักษาปลายทางการเปิดใช้งานที่ใช้งานได้ด้วย เวลาในการตอบสนองที่สมเหตุสมผล

  activationOptions: {
    activationUrl: string
  }
ช่อง คำอธิบาย
activationUrl

string

URL สำหรับปลายทางของพาร์ทเนอร์ที่เรียกใช้คำขอเปิดใช้งาน URL ควร โฮสต์อยู่บน HTTPS และ robots.txt ควรอนุญาตให้เส้นทาง URL เข้าถึงได้จาก UserAgent:Google-Valuables

ระบบจะจัดเก็บสถานะการเปิดใช้งานไว้ในออบเจ็กต์โดยใช้ช่อง activationStatus สถานะที่ถูกต้องคือ NOT_ACTIVATED และ ACTIVATED การเปิดใช้งาน ควรอัปเดตออบเจ็กต์ด้วยสถานะ ACTIVATED รวมทั้งตรวจสอบว่า มีข้อมูลการแลกสิทธิ์ที่ถูกต้อง เช่น พารามิเตอร์การตรวจสอบบาร์โค้ดหรือภาพ ใช้ช่อง deviceContext สําหรับการปักหมุดอุปกรณ์ได้

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
ช่อง คำอธิบาย
activationStatus

enum (ActivationStatus)

สถานะการเปิดใช้งานสำหรับออบเจ็กต์การขนส่งนี้ สถานะนี้จะเปลี่ยนการนำเสนอ คำขอแจ้งปัญหาและอนุญาตให้ผู้ใช้ดำเนินการ เช่น ปุ่มเปิดใช้งานจะแสดงใน รายละเอียดตั๋ว หากตั้งค่าเป็น NOT_ACTIVATED

ค่าที่ยอมรับได้ มีดังนี้

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

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

hasLinkedDevice

boolean

ระบุว่าออบเจ็กต์นี้ลิงก์กับอุปกรณ์เดียวอยู่หรือไม่

DeviceContext
ช่อง คำอธิบาย
deviceToken

string

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

โปรดทราบว่าคุณได้รับ deviceToken จาก พารามิเตอร์การเปิดใช้งาน ช่อง deviceContext

การปักหมุดอุปกรณ์

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

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

หากต้องการใช้การปักหมุดอุปกรณ์ คุณควรอัปเดตออบเจ็กต์ด้วยช่อง deviceToken ซึ่งจะได้รับพร้อมกับพารามิเตอร์การเปิดใช้งาน รวมถึง การตั้งค่า hasLinkedDevice เป็น true ในการเรียก 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 Nonce เพื่อติดตามการจัดส่งที่ซ้ำกัน
deviceContext

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

รหัสนี้อาจไม่แน่นอนสำหรับคำขอในอนาคตจากอุปกรณ์ที่กำหนด