Чтобы посмотреть примеры использования, выберите категорию.
С Google Pay API for Passes вы можете использовать посадочные талоны для взаимодействия с пользователями. Из этого руководства вы узнаете, как это делать.
Чтобы клиенты могли сохранять посадочные талоны, используйте метод запроса POST с JWT или ссылки, содержащие JWT-сообщения. В этих случаях классы и объекты добавляются заранее.
Классы FlightClass и объекты FlightObject
Как и в случае с другими категориями карт в Google Pay API for Passes, информация о посадочных талонах сохраняется в двух структурах данных: FlightObject
и FlightClass
. В этом руководстве описано, как можно настроить их для посадочных талонов.
FlightClass
FlightClass
содержит данные об определенном рейсе, которые есть у всех пассажиров или группы пассажиров этого рейса. Например, к общим данным относится перевозчик, пункты отправления и назначения, номер рейса и время вылета. У всех пассажиров рейса эти данные в посадочном талоне будут совпадать.
FlightClass
может также содержать общие данные определенной группы пассажиров одного рейса. Например, можно создать три разных структуры FlightClass
для первого класса, бизнес-класса и экономкласса. В результате для каждой группы будут доступны разные поля. При этом три класса все равно будут содержать общую информацию о рейсе, маршруте и дате вылета.
FlightObject
Объект FlightObject
содержит информацию об определенном пассажире самолета в конкретный момент времени. Например, в объекте FlightObject
указано имя пассажира, номер места и штрихкод для посадки. Эти данные индивидуальны для каждого посадочного талона.
Информация, содержащаяся в FlightObject
, сохраняется в приложении Google Pay у пользователя.
Поддерживаемые страны
Список стран, в которых поддерживается сохранение посадочных талонов в Google Pay, приведен в Справочном центре. Рекомендуем размещать кнопку Сохранить в Google Pay только на странице покупки билета.
Примеры использования
В этом разделе описаны примеры использования, применимые только к посадочным талонам на самолет.
- Обновление информации в посадочных талонах
- Сохранение перелета с пересадками
- Создание кнопки для сохранения нескольких посадочных талонов
- Группировка посадочных талонов
- Настройка уведомлений о ближайших рейсах
- Настройка уведомлений об изменении информации о рейсе
- Действия с посадочными талонами, у которых истек срок действия
- Создание ссылки на сохраненный посадочный талон
- Добавление к сохраненному посадочному талону ссылки на стороннее приложение или сайт
Обновление информации в посадочных талонах
Иногда необходимо изменить сведения, указанные в посадочном талоне, уже после его сохранения пользователем. Сделать это можно с помощью REST API. Если изменения затрагивают только классы, можно также использовать Google Pay Merchant Center. Обновление информации в посадочном талоне – один из важных аспектов взаимодействия с клиентом.
Чтобы обновить данные всех посадочных талонов для определенного рейса (например, запланированное время вылета), необходимо только изменить с помощью метода update
или patch
класс FlightClass
или использовать Google Pay Merchant Center.
Google перенесет изменения во все объекты FlightObject
, связанные с обновленным классом FlightClass
. Это относится ко всем полям, определенным на уровне FlightClass
.
Чтобы обновить отдельный посадочный талон (например, указать другой номер места), нужно изменить с помощью метода update
или patch
только один объект FlightObject
. Это относится ко всем полям, определенным на уровне FlightObject
.
Кроме того, не всегда получается предугадать, когда произойдут изменения или когда придется отправить запрос update
или patch
. В этом случае стоит периодически выполнять запросы update
или patch
для каждого класса и объекта. Посмотреть все классы в аккаунте отдельного продавца можно с помощью метода list
для FlightClass
.
Чтобы посмотреть все объекты определенного класса, вызовите метод list
для FlightObject
.
Из каких источников поступают новые данные о рейсе
Если время, заданное значением class.localScheduledDepartureDateTime
, приходится на сутки перед исправлением или на двое суток после него, пользователи увидят уведомление о статусе рейса. В этом случае в Google Pay будут показываться сведения, указанные или в сервисе Google Авиабилеты, или на посадочном талоне. Выбор источника зависит от следующих условий:
-
Информация из Google Авиабилетов используется, если не задано значение
class.localEstimatedOrActualDepartureDateTime
. Значениеclass.flightStatus
при этом не учитывается.Например, если рейс задерживается, то на главной странице Google Pay будет отображаться новое время вылета. Та же информация появится и на вкладке "Карты".
- Если вы указали значение
class.localEstimatedOrActualDepartureDateTime
, но опустили значениеclass.flightStatus
, то информация о задержке рейса будет определена исходя из указанного вами времени. Статус рейса при этом указывается с учетом следующих условий:- Если
class.localEstimatedOrActualDepartureDateTime
позжеclass.localScheduledDepartureDateTime
, пользователи увидят уведомление о задержке рейса. - Если
class.localEstimatedOrActualDepartureDateTime
не позжеclass.localScheduledDepartureDateTime
, уведомление об изменении статуса не появится. Вместо него будет отображаться информация о рейсе.
- Если
Если вы не хотите, чтобы сервис "Google Авиабилеты" использовался в качестве источника информации о рейсах, необходимо задать значения flightStatus
, localScheduledDepartureDateTime
и localEstimatedOrActualDepartureDateTime
для FlightClass
. Тогда будут отображаться только сведения, указанные вами. Также информация из этого сервиса не используется, если для FlightClass
вы указываете код аэропорта в соответствии с системой ИКАО, а не ИАТА.
При любых изменениях пользователи получают push-уведомления. Узнать об этом больше можно в разделе Настройка уведомлений об изменении информации о рейсе.
Сохранение полета с пересадками
Часто маршрут может состоять из нескольких перелетов. Для таких маршрутов авиакомпании предоставляют несколько посадочных талонов (по одному для каждого перелета). В инструменте Google Pay API for Passes действует тот же принцип: один объект FlightObject
для каждого перелета.
Например, для двух пассажиров, летящих из Сан-Франциско в Тайвань с пересадкой в Лос-Анджелесе, нужны два класса FlightClass
и четыре объекта FlightObject
.
FlightClass A (SFO – LAX: авиакомпания, номер рейса, время отправления) |
FlightClass B (LAX – TPE: авиакомпания, номер рейса, время отправления) |
|
---|---|---|
Пассажир Q | FlightObject: id_01 |
FlightObject: id_02 |
Пассажир Z | FlightObject: id_03 |
FlightObject: id_04 |
Каждое из этих полей содержит информацию из одного посадочного талона. У пассажиров Q и Z было бы по два бумажных посадочных талона.
Создание кнопки для сохранения нескольких посадочных талонов
Чтобы пользователи могли сохранить в приложении сразу несколько посадочных талонов, можно добавить ссылку или кнопку Сохранить в Google Pay. Это можно сделать с помощью веб-токена JSON (JWT).
Веб-токен JWT должен быть представлен в одном из двух форматов:
- с использованием заранее добавленных вами классов и объектов;
- с использованием только ресурсов классов и объектов, которые полностью определены веб-токеном JWT.
Посмотреть, как создать кнопку для сохранения нескольких талонов, можно в этой статье.
Подробнее о работе над элементами интерфейса, связанными с посадочными талонами, написано здесь.
Группировка посадочных талонов
Некоторые функции работают по-разному в зависимости от того, применяются ли они к отдельным объектам или к группе объектов. Например, дополнительная настройка требуется для уведомлений о статусе рейса или для группировки сохраненных посадочных талонов в пользовательском интерфейсе.
Объекты FlightObject
считаются группой, только когда у них совпадают все перечисленные ниже свойства.
- Идентификатор Issuer ID (из сервиса Google Pay API for Passes Merchant Center)
class.flightHeader.carrier.carrierIataCode
class.flightHeader.flightNumber
class.localScheduledDepartureDateTime
object.reservationInfo.confirmationCode
Если два объекта FlightObject
отличаются друг от друга по какому-либо из этих свойств, они не считаются группой.
Настройка уведомлений о ближайших рейсах
Google Pay может отправить уведомление пользователю за три часа до времени отправления. Время отправления определяется значением class.localScheduledDepartureDateTime
.
Чтобы получать такие уведомления, пользователю необходимо зайти в раздел Настройки > Уведомления и включить Уведомления о картах и билетах.
Уведомления будут показываться на панели уведомлений и на заблокированном экране (если пользователь разрешил это).
Все уведомления имеют следующий формат, изменить который нельзя:
Boarding pass for your flight to class.destination.airportIataCode
Expand for more options
Если нажать на такое уведомление, устройство будет разблокировано, откроется приложение Google Pay и на экране появится посадочный талон.
Если у пользователя сохранены посадочные талоны на разные рейсы, то откроется талон на ближайший. Если несколько сохраненных талонов объединены в группу, то после нажатия на уведомление появится только один из них. Чтобы увидеть другие талоны, нужно провести по экрану влево или вправо.
Уведомление исчезнет автоматически, но не сразу после открытия, а через 60 минут после времени, указанного в class.localScheduledDepartureDateTime
.
Настройка уведомлений об изменении информации о рейсе
Если у пользователя сохранен хотя бы один посадочный талон, он может получать push-уведомления об изменении информации о рейсе. Для этого должны быть соблюдены определенные условия.
Терминал и выход на посадку
Если вы измените значение class.origin.terminal
или class.origin.gate
, то пользователь получит уведомление об этом при соблюдении следующего условия:
- Осталось меньше трех часов до запланированного времени вылета, указанного в
class.localScheduledDepartureDateTime
.
Уведомление будет выглядеть следующим образом: "Выход на посадку на рейс авиакомпании "Sample Airlines" поменялся на A1". Изменить текст уведомления нельзя.
Время посадки и время вылета
Если вы изменили значение class.localBoardingDateTime
или class.localEstimatedOrActualDepartureDateTime
, то пользователь получит уведомление об этом при соблюдении следующих условий:
- Осталось меньше 24 часов до запланированного времени вылета, указанного в
class.localScheduledDepartureDateTime
. - Время меняется на 10 или более минут.
Уведомление будет выглядеть следующим образом: "Авиакомпания "Sample Airlines" изменила время посадки на ваш рейс. Новое время: 18:00". Изменить текст уведомления нельзя.
Действия с посадочными талонами, у которых истек срок действия
На вкладке "Карты" в приложении Google Pay есть раздел "Истек срок действия". В нем собраны билеты, карты и посадочные талоны, которые были помещены в архив или стали неактивны. Посадочные талоны перемещаются в этот раздел, если верно хотя бы одно из следующих условий:
-
Прошло более 24 часов со времени, указанного в
class.localScheduledDepartureDateTime
илиclass.localEstimatedOrActualDepartureDateTime
. Посадочный талон перемещается в раздел "Истек срок действия" в течение 24—48 часов со времени, указанного вclass.localScheduledDepartureDateTime
илиclass.localEstimatedOrActualDepartureDateTime
. -
Истек срок, указанный в
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 } } } } … … … }