Обзор
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
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 ) Необходимый. Тип этого штрих-кода. Приемлемые значения: |
Вращающиеся значения штрих-кода Поле | Описание | 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 не имеет действительных штрих-кодов для отображения (они еще не загружены или все текущие штрих-коды были использованы), пользователю будет показано сообщение об ошибке.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-25 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-25 UTC."],[[["\u003cp\u003eGoogle Wallet now supports Partner-Generated Rotating Barcodes for enhanced security, allowing partners to generate and upload time-limited barcodes directly.\u003c/p\u003e\n"],["\u003cp\u003ePartners can integrate Rotating Barcodes using the \u003ccode\u003erotatingBarcode\u003c/code\u003e object within the Google Wallet Passes API, specifying the barcode type and initial values.\u003c/p\u003e\n"],["\u003cp\u003eThe API provides methods for batch uploading (\u003ccode\u003etransitobject.uploadrotatingbarcodevalues\u003c/code\u003e) and downloading (\u003ccode\u003etransitobject.downloadrotatingbarcodevalues\u003c/code\u003e) barcode values for ongoing updates.\u003c/p\u003e\n"],["\u003cp\u003eTo ensure continuous barcode availability, it is recommended to upload a day's worth of barcodes daily until a user's pass expires, utilizing the \u003ccode\u003einitialRotatingBarcodeValues\u003c/code\u003e for a smooth initial experience.\u003c/p\u003e\n"],["\u003cp\u003eIf a Rotating Barcode lacks valid values, an error message will be displayed to the user, highlighting the importance of timely barcode updates.\u003c/p\u003e\n"]]],["The Google Wallet Passes API enables partners to use Partner-Generated Rotating Barcodes, enhancing security by having barcodes valid for a short time. Partners can define a `RotatingBarcode` object specifying the barcode `type` and `initialRotatingBarcodeValues`. They then batch upload barcode values using the `transitobject.uploadrotatingbarcodevalues` API endpoint and should upload a day's worth of barcodes each day. Barcode values can be downloaded via `transitobject.downloadrotatingbarcodevalues` for verification. If no valid barcodes are available, an error message is shown.\n"],null,["# Overview\n\nThe Google Wallet Passes API provides the ability for partners to save\n[Rotating\nBarcodes](/wallet/tickets/transit-passes/qr-code/resources/rotating-barcodes) to the Google Wallet. These barcodes are only valid for a short period of time,\nproviding additional security to reduce the risk of barcode screenshotting. The\nbarcodes are generated on device in accordance with\n[RFC 6238](https://www.rfc-editor.org/rfc/rfc6238), with the partner providing the\nsecret key. However, if a partner would rather generate the barcodes themselves, Google provides\nan API such that barcodes can be batch uploaded to Google. These barcodes will then\nbe passed through to users' phones, where they will act just like Rotating Barcodes,\ndisplaying for a short period of time. We refer to this solution as Partner-Generated\nRotating Barcodes.\n\nPartner-Generated Rotating Barcode API\n--------------------------------------\n\nPartner-Generated Rotating Barcodes are created using the same RotatingBarcode\nobject. Only the type is required, although we also recommend creating a small, starter\nset of barcodes (\\~10 minutes worth), and sending them in\n`initialRotatingBarcodeValues`. The partner is responsible for ensuring that there is\nalways a valid barcode ready for the user, and `initialRotatingBarcodeValues` allows\nthe subsequent batch upload call to be asynchronous. \n\n```gdscript\n rotatingBarcode {\n initialRotatingBarcodeValues: object (RotatingBarcodeValues),\n type: enum (BarcodeType),\n }\n```\n\n| Field | Description |\n|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `initialRotatingBarcodeValues` | `object (`[RotatingBarcodeValues](#RotatingBarcodeValues)`)` The values to encode in the barcode. At least one value is required. These initial barcodes are meant to bridge the gap between when the user first acquires their pass, and when the subsequent batch upload call is made. |\n| `type` | `enum (`[BarcodeType](/wallet/tickets/transit-passes/qr-code/rest/v1/BarcodeType)`)` Required. The type of this barcode. Acceptable values are: - `QR_CODE` - `PDF_417` \u003cbr /\u003e |\n\nRotatingBarcodeValues\n\n| Field | Description |\n|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `startDateTime` | `string` The date/time the first barcode is valid from. Barcodes will be rotated through using `periodMillis`. This is an ISO 8601 extended format date/time, with an offset. |\n| `values[]` | `string` The values to encode in the barcode. At least one value is required. There is no maximum number of values, but note that the size of the request body cannot exceed 5MB. |\n| `periodMillis` | `number` The amount of time each barcode is valid for. |\n\nBatch updating barcode values\n-----------------------------\n\nAfter the RotatingBarcode object has been created, we recommend uploading a day's\nworth of barcodes, every day, until the user's pass expires. This can be done with the\nfollowing REST API endpoint.\n\n### Method: transitobject.uploadrotatingbarcodevalues\n\nUploads rotating barcode values to the transit object referenced by the given object ID.\n\n#### HTTP request\n\n`POST\nhttps://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc\neId}/uploadRotatingBarcodeValues`\n\n#### Path parameters\n\n| Parameter | Description |\n|--------------|-----------------------------------------------|\n| `resourceId` | `string` The unique identifier for an object. |\n\n#### Request body\n\nThe request body (which cannot exceed 5MB) contains an instance of\n[RotatingBarcodeValues](#RotatingBarcodeValues).\n\n### Method: transitobject.downloadrotatingbarcodevalues\n\nDownloads rotating barcode values for the transit object referenced by the given object\nID. This is useful if partners want to verify the latest batch.\n\n#### HTTP request\n\n`GET\nhttps://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do\nwnloadRotatingBarcodeValues?alt=media`\n\n#### Path parameters\n\n| Parameter | Description |\n|--------------|-----------------------------------------------|\n| `resourceId` | `string` The unique identifier for an object. |\n\nFallback mechanisms\n-------------------\n\nNote that if an otherwise-valid RotatingBarcode has no valid barcodes to display (they haven't been uploaded yet, or all the current barcodes have been used), an error message will be shown to the user."]]