Из этой статьи вы узнаете о типичных этапах взаимодействия с API, например добавлении класса, сохранении или обновлении объекта. Реализацией всех операций между браузером, вашим сервером и Google Pay API for Passes вы занимаетесь самостоятельно. Процессы работы с разными картами и билетами практически одинаковы. В качестве примера на диаграмме ниже представлен процесс взаимодействия с объектом LoyaltyObject.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/pay/passes/images/LoyaltyFlows.png?authuser=6&hl=ru)
Стандартный процесс работы API с кнопками JavaScript и ссылками на JWT
Этот процесс изображен на диаграмме выше. Также вы можете ознакомиться с его описанием:
- Продавец создает
LoyaltyClass
карты постоянного клиента. - Сервер определяет переменные
LoyaltyClass
. - Сервер отправляет запрос
POST
на добавлениеLoyaltyClass
на сервер Google Pay API. - По запросу сервера сервис создает веб-токен JSON для объекта
LoyaltyObject
в определенном классеLoyaltyClass
. Этот объект представляет собой карту постоянного клиента конкретного пользователя. - Ваш сервер использует JWT для добавления кнопки Сохранить в Google Pay (S2GP).
- На сайтах размещайте кнопку JavaScript.
- Для электронных писем, SMS и оригинальных приложений используйте ссылку JWT с кнопкой "Сохранить в Google Pay".
- Пользователь нажимает кнопку Сохранить в Google Pay на сайте, в электронном письме, оригинальном приложении или SMS от продавца карты постоянного клиента.
- Пользователь попадает на целевую страницу с предложением сохранить объект
LoyaltyClass
. Объект для сохранения отображается на целевой странице согласно настройке JWT. Если пользователь нажал кнопку в оригинальном приложении, ему будет предложено сохранить объект в Google Pay. - Затем он нажимает кнопку Сохранить в Google Pay на ресурсе продавца, чтобы добавить объект
LoyaltyObject
в приложение. - Объект
LoyaltyObject
добавляется на сервер Google, а затем в приложение Google Pay. ОбъектLoyaltyObject
получает название "Карта постоянного клиента". - Продавец обновляет информацию о карте.
- Продавец создает запрос
GET
дляLoyaltyObject
, используяObject.id
. - Затем продавец обновляет объект
LoyaltyObject
. - Продавец создает запрос
PUT
илиPATCH
, чтобы добавить обновленный объектLoyaltyObject
на сервер Google Pay API for Passes. - Объект
LoyaltyObject
помещается в приложение Google Pay.
Сокращенный вариант ссылки на JWT
В браузерах данные усекаются, поэтому JSON-токены в ссылках не должны превышать 1800 символов. Если соблюдать лимит не получается, советуем сначала добавить класс и объект, тогда в JWT будет только поле object id.
На диаграмме ниже показан процесс работы с API, который позволяет добавить кнопку "Сохранить в Google Pay" в электронное письмо или SMS.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/pay/passes/images/skinny-jwt-variation.png?authuser=6&hl=ru)
Процесс работы API с методом запроса POST с JWT
Мы понимаем, что зачастую непросто внедрить систему, благодаря которой классы создаются до сохранения объектов. Однако если этого не сделать, веб-токены JSON наверняка превысят лимит в 1800 символов. Именно поэтому лучше использовать метод запроса POST с JWT. В таком случае из вашего приложения можно будет сохранять объекты, для которых создается большое количество классов, например, билеты на мероприятия, посадочные талоны и не только.
Ниже представлены этапы работы с классом flight:
- Ваш сервер создает JWT для ресурсов
FlightObject
иFlightClass
. Оба типа ресурсов определяются в коде JSON, при этомFlightObject
ссылается наFlightClass
. - С вашего сервера JWT отправляется в клиентское приложение с кнопкой Сохранить в Google Pay. Обратите внимание, что она должна соответствовать правилам фирменного оформления Google.
- Пользователь нажимает в вашем приложении кнопку "Сохранить в Google Pay".
- Создается запрос
POST
, который отправляется конечной точке JWT. Это позволяет добавить идентификаторы класса и объекта. Если идентификаторы класса и объекта в системе уже существуют, они не будут в нее добавлены повторно. О том, как их можно изменить, написано в нашем руководстве. Если вы попытаетесь добавить идентификаторы, которые уже сохранены, сообщение об ошибке показано не будет. - Появляется URI-ответ, который доступен пользователю: так он сможет сохранить посадочный талон. URI действует в течение недели после появления запроса.
- Создается запрос
Чтобы внедрить API, используйте метод запроса POST с JWT.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/pay/passes/images/jwt-post-request-flow.png?authuser=6&hl=ru)
На рисунке 3 нет стрелок между столбцами Your server (Ваш сервер) и Google server (Сервер Google). В этом заключается основное отличие метода запроса POST с JWT от метода ссылки на JWT и намерения. Для обновления информации о картах и билетах мы рекомендуем использовать связь от сервера к серверу.