Уведомления, инициированные партнером
Добавить сообщение и уведомить
Фон
После того, как пользователь добавит карту, вы можете отправить ему сообщение, связанное с этой картой, и убедиться, что он уведомлен об этом. При использовании API-запроса Add Message с message_type
, равным TEXT_AND_NOTIFY
происходит следующее:
- Элемент « Сообщение » добавляется на «обратную сторону пропуска» (он же « Шаблон сведений »), а пользователям отправляется push-уведомление при сохранении пропуска.
- После того, как пользователь нажмет на уведомление, откроется Google Wallet на лицевой стороне карты (т. н. вид карты), а в верхней части экрана пользователь увидит выноску с кнопкой «Просмотреть сообщение».
- Нажатие на выноску перенесет пользователя в конец карты, где выделены новые непрочитанные сообщения.
Некоторые соображения при отправке сообщений с уведомлениями пользователям
- Чтобы получать push-уведомления о сообщениях, у пользователей должны быть включены уведомления для их пропусков.
- Сообщения могут содержать URI вашего веб-сайта или приложения. Гиперссылки должны вести на веб-сайт или приложение, связанные с картой. Перенаправление пользователей на ссылки, не связанные с картой, является нарушением Политики приемлемого использования .
- Вы можете отправить не более 3 сообщений, запускающих push-уведомление, в течение 24 часов. Google может ограничить вашу квоту на доставку push-уведомлений, если сочтет, что вы рассылаете спам своим пользователям.
- Push-уведомления, которые пользователи видят на экране блокировки, контролируются Google Wallet.
- Методы UPDATE или PATCH можно использовать для редактирования или удаления данных сообщения с использованием обычного класса или конечной точки объекта.
Этапы интеграции
Если вы хотите уведомить пользователей о новом сообщении эмитента, добавленном с помощью API AddMessage, вам необходимо обновить AddMessageRequest так, чтобы сообщение , содержащее новый текст, имело тип сообщения 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 для добавления сообщения и уведомления в объекте Passes
… "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
// 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" }, …
Обработка исключений
Любая попытка отправить уведомление более трёх раз приведёт к ошибке QuotaExceededException . Дальнейшие обновления пропуска можно задать с помощью « TEXT » вместо « TEXT_AND_NOTIFY », как описано в разделе «Этапы интеграции» .
Уведомления поблизости
Эта функция будет показывать пользователям, которые включили уведомления и предоставили точный, постоянный доступ к приложению Google Wallet, push-уведомление с напоминанием о том, что они сохранили проездной, соответствующий их текущему местоположению.Этапы интеграции
Как использовать
Чтобы использовать эту функцию, необходимо добавить местоположения в классы и объекты. Вы можете добавить до 10 местоположений на класс и до 10 на объект. Используйте MerchantLocations
в определении класса или объекта. Вы можете добавить эти местоположения с помощью методов insert
, patch
или update
.
После добавления местоположений к классу или объекту Google будет отправлять пользователям уведомления, когда они находятся поблизости. Google определяет, насколько близко должен находиться пользователь и как долго ему нужно оставаться в этой области, прежде чем будет отправлено уведомление. Google также контролирует текст уведомления.
Пример LoyaltyClass с набором MerchantLocations:{ "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 }, ] }
Ожидаемое поведение
Пользователи должны получать закреплённые уведомления о своих картах, когда находятся в одном из указанных пунктов продаж. При нажатии на уведомление карта открывается в Google Wallet. Уведомление можно закрыть свайпом. Когда пользователь покидает пункт продаж, уведомление исчезает.