Примеры использования

Чтобы посмотреть примеры использования, выберите категорию.


С Google Pay API for Passes вы можете использовать подарочные карты для взаимодействия с пользователями. Прочитайте это руководство, чтобы лучше понять, как работают сохраненные подарочные карты.

В этом разделе описаны примеры использования, применимые только к подарочным картам.

.

Обновление информации в картах

Иногда информация, указанная в карте, может меняться после ее сохранения. Обновить эти сведения для пользователей можно с помощью REST API. Если изменения затрагивают только класс карты, можно также использовать Google Pay Merchant Center. Обновление информации в подарочной карте– один из важных аспектов взаимодействия с клиентом.

Чтобы обновить данные во всех картах (например, заменить логотип), необходимо изменить только GiftCardClass. Для этого используйте метод update или patch. Также можно воспользоваться Google Pay Merchant Center. Google перенесет изменения во все объекты GiftCardObject, связанные с обновленным GiftCardClass. Это относится ко всем полям, определенным на уровне GiftCardClass.

Чтобы обновить отдельную карту (например, указать другой баланс подарочной карты), нужно изменить с помощью метода update или patch только один объект GiftCardObject. Это относится ко всем полям, определенным на уровне GiftCardObject.

Кроме того, не всегда получается предугадать, когда произойдут изменения или когда придется отправить запрос update или patch. В этом случае стоит периодически выполнять запросы update или patch для каждого класса и объекта. Просмотреть все классы в аккаунте отдельного продавца можно с помощью метода GiftCardClass list. Чтобы посмотреть все объекты определенного класса, вызовите метод GiftCardObject list.

Сканирование в приложении Google Pay

Пользователи могут добавить подарочную карту в приложении Google Pay, просканировав ее или введя данные вручную. Инструмент Google Pay API for Passes создаст объект GiftCardObject, который не будет ссылаться на ранее определенный класс GiftCardClass. Создавать новый объект или класс вручную не потребуется. Однако объект GiftCardObject, созданный с помощью Google Pay API for Passes, обновить нельзя, поскольку он статический.

Уведомления на основе местоположения

Сервисы Google могут активировать уведомления в зависимости от объектов, которые сохранил клиент, и расстояния до указанного вами адреса.

Информацию о местоположении можно добавить двумя способами.

  1. При создании аккаунта Google Pay API for Passes Merchant Center используется информация о местоположении из Google Карт.
  2. Координаты можно добавить в объект или класс, используя 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). Обнаруженные места можно просматривать по отдельности.

Чтобы получать уведомления на основе местоположения, пользователь должен включить службы определения местоположения на устройстве и активировать Специальные предложения в настройках уведомлений приложения 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
              }
            }
    }
  }
  …
  …
  …
}