触发推送通知

通知类型

添加消息和通知

背景

用户添加卡券后,您可能需要向其发送与卡券相关的消息,并确保他们收到相关通知。使用 Add Message API 请求(message_type 等于 TEXT_AND_NOTIFY)时,会发生以下情况:

  1. 系统会将“消息”项添加到“卡券背面”(也称为详细信息模板),并向保存了卡券的用户发送推送通知。
  2. 用户点按通知后,会将 Google 钱包打开到卡券正面(也称为卡片视图),并且用户将在屏幕顶部看到一条带有“查看消息”按钮的标注。
  3. 点击宣传信息会将用户带到卡券的后面,其中突出显示了新的未读消息。

向用户发送带有通知的邮件时的一些注意事项

  • 用户必须为其卡券启用通知,才能接收与消息相关的推送通知。
  • “信息”应用可能包含指向您网站或应用的 URI。超链接必须是与卡券相关的网站或应用。将用户引导至与卡券无关的链接会违反使用限制政策
  • 在 24 小时内,您最多可以发送 3 条消息来触发推送通知。如果 Google 认为您向用户发送的推送通知属于垃圾内容,可能会限制您的推送通知传送配额。
  • 用户在锁定屏幕上看到的推送通知由 Google 钱包控制。
  • 您可以使用 UPDATEPATCH 方法,通过常规类或对象端点修改或移除消息数据。

集成步骤

如果您想通知用户有关使用 AddMessage API 添加的新颁发者消息,则需要更新 AddMessageRequest,以使包含新文本的 MessageMessageType 类型为 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 调用后,系统会执行以下操作:

  1. 系统会触发推送通知并将其显示在用户的锁定屏幕上,告知用户卡券更新。
  2. 用户点按通知后,Google 钱包会打开到卡券正面(也称为卡片视图),并且用户会在屏幕顶部看到一条宣传信息,其中包含“查看更新”按钮。
  3. 点击该按钮后,用户会进入一个界面,在其中可以查看更新更改的字段。

发送字段更新通知时的一些注意事项

  • 用户必须为其卡券启用通知,才能接收与更新相关的推送通知。
  • 您最多可以在 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 会触发通知,前提是更新后的字段目前受支持。

支持的字段

FlightObject
  • boardingAndSeatingInfo.seatNumber
  • boardingAndSeatingInfo.seatAssignment