利用 Google Wallet Passs API,合作伙伴能够将轮替条形码保存到 Google 钱包。这些条形码仅在短期内有效,从而提高了安全性,降低了进行条形码截图的风险。条形码根据 RFC 6238 在设备上生成,密钥由合作伙伴提供。但是,如果合作伙伴更希望自行生成条形码,可以使用 Google 提供的 API,以便将条形码批量上传到 Google。然后,这些条形码将被传递至用户的手机,手机上的条形码将像旋转条形码一样短暂显示一小段时间。我们将此解决方案称为合作伙伴生成的轮替条形码。
合作伙伴生成的旋转条形码 API
合作伙伴生成的旋转条形码是使用相同的 RotatingBarcode 对象创建的。我们只需要提供类型,不过我们还建议您创建一个较小的初始条形码(大约 10 分钟),并在 initialRotatingBarcodeValues
中发送这些条形码。合作伙伴负责确保始终为用户提供有效的条形码,并且 initialRotatingBarcodeValues
允许对后续批量上传调用进行异步处理。
rotatingBarcode { initialRotatingBarcodeValues: object (RotatingBarcodeValues), type: enum (BarcodeType), }
字段 | 说明 |
---|---|
initialRotatingBarcodeValues |
要在条形码中编码的值。至少需要提供一个值。这些初始条形码旨在消除用户首次获取卡券与后续批量上传调用之间的时间差。 |
type |
必需。此条形码的类型。 可接受的值包括:
|
字段 | 说明 |
---|---|
startDateTime |
第一个条形码的生效日期/时间。条形码将使用 这是 ISO 8601 扩展格式的日期/时间,带有偏移量。 |
values[] |
要在条形码中编码的值。必须至少提供一个值。 值没有最大数量,但请注意,请求正文的大小不能超过 5MB。 |
periodMillis |
每个条形码的有效期。 |
批量更新条形码值
创建 RotatingBarcode 对象后,建议您每天上传一天的条形码,直到用户的卡券过期。您可以使用以下 REST API 端点执行此操作。
方法:transitobject.uploadrotatingbarcodevalues
将旋转的条形码值上传到指定对象 ID 引用的公交对象。
HTTP 请求
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
路径参数
参数 | 说明 |
---|---|
resourceId |
对象的唯一标识符。 |
请求正文
请求正文(不得超过 5MB)包含一个 RotatingBarcodeValues 实例。
方法:transitobject.downloadrotatingbarcodevalues
下载指定对象 ID 引用的公交对象的轮替条形码值。如果合作伙伴想要验证最新批次,这会非常有用。
HTTP 请求
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
路径参数
参数 | 说明 |
---|---|
resourceId |
对象的唯一标识符。 |