觸發推播通知

通知類別

新增訊息和通知

背景

使用者新增票證後,您可能會想傳送與票證相關的訊息給他們,確保他們收到通知。使用 Add Message API 要求,且 message_type 等於 TEXT_AND_NOTIFY,會發生以下情況:

  1. 系統會將「訊息」項目新增至「票證背面」(又稱為「詳細資料範本」),並向已儲存票證的使用者傳送推播通知。
  2. 使用者輕觸通知後,系統會在票證前端 (又稱為卡片檢視畫面) 開啟 Google 錢包,使用者會在畫面頂端看到「View Message」(查看訊息) 按鈕的註解。
  3. 點選說明後,使用者會看到票證的背面,其中會醒目顯示未讀的新訊息。

向使用者傳送含有通知的訊息時,請考量以下幾點

  • 使用者必須啟用通行證的通知功能,才能收到與訊息相關的推播通知。
  • 訊息可能包含網站或應用程式的 URI。超連結必須是與票證相關的網站或應用程式。將使用者導向與票證無關的連結,違反了使用規定
  • 您在 24 小時內最多只能傳送 3 則會觸發推播通知的訊息。如果 Google 認為您向使用者傳送垃圾郵件,可能會限制您的推播通知傳送配額。
  • 使用者在螢幕鎖定畫面上看到的推播通知,是由 Google 錢包控制。
  • 您可以使用 UPDATEPATCH 方法,透過一般類別或物件端點編輯或移除訊息資料。

整合步驟

如要通知使用者透過 AddMessage API 新增的新發信者訊息,您必須更新 AddMessageRequest,讓包含新文字的 Message 具有 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"
    },
  …

在「Passes」物件中新增訊息和通知的 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"
    },
  …

新增 Pass Class 訊息和通知的範例 Response

  // 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,以觸發通知。

用於更新及通知 Class 的 JSON 要求範例

    …
    "dateTime":
        {
            "kind": "walletobjects#eventDateTime",
            "doorsOpen": "2024-09-23T19:20:50.00"
        },
    "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
    "notifyPreference": "notifyOnUpdate",
    …
  

如果目前支援更新的欄位,將 notifyPreference 設為 notifyOnUpdate 會觸發通知。

支援的欄位

LoyaltyClass
  • rewardsTier
  • secondaryRewardsTier
  • programName
LoyaltyObject
  • loyaltyPoints.balance
  • secondaryLoyaltyPoints.balance