合作夥伴觸發的通知
新增訊息並通知
背景
使用者新增票證後,您可能想傳送與票證相關的訊息,並確保使用者收到通知。使用 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。
在票證類別中新增訊息並傳送通知的 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" }, …
範例 Response,可新增訊息並通知「Pass Class」
// 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」,詳情請參閱「整合步驟」。
鄰近分享通知
如果使用者已啟用通知,並授予 Google 錢包應用程式精確位置資訊的「一律允許」存取權,系統就會顯示推播通知,提醒他們已儲存與目前位置相關的票證。整合步驟
使用方法
如要使用這項功能,請在類別和物件中新增位置資訊。每個類別和物件最多可新增 10 個地點。在類別或物件定義中使用 MerchantLocations
。使用 insert
、patch
或 update
方法時,可以新增這些位置。
在類別或物件中加入地點後,Google 會在使用者靠近時傳送通知。Google 會決定使用者必須靠近多近,以及必須在該區域停留多久,才會傳送通知。Google 也會控管通知文字。
以下是設定 MerchantLocations 的 LoyaltyClass 範例:{ "kind": "walletobjects#loyaltyClass", "programLogo": { "kind": "walletobjects#image", "sourceUri": { "uri": ... } }, "localizedProgramName": { "kind": "walletobjects#localizedString", "defaultValue": { "kind": "walletobjects#translatedString", "language": "en", "value": "Program Name", } }, "id": Id1234, "version": "1", "allowMultipleUsersPerObject": true, "reviewStatus": "underReview", "enableSmartTap": false, "localizedIssuerName": { "kind": "walletobjects#localizedString", "defaultValue": { "kind": "walletobjects#translatedString", "language": "en", "value": "Issuer Name" } }, "multipleDevicesAndHoldersAllowedStatus": "multipleHolders", "merchantLocations": [ { "latitude": 37.79020867928078, "longitude": -122.39004 }, { "latitude": 37.42587, "longitude": -122.08620 }, ] }
預期行為
使用者抵達指定 MerchantLocation 時,應該會收到有關票證的固定通知。 使用者點選通知後,Google 錢包就會開啟票證。 使用者可以透過滑動手勢關閉通知。使用者離開該地點後,通知就會消失。