合作伙伴触发的通知
添加消息和通知
背景
用户添加卡券后,您可能需要向其发送与卡券相关的消息,并确保他们收到相关通知。使用 Add Message API 请求(message_type
等于 TEXT_AND_NOTIFY
)时,会发生以下情况:
- 系统会将“消息”项添加到“卡券背面”(也称为详细信息模板),并向保存了卡券的用户发送推送通知。
- 用户点按通知后,Google 钱包会打开到卡券正面(也称为卡片视图),并且用户会在屏幕顶部看到带有“查看消息”按钮的宣传信息。
- 点击宣传信息后,用户会进入卡券背面,其中会突出显示新的消息(未读)。
向用户发送包含通知的消息时的一些注意事项
- 用户必须为其卡券启用通知,才能接收与消息相关的推送通知。
- 消息可能包含指向您的网站或应用的 URI。超链接必须是与卡券相关的网站或应用。将用户引导至与卡券无关的链接违反了可接受的使用政策。
- 您在 24 小时内最多只能发送 3 条可触发推送通知的消息。如果 Google 认为您向用户发送的推送通知属于垃圾内容,可能会限制您的推送通知传送配额。
- 用户在锁定屏幕上看到的推送通知由 Google 钱包控制。
- 您可以使用 UPDATE 或 PATCH 方法,通过常规类或对象端点修改或移除消息数据。
集成步骤
如果您想使用 AddMessage API 向用户发送有关添加的新发卡人消息的通知,则需要更新 AddMessageRequest,以便包含新文本的消息的 MessageType 为 TEXT_AND_NOTIFY,而不是 TEXT。
在 Passes 类中添加消息和通知的 JSON 请求示例
… "id": ISSUER_ID.CLASS_ID", "message": { "header":"My Class message header", "body": "My Class message body with a <a href="https://wallet.google">Hyperlink<\a>", "id": "message_id", "message_type": "TEXT_AND_NOTIFY" }, …
在卡券对象中添加消息和通知的 JSON 请求示例
… "id": OBJECT_ID", "classId": "ISSUER_ID.CLASS_ID", "message": { "header":"My Object message header", "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>", "id": "message_id", "message_type": "TEXT_AND_NOTIFY" }, …
添加消息并为通过类发送通知的示例响应
// The updated resource … { "kind": "walletobjects#walletObjectMessage", "header": "My Object message header", "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>", "id": "message_id", "messageType": "textAndNotify" }, …
异常处理
如果尝试发送通知的次数超过 3 次,系统会返回 QuotaExceededException 响应。如集成步骤中所述,您可以使用“TEXT”而非“TEXT_AND_NOTIFY”设置卡券的任何其他更新。
更新字段和发送通知
背景
用户添加卡券后,您可能希望在更新某些字段时触发推送通知。该通知会显示在用户的锁定屏幕上,告知他们卡券有更新。此通知仅会针对下文中使用 UPDATE 和 PATCH API 方法定义的特定字段子集触发。发出用于更新卡券的 API 调用后,系统会执行以下操作:
- 系统会触发推送通知并将其显示在用户的锁定屏幕上,告知用户卡券更新。
- 用户点按通知后,Google 钱包会打开到卡券正面(也称为卡片视图),并且用户会在屏幕顶部看到一条宣传信息,其中包含“查看更新”按钮。
- 点击该按钮后,用户会进入一个界面,在其中可以查看更新更改的字段。
发送字段更新通知时的一些注意事项
- 用户必须为其卡券启用通知,才能接收与更新相关的推送通知。
- 您最多可以在 24 小时内发送 3 条会触发推送通知的更新。如果 Google 认为您向用户发送的通知属于垃圾内容,可能会限制您的推送通知传送配额。
- 用户在锁定屏幕上看到的推送通知由 Google 钱包控制。
notifyPreference
字段是一个暂时性字段,仅在该请求中有效。日后,如果您希望触发通知,则必须在类或对象请求中重置此字段。
集成步骤
如需触发这些通知,您需要使用现有的 UPDATE 或 PATCH 调用并指定 notifyPreference。更新类或对象的字段时,您可以向类或对象请求添加新字段 notifyPreference
以触发通知。
用于在类中更新和通知的 JSON 请求示例
… "dateTime": { "kind": "walletobjects#eventDateTime", "doorsOpen": "2024-09-23T19:20:50.00" }, "multipleDevicesAndHoldersAllowedStatus": "multipleHolders", "notifyPreference": "notifyOnUpdate", …
将 notifyPreference
设置为 notifyOnUpdate
会触发通知,前提是更新后的字段目前受支持。
支持的字段
EventTicketClass
- eventName
- eventVenue.name
- eventvenue.address
- eventDateTime.doorsOpen
- eventDateTime.start
EventTicketObject
- eventSeat.seat
- eventSeat.row
- eventSeat.section
- eventSeat.gate
Google 钱包触发的自动通知
即将发布的通知
Google 钱包会在活动开始前三小时向用户发送通知。事件时间由 class.dateTime.start
定义。
若要接收此通知,用户必须启用通知功能。如需检查此功能是否已启用,用户可以前往设置 > 通知,并查看卡券的动态是否已开启。
如果用户 启用了在锁定屏幕上显示通知的设置,那么通知会显示在通知区域和锁定屏幕中。
通知采用以下不可修改的格式:
class.eventName
如果用户点按通知并解锁设备,Google 钱包应用中会显示他们的卡券。
如果用户有多张卡券,系统只会显示即将可用的卡券。如果他们根据给活动门票分组添加了分组卡券,通知仅会显示组中的一张卡券。但是,用户点按这张卡券后,可以左右滑动来查看该组内的其他卡券。
通知会被固定,而不是在用户打开后自动关闭。自动关闭的时间是 class.dateTime.start
之后 60 分钟。