Чтобы посмотреть примеры использования, выберите категорию.
С Google Pay API for Passes вы можете использовать подарочные карты для взаимодействия с пользователями. Из этого руководства вы узнаете, как это делать.
В этом разделе описаны примеры использования, применимые только к подарочным картам.
- Обновление информации в подарочных картах
- Сканирование в приложении Google Pay
- Настройка уведомлений с учетом местоположения
- Действия с подарочными картами, у которых истек срок действия
- Создание ссылки на сохраненную подарочную карту
- Добавление к сохраненной подарочной карте ссылки на стороннее приложение или сайт
Обновление информации в подарочных картах
Иногда необходимо изменить сведения, указанные на карте, уже после ее сохранения пользователем. Сделать это можно с помощью REST API. Если изменения затрагивают только классы, можно также использовать Google Pay Merchant Center. Обновление информации на карте – один из важных аспектов взаимодействия с клиентом.
Чтобы обновить данные на всех картах (например, заменить логотип), необходимо только изменить с помощью метода update
или patch
класс GiftCardClass
или использовать Google Pay Merchant Center.
Google перенесет изменения во все объекты GiftCardObject
, связанные с обновленным классом GiftCardClass
. Это относится ко всем полям, определенным на уровне GiftCardClass
.
Чтобы обновить отдельную карту (например, указать другой баланс подарочной карты), нужно изменить с помощью метода update
или patch
только один объект GiftCardObject
. Это относится ко всем полям, определенным на уровне GiftCardObject
.
Кроме того, не всегда получается предугадать, когда произойдут изменения или когда придется отправить запрос update
или patch
. В этом случае стоит периодически выполнять запросы update
или patch
для каждого класса и объекта. Посмотреть все классы в аккаунте отдельного продавца можно с помощью метода GiftCardClass
для list
.
Чтобы посмотреть все объекты определенного класса, вызовите метод list
для GiftCardObject
.
Сканирование в приложении Google Pay
Пользователи могут добавить подарочную карту в приложении Google Pay, просканировав ее или введя данные вручную. Инструмент Google Pay API for Passes создаст объект GiftCardObject
, который не будет ссылаться на ранее определенный класс GiftCardClass
. Создавать новый объект или класс вручную не потребуется.
Однако объект GiftCardObject
, созданный с помощью Google Pay API for Passes, обновить нельзя, поскольку он статический.
Настройка уведомлений с учетом местоположения
Сервисы Google могут активировать уведомления в зависимости от объектов, которые сохранил клиент, и расстояния до указанного вами адреса.
Информацию о местоположении можно добавить двумя способами.
- При создании аккаунта Google Pay API for Passes Merchant Center используется информация о местоположении из Google Карт.
- Координаты можно добавить в объект или класс, используя REST API.
Инструкции о добавлении координат в объекты или классы находятся в разделе Использование REST API для добавления информации о местоположении.
Концепция геозонирования
Используя алгоритмы и информацию о местоположении из Google Карт, инструменты Google могут определить, когда пользователь находится в магазине или рядом с ним. При этом обнаруживаются любые классы и объекты, созданные с использованием аккаунта Google Pay API for Passes Merchant Center.
Алгоритм учитывает данные GPS, Wi-Fi, Bluetooth, информацию о передвижении и времени остановок, а также другие факторы. Когда пользователь находится рядом с определенным адресом, активируется уведомление с учетом местоположения.
Если координаты были введены в Object
вручную, уведомление с учетом местоположения активируется на расстоянии 150 метров от нужного места.
Частота уведомлений и учет предпочтений пользователя
Пользователь может получить не более четырех уведомлений в день.
Если в геозоне находится несколько сохраненных объектов, отображается одно уведомление с каруселью (на каждый аккаунт Google Pay API for Passes Merchant Center). Обнаруженные места можно просматривать по отдельности.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/pay/passes/images/geofenced-notification-example.png?authuser=7&hl=ru)
Чтобы получать уведомления с учетом местоположения, пользователь должен включить геолокацию на устройстве и Обновления о картах и билетах в настройках уведомлений приложения Google Pay.
Использование REST API для добавления информации о местоположении
Вы можете задать несколько местоположений (значений широты и долготы) в классах и объектах. Сервисы Google сверяют текущее местоположение устройства со списком мест, связанных с классом или объектом, и отправляют уведомление пользователю в тот момент, когда он находится в 150 метрах от нужного адреса. Ниже приведены примеры кода, в которых показано, как можно задать местоположения в классах и объектах.
Ресурс
{ ... //Class or Object content "locations": [{ "kind": "walletobjects#latLongPoint", "latitude": 37.422087, "longitude": -161446 }, { "kind": "walletobjects#latLongPoint", "latitude": 37.429379, "longitude": -121.12272999999999 }, { "kind": "walletobjects#latLongPoint", "latitude": 37.333646, "longitude": -122.884853 }] }
Java
List<LatLongPoint> locations = new ArrayList<LatLongPoint>(); locations.add(new LatLongPoint().setLatitude(37.422087).setLongitude( -122.161446)); locations.add(new LatLongPoint().setLatitude(37.429379).setLongitude( -121.12272999999999)); locations.add(new LatLongPoint().setLatitude(37.333646).setLongitude( -122.884853)); yourClassOrObject.setLocations(locations);
PHP
$locations = array( array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.442087, 'longitude' => -122.161446 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.429379, 'longitude' => -122.12272999999999 ), array( 'kind' => 'walletobjects#latLongPoint', 'latitude' => 37.333646, 'longitude' => -121.884853 ) );
Python
offer_class_object = { # class or object content 'locations': [{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.442087, 'longitude': -122.161446 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.429379, 'longitude': -122.12272999999999 },{ 'kind': 'walletobjects#latLongPoint', 'latitude': 37.333646, 'longitude': -121.884853 }] }
Действия с подарочными картами, у которых истек срок действия
На вкладке "Карты" в приложении Google Pay есть раздел "Истек срок действия". В нем собраны билеты, карты и посадочные талоны, которые были помещены в архив или стали неактивны. Карты перемещаются в этот раздел, если верно хотя бы одно из следующих условий:
-
Истек срок, указанный в
object.validTimeInterval.end.date
. Карта перемещается в раздел "Истек срок действия" в течение 24 часов после даты, указанной вobject.validTimeInterval.end.date
. - Для
object.state
указано одно из следующих значений:Expired
,Inactive
илиCompleted
.
Создание ссылки на сохраненную подарочную карту
Чтобы создать ссылку на сохраненную подарочную карту, нужно добавить в нее идентификатор objectId
.
Используйте следующий шаблон:
https://pay.google.com/gp/v/object/{<issuerId>}.{<ObjectId>}
Подарочную карту можно будет открыть в приложении Google Pay и в браузере.
Добавление к сохраненной подарочной карте ссылки на стороннее приложение или сайт
Вы можете добавить ссылку на свой сайт или приложение непосредственно на подарочную карту. Ссылка будет отображаться в Google Pay под названием карты, к которой она относится. Эта функция доступна для всех типов карт и билетов Google Pay.
Как запросить доступ
Запросить доступ к функции можно через эту форму. При этом следует помнить следующее:
- В форме вам нужно указать ваш идентификатор эмитента.
- В поле Issue type (Тип проблемы) следует выбрать вариант Technical/API Integration (Технические проблемы/интеграция с API).
- Далее выберите Link your app or website below the Google Pay pass (Ссылка на сайт или приложение под картой в Google Pay).
Как добавить ссылку
URI приложения или сайта указывается в appLinkData
для определенной карты в Google Pay. URI можно добавлять в любом формате, но мы рекомендуем использовать динамическую ссылку.
Посмотрите пример кода ниже. В нем приводится формат и контекст для appLinkData
.
{ "id": string, "classId": string, … … … "appLinkData": { "androidAppLinkInfo": { "appLogoImage": { "sourceUri": { "uri": string } }, "title": { "defaultValue": { "language": string, "value": string } }, "description": { "defaultValue": { "language": string, "value": string } }, "appTarget": { "targetUri": { "uri": string, "description": string } } } } … … … }