Kích hoạt thông báo đẩy
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Thông báo do đối tác kích hoạt
Thêm thông báo và thông báo
Thông tin khái quát
Sau khi người dùng thêm thẻ/vé, bạn có thể gửi cho họ một thông báo liên quan đến thẻ/vé đó và đảm bảo họ nhận được thông báo. Khi sử dụng yêu cầu Thêm API thông báo với message_type
bằng TEXT_AND_NOTIFY
, những điều sau sẽ xảy ra:
- Mục "Thông báo" được thêm vào "mặt sau của thẻ và vé" (còn gọi là Mẫu chi tiết) và thông báo đẩy sẽ được gửi đến người dùng đã lưu thẻ và vé.
- Sau khi người dùng nhấn vào thông báo, Google Wallet sẽ mở ra ở đầu thẻ và người dùng sẽ thấy một chú thích ở đầu màn hình có nút "Xem tin nhắn".
- Khi nhấp vào chú thích, người dùng sẽ được đưa đến mặt sau của thẻ và các tin nhắn mới chưa đọc sẽ được làm nổi bật.
Một số điều cần cân nhắc khi gửi tin nhắn có thông báo cho người dùng
- Người dùng phải bật thông báo cho thẻ và vé của họ để nhận được thông báo đẩy liên quan đến thông báo.
- Thông báo có thể chứa URI đến trang web hoặc ứng dụng của bạn. Siêu liên kết phải là một trang web hoặc ứng dụng liên quan đến thẻ và vé. Việc đưa người dùng đến các đường liên kết không liên quan đến thẻ và vé là hành vi vi phạm Chính sách sử dụng được chấp nhận.
- Bạn có thể gửi tối đa 3 thông báo kích hoạt thông báo đẩy trong khoảng thời gian 24 giờ. Google có thể điều tiết hạn mức phân phối thông báo đẩy nếu Google cho rằng bạn đang gửi nội dung rác cho người dùng.
- Thông báo đẩy mà người dùng thấy trên màn hình khoá do Google Wallet kiểm soát.
- Bạn có thể sử dụng các phương thức UPDATE hoặc PATCH để chỉnh sửa hoặc xoá dữ liệu thông báo bằng cách sử dụng điểm cuối lớp hoặc đối tượng thông thường.
Các bước tích hợp
Khi muốn thông báo cho người dùng về thông báo mới của người phát hành được thêm bằng API AddMessage, bạn cần cập nhật AddMessageRequest để Message chứa văn bản mới có MessageType
TEXT_AND_NOTIFY thay vì TEXT.
Ví dụ về Yêu cầu JSON để thêm thông báo và thông báo trong Lớp thẻ và vé
…
"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"
},
…
Ví dụ về Yêu cầu JSON để thêm thông báo trong Đối tượng thẻ và vé
…
"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"
},
…
Ví dụ về Phản hồi để thêm thông báo và thông báo cho một Lớp vé
// 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"
},
…
Xử lý ngoại lệ
Nếu bạn cố gắng thông báo nhiều hơn 3 lần, hệ thống sẽ trả về phản hồi QuotaExceededException . Bạn có thể đặt mọi nội dung cập nhật khác cho thẻ và thẻ này bằng cách sử dụng "TEXT" thay vì "TEXT_AND_NOTIFY" như đã thảo luận trong Các bước tích hợp.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-29 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-29 UTC."],[[["\u003cp\u003e\u003cstrong\u003e\u003ccode\u003eTEXT_AND_NOTIFY\u003c/code\u003e\u003c/strong\u003e message type adds a message to the pass's details and triggers a push notification, directing users to the message in Google Wallet.\u003c/p\u003e\n"],["\u003cp\u003eUsers must have notifications enabled for their passes to receive these push notifications.\u003c/p\u003e\n"],["\u003cp\u003eA maximum of 3 notification-triggering messages can be sent within a 24-hour period to avoid spamming users.\u003c/p\u003e\n"],["\u003cp\u003eYou can update or remove message data using standard update/patch methods and change the \u003ccode\u003emessage_type\u003c/code\u003e to \u003ccode\u003eTEXT\u003c/code\u003e for further updates without notifications.\u003c/p\u003e\n"],["\u003cp\u003eExceeding the notification limit results in a \u003ccode\u003eQuotaExceededException\u003c/code\u003e, after which \u003ccode\u003eTEXT\u003c/code\u003e should be used instead of \u003ccode\u003eTEXT_AND_NOTIFY\u003c/code\u003e for subsequent messages.\u003c/p\u003e\n"]]],["The `Add Message API` with `message_type` as `TEXT_AND_NOTIFY` sends a push notification to users when a new message is added to their pass. Tapping the notification opens the pass in Google Wallet, displaying a \"View Message\" callout. Clicking this directs users to the pass's \"back\" where new messages are highlighted. A maximum of three push notifications are allowed within 24 hours, with excessive usage resulting in a `QuotaExceededException`. Messages can include hyperlinks relevant to the pass.\n"],null,["# Trigger Push Notifications\n\nPartner Triggered Notifications\n-------------------------------\n\n### Add Message and Notify\n\n#### Background\n\nAfter a user adds a pass you may want to send them a message related to the\npass and ensure they are notified about it. Using the [Add Message API](/wallet/tickets/transit-passes/qr-code/rest/v1/transitclass/addmessage)\nrequest with a `message_type` equal to\n**`TEXT_AND_NOTIFY`** the following occurs:\n\n1. A \"[Message](https://developers.google.com/wallet/reference/rest/v1/Message)\" item is added to the \"back of pass\" (aka [Details\n Template](/wallet/tickets/transit-passes/qr-code/resources/template#details-template)) and a push notification is sent to users with the pass saved.\n2. Once the user taps the notification it opens Google Wallet to the front of the pass (a.k.a. Card view) and the user will see a callout at the top of the screen with a \"View Message\" button.\n3. Clicking the callout will take users to the back of the pass, where new unread messages are highlighted.\n\n#### Some considerations when sending messages with notifications to users\n\n- Users must have notifications enabled for their passes to receive the push notifications related to messages.\n- Messages may contain URIs to your website or app. Hyperlinks must be a website or app related to the pass. It is a violation of the [Acceptable Use Policy](https://payments.developers.google.com/terms/aup) to send users to links not related to the pass.\n- You may send a maximum of 3 messages that trigger a push notification in a 24 hour period. Google may throttle your push notification delivery quota if it deems you are spamming your users.\n- The push notification users see on their lock screen is controlled by Google Wallet.\n- You can use the [UPDATE](/wallet/tickets/transit-passes/qr-code/rest/v1/transitclass/update) or [PATCH](/wallet/tickets/transit-passes/qr-code/rest/v1/transitclass/patch) methods to edit or remove message data using the regular class or object endpoint.\n\n#### Integration Steps\n\nWhen you want to notify users about a new issuer message added using the\nAddMessage API, you will need to update the [AddMessageRequest](https://developers.google.com/wallet/reference/rest/v1/AddMessageRequest)\nso that the [Message](https://developers.google.com/wallet/reference/rest/v1/Message)\nwhich contains your new text has the [MessageType](https://developers.google.com/wallet/reference/rest/v1/Message#MessageType)\n**TEXT_AND_NOTIFY** instead of **TEXT**.\n\n#### Example JSON Request to add message and notify in a Passes Class\n\n```carbon\n ...\n \"id\": ISSUER_ID.CLASS_ID\",\n \"message\":\n {\n \"header\":\"My Class message header\",\n \"body\": \"My Class message body with a \u003ca href=\"https://wallet.google\"\u003eHyperlink\u003c\\a\u003e\",\n \"id\": \"message_id\",\n \"message_type\": \"TEXT_AND_NOTIFY\"\n },\n ...\n```\n\n#### Example JSON Request to add message and notify in a Passes Object\n\n```carbon\n ...\n \"id\": OBJECT_ID\",\n \"classId\": \"ISSUER_ID.CLASS_ID\",\n \"message\":\n {\n \"header\":\"My Object message header\",\n \"body\": \"My Object message body with a \u003ca href=\"http://play.google.com/store/apps/details?id=com.google.android.apps.maps\"\u003eHyperlink\u003c\\a\u003e\",\n \"id\": \"message_id\",\n \"message_type\": \"TEXT_AND_NOTIFY\"\n },\n ...\n```\n\n#### Example [Response](/wallet/tickets/transit-passes/qr-code/rest/v1/transitclass/addmessage#response-body) to add message and notify for a Pass Class\n\n```scilab\n // The updated resource\n …\n {\n \"kind\": \"walletobjects#walletObjectMessage\",\n \"header\": \"My Object message header\",\n \"body\": \"My Object message body with a \u003ca href=\"http://play.google.com/store/apps/details?id=com.google.android.apps.maps\"\u003eHyperlink\u003c\\a\u003e\",\n \"id\": \"message_id\",\n \"messageType\": \"textAndNotify\"\n },\n …\n```\n\n#### Exception handling\n\nAny attempts to notify more than 3 times will yield a\n**QuotaExceededException** response. Any further updates to the\npass can be set using \"**TEXT** \" instead of\n\"**TEXT_AND_NOTIFY** \" as discussed in the [Integration\nSteps](#add-message-and-notify-integration-steps)."]]