Descripción general
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La API de pases de la Billetera de Google permite que los socios ahorren
Rotación
códigos de barras a la Billetera de Google. Estos códigos de barras solo son válidos por un período breve
brindando seguridad adicional para reducir el riesgo
de tomar capturas de pantalla de códigos de barras. El
los códigos de barras se generan en el dispositivo de acuerdo con
RFC 6238, con el socio que proporciona la
clave secreta. Sin embargo, si un socio prefiere generar los códigos de barras por su cuenta, Google proporciona
de modo que los códigos de barras
puedan subirse por lotes a Google. Luego, estos códigos de barras
se transmitirán a los usuarios en donde funcionarán como rotaciones
de códigos de barras,
mostrar durante un período breve. Nos referimos a esta solución como una generada por socios
Rotar códigos de barras.
API de código de barras rotativas generado por socios
Los códigos de barras rotativos generados por el socio se crean con el mismo código de barras de rotación
. Solo el tipo es obligatorio, aunque también recomendamos crear un activador pequeño
conjunto de códigos de barras (que valen unos 10 minutos) y enviarlos en
initialRotatingBarcodeValues
El socio es responsable de garantizar
siempre un código de barras válido listo para el usuario, y initialRotatingBarcodeValues
permite
para que la siguiente llamada de carga por lotes sea asíncrona.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
Campo |
Descripción |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
Valores que se codificarán en el código de barras. Debes ingresar al menos un valor. Estas
el objetivo de los códigos de barras es cerrar la brecha entre el momento en que el usuario adquiere su pase por primera vez
cuando se realice la siguiente llamada de carga por lotes.
|
type |
enum (BarcodeType)
Obligatorio. Es el tipo de este código de barras.
Los valores aceptables son:
|
RotatingBarcodeValues
Campo |
Descripción |
startDateTime |
string
Fecha/hora en la que es válido el primer código de barras. Se rotarán los códigos de barras
usando periodMillis .
Esta es una fecha/hora de formato extendido ISO 8601, con desplazamiento.
|
values[] |
string
Los valores que se codificarán en el código de barras. Debes ingresar al menos un valor.
No hay una cantidad máxima de valores, pero ten en cuenta que el tamaño del cuerpo de la solicitud
no puede superar los 5 MB.
|
periodMillis |
number
La cantidad de tiempo durante la cual es válido cada código de barras.
|
Actualización por lotes de valores de códigos de barras
Después de crear el objeto RotatingBarcode, recomendamos subir el archivo
en códigos de barras, todos los días, hasta que caduque el pase del usuario. Esto se puede hacer con el
siguiente extremo de la API de REST.
Método: transitobject.uploadrotatingbarcodevalues
Sube valores de códigos de barras rotativos al objeto de transporte público al que hace referencia el ID de objeto determinado.
Solicitud HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
Parámetros de ruta
Parámetro |
Descripción |
resourceId |
string
Es el identificador único de un objeto.
|
Cuerpo de la solicitud
El cuerpo de la solicitud (que no puede superar los 5 MB) contiene una instancia de
RotatingBarcodeValues:
Método: transitobject.downloadrotatingbarcodevalues
Descarga valores de códigos de barras rotativos para el objeto de transporte público al que hace referencia el objeto determinado.
ID. Esto es útil si los socios desean verificar el lote más reciente.
Solicitud HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
Parámetros de ruta
Parámetro |
Descripción |
resourceId |
string
Es el identificador único de un objeto.
|
Mecanismos de resguardo
Ten en cuenta que si un RotatingBarcode no es válido, no tiene códigos de barras válidos para mostrar (se
que todavía no se subieron o que se usaron todos los códigos de barras actuales), un error
se mostrará al usuario.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-25 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]