API Google Wallet Passes предоставляет партнерам возможность указать конечную точку для активации транзитного билета. При необходимости активации для пользователя будет отображаться кнопка «Активировать», при нажатии которой произойдет вызов указанной конечной точки с параметрами, описанными ниже. Конечная точка должна убедиться, что пропуск имеет действительную информацию о погашении (штрих-код или визуальный осмотр) перед возвратом, после чего пропуск в кошельке пользователя будет обновлен для отображения информации о погашении. Обратите внимание, что до активации любая существующая информация о погашении не будет отображаться.
API активации
Конечная точка активации указывается в API с помощью activationOptions
в транзитном классе . Партнер несет ответственность за поддержание рабочей конечной точки активации с разумной задержкой.
activationOptions: { activationUrl: string }
Поле | Описание |
---|---|
activationUrl | URL-адрес партнерской конечной точки, которая будет вызываться для запросов на активацию. URL-адрес должен размещаться по протоколу HTTPS, а файл robots.txt должен обеспечивать доступ к пути URL-адреса для UserAgent:Google-Valuables. |
Состояние активации сохраняется в объекте с помощью поля activationStatus
. Допустимые статусы включают NOT_ACTIVATED
и ACTIVATED
. Конечная точка активации должна обновить объект, присвоив ему статус ACTIVATED
, а также убедиться, что объект имеет действительную информацию о погашении, такую как штрих-код или параметры визуального осмотра. Поле deviceContext
может использоваться для закрепления устройства .
activationStatus: enum (ActivationStatus), deviceContext: { deviceToken: string }, hasLinkedDevice: boolean
Поле | Описание |
---|---|
activationStatus | Статус активации данного транзитного объекта. Этот статус изменит представление заявки и позволит пользователям выполнять действия; например. кнопка «Активировать» будет отображаться в деталях заявки, если для нее установлено значение Приемлемые значения:
|
deviceContext | Контекст устройства, с которым можно связать объект. Если установлено, информация о погашении будет возвращена только на данное устройство. |
hasLinkedDevice | Связан ли этот объект в настоящее время с одним устройством. |
Поле | Описание |
---|---|
deviceToken | Если установлено, информация о погашении будет возвращена на данное устройство только после активации объекта. Его нельзя использовать в качестве стабильного идентификатора для отслеживания устройства пользователя. Он может меняться в разных проходах для одного и того же устройства или даже в разных активациях для одного и того же устройства. При установке этого вызывающие стороны также должны установить Обратите внимание, что |
Закрепление устройства
Закрепление устройства — это функция, которая позволяет пользователю активировать билет на одном устройстве и отображать информацию об использовании билета только на этом устройстве. Это отличается от multipleDevicesAndHoldersAllowedStatus
ONE_USER_ONE_DEVICE
, который позволяет отображать билет только на одном устройстве. При закреплении устройства рекомендуется использовать статус ONE_USER_ALL_DEVICES
.
Перед активацией пользователь может увидеть билет и кнопку активации на любом своем устройстве. После активации и прикрепления к устройству на закрепленном устройстве будет отображаться информация о погашении, а на других устройствах будет отображаться кнопка активации, позволяющая пользователю перенести билет на другое устройство. Если перемещение билета не является желаемой функцией, а активация на любом устройстве — желательно, то можно обновить билет во время активации до ONE_USER_ONE_DEVICE
вместо использования закрепления устройства.
Чтобы реализовать закрепление устройства, объект должен быть обновлен с помощью поля deviceToken
, которое получено с параметрами активации , а также установить для hasLinkedDevice
значение true в том же вызове API. При желании билет можно затем отсоединить от устройства, установив для hasLinkedDevice
значение false в будущем вызове API.
Параметры активации
Запрос к конечной точке активации будет содержать следующие параметры.
Пример JSON:
{ classId: “123.classId”, objectIds: [ “123.objectId” ], expTimeMillis: 1669671940735, eventType: “activate”, nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”, deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002” }
Идентификатор | Описание |
---|---|
classId | Полный идентификатор класса. Использует следующий формат: <issuer_id.class_id> |
objectIds | Полный массив идентификаторов объектов в следующем формате: <issuer_id.object_id> |
expTimeMillis | Срок действия в миллисекундах с момента EPOCH. По истечении срока действия сообщение необходимо считать недействительным. |
eventType | Всегда "activate" . |
nonce | Nonce для отслеживания дублирующих поставок. |
deviceContext | Уникальный идентификатор, сгенерированный Google и представляющий устройство, на котором пользователь выполняет действие. Этот идентификатор следует использовать при обновлении, привязывающем объект к устройству. Этот идентификатор может не быть постоянным для будущих запросов от данного устройства. |