Из этой статьи вы узнаете о типичных этапах взаимодействия с API, например добавлении класса, сохранении или обновлении объекта. Реализацией всех операций между браузером, вашим сервером и Google Pay API for Passes вы занимаетесь самостоятельно. Процессы работы с разными картами и билетами практически одинаковы. В качестве примера на диаграмме ниже представлен процесс взаимодействия с объектом LoyaltyObject.
Стандартный процесс работы 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.
Процесс работы 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.
На рисунке 3 нет стрелок между столбцами Your server (Ваш сервер) и Google server (Сервер Google). В этом заключается основное отличие метода запроса POST с JWT от метода ссылки на JWT и намерения. Для обновления информации о картах и билетах мы рекомендуем использовать связь от сервера к серверу.