Обзор

API Google Wallet Passes предоставляет партнерам возможность сохранять меняющиеся штрих-коды в Google Кошельке. Эти штрих-коды действительны только в течение короткого периода времени, что обеспечивает дополнительную безопасность и снижает риск создания снимков экрана штрих-кода. Штрих-коды генерируются на устройстве в соответствии со стандартом RFC 6238 , при этом партнер предоставляет секретный ключ. Однако, если партнер предпочитает создавать штрих-коды самостоятельно, Google предоставляет API, позволяющий пакетно загружать штрих-коды в Google. Эти штрих-коды затем будут передаваться на телефоны пользователей, где они будут действовать так же, как вращающиеся штрих-коды, отображаясь в течение короткого периода времени. Мы называем это решение вращающимися штрих-кодами, генерируемыми партнерами.

Созданный партнерами API вращающегося штрих-кода

Вращающиеся штрих-коды, созданные партнерами, создаются с использованием одного и того же объекта RotatingBarcode. Требуется только тип, хотя мы также рекомендуем создать небольшой стартовый набор штрих-кодов (около 10 минут) и отправить их в initialRotatingBarcodeValues ​​. Партнер несет ответственность за обеспечение того, чтобы для пользователя всегда был готов действительный штрих-код, а initialRotatingBarcodeValues ​​позволяет последующему вызову пакетной загрузки быть асинхронным.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Поле Описание
initialRotatingBarcodeValues

object ( RotatingBarcodeValues )

Значения для кодирования в штрих-коде. Требуется хотя бы одно значение. Эти первоначальные штрих-коды предназначены для устранения разрыва между тем, когда пользователь впервые получает свой пропуск, и когда выполняется последующий вызов пакетной загрузки.

type

enum ( BarcodeType )

Необходимый. Тип этого штрих-кода.

Приемлемые значения:

  • QR_CODE
  • PDF_417

Вращающиеся значения штрих-кода
Поле Описание
startDateTime

string

Дата/время, начиная с которого действителен первый штрих-код. Штрих-коды будут чередоваться с помощью periodMillis .

Это дата/время расширенного формата ISO 8601 со смещением.

values[]

string

Значения для кодирования в штрих-коде. Требуется хотя бы одно значение.

Максимальное количество значений не ограничено, но учтите, что размер тела запроса не может превышать 5 МБ.

periodMillis

number

Время, в течение которого действителен каждый штрих-код.

Пакетное обновление значений штрих-кода

После создания объекта RotatingBarcode мы рекомендуем загружать дневные штрих-коды каждый день, пока не истечет срок действия пропуска пользователя. Это можно сделать с помощью следующей конечной точки REST API.

Метод:transitobject.uploadrotatingbarcodevalues

Загружает чередующиеся значения штрих-кода в транзитный объект, на который ссылается данный идентификатор объекта.

HTTP-запрос

POST https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc eId}/uploadRotatingBarcodeValues

Параметры пути

Параметр Описание
resourceId

string

Уникальный идентификатор объекта.

Тело запроса

Тело запроса (размер которого не может превышать 5 МБ) содержит экземпляр RotatingBarcodeValues .

Метод:transitobject.downloadrotatingbarcodevalues

Загружает чередующиеся значения штрих-кодов для транзитного объекта, на который ссылается данный идентификатор объекта. Это полезно, если партнеры хотят проверить последнюю партию.

HTTP-запрос

GET https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do wnloadRotatingBarcodeValues?alt=media

Параметры пути

Параметр Описание
resourceId

string

Уникальный идентификатор объекта.

Резервные механизмы

Обратите внимание: если в противном случае действительный RotatingBarcode не имеет действительных штрих-кодов для отображения (они еще не загружены или все текущие штрих-коды были использованы), пользователю будет показано сообщение об ошибке.