通知類別
新增訊息和通知
背景
使用者新增票證後,建議您傳送與票證相關的訊息,並確保他們收到票證通知。使用 Add Message API 要求,且 message_type
等於 TEXT_AND_NOTIFY
,會發生以下情況:
- 系統會將「訊息」項目新增至「票證背面」(又稱詳細資料範本),並將推播通知傳送給已儲存票證的使用者。
- 使用者輕觸通知後,通知便會在票證正面開啟 Google 錢包 (也稱為「卡片」檢視),使用者就會在畫面頂端看到含有「查看訊息」按鈕的摘要。
- 點選說明後,使用者會看到票證的背面,其中會醒目顯示未讀的新訊息。
向使用者傳送含有通知的訊息時,請考量以下幾點
- 使用者必須先啟用票證的通知,才能接收與訊息相關的推播通知。
- 訊息可能包含網站或應用程式的 URI。超連結必須是與票證相關的網站或應用程式。將使用者導向與票證無關的連結,違反了使用規定政策。
- 您在 24 小時內最多只能傳送 3 則會觸發推播通知的訊息。如果 Google 認為您向使用者濫發垃圾內容,就會限制您的推播通知傳送配額。
- 使用者在螢幕鎖定畫面上看到的推播通知是由 Google 錢包控管。
- 您可以透過 UPDATE 或 PATCH 方法,使用一般類別或物件端點來編輯或移除訊息資料。
整合步驟
如想通知使用者有關使用 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 呼叫完成後,會發生以下情況:
- 系統會觸發推播通知,並在使用者的螢幕鎖定畫面上顯示,通知他們通行證更新。
- 使用者輕觸通知後,系統會在票證前方 (又稱為卡片檢視畫面) 開啟 Google 錢包,使用者會在畫面頂端看到「查看更新」按鈕的說明文字。
- 使用者點選按鈕後會前往一個畫面,其中會顯示因更新而變更的欄位。
傳送欄位更新通知時的注意事項
- 使用者必須啟用票證通知功能,才能收到與更新相關的推播通知。
- 您最多只能在 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
會觸發通知。
支援的欄位
FlightObject
- boardingAndSeatingInfo.seatNumber
- boardingAndSeatingInfo.seatAssignment