Visão geral
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Com a API Google Wallet Passes, os parceiros podem salvar
Girar
códigos de barras à Carteira do Google. Esses códigos de barras são válidos apenas por um curto período de tempo,
fornecendo mais segurança para reduzir o risco de capturas de tela de códigos de barras. A
códigos de barras são gerados no dispositivo de acordo com
RFC 6238, com o parceiro que fornece o
chave secreta. No entanto, se o parceiro preferir gerar os códigos de barras, o Google fornece
uma API para que os códigos de barras
possam ser enviados em lote ao Google. Esses códigos de barras
ser repassada aos usuários celulares, que atuam como códigos de barras rotativos,
exibidos por um curto período de tempo. Chamamos essa solução de Gerada pelo parceiro.
Códigos de barras rotativos.
API Partner-Generated Rotating Barcode
Os códigos de barras rotativos gerados pelo parceiro são criados com o mesmo RotatingBarcode
objeto. Somente o tipo é obrigatório, mas também recomendamos criar uma pequena ativação
código de barras (cerca de 10 minutos) e enviando-os
initialRotatingBarcodeValues
: O parceiro é responsável por garantir que haja
sempre um código de barras válido pronto para o usuário, e initialRotatingBarcodeValues
permite
a chamada de upload em lote subsequente seja assíncrono.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
Campo |
Descrição |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
Valores a serem codificados no código de barras. Ao menos um valor é obrigatório. Essas inicializações
o objetivo dos códigos de barras é preencher a lacuna entre o momento em que o usuário adquire o cartão e
quando a próxima chamada de upload em lote for feita.
|
type |
enum (BarcodeType)
Obrigatório. O tipo do código de barras.
Os valores aceitáveis são:
|
RotatingBarcodeValues
Campo |
Descrição |
startDateTime |
string
A data/hora a partir da qual o primeiro código de barras é válido. Os códigos de barras serão girados
usando periodMillis .
É uma data/hora em formato estendido ISO 8601, com compensação.
|
values[] |
string
Os valores a serem codificados no código de barras. Ao menos um valor é obrigatório.
Não há um número máximo de valores, mas observe que o tamanho do corpo da solicitação
não pode exceder 5 MB.
|
periodMillis |
number
O período de validade de cada código de barras.
|
Atualização em lote de valores de código de barras
Após a criação do objeto RotatingBarcode, recomendamos enviar um arquivo
em códigos de barras, todos os dias, até o cartão do usuário expirar. Isso pode ser feito com o
endpoint da API REST a seguir.
Método: transitobject.uploadrotatingbarcodevalues
Faz upload dos valores de códigos de barras rotativos no objeto de transporte público indicado pelo ID de objeto fornecido.
Solicitação HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
Parâmetros de caminho
Parâmetro |
Descrição |
resourceId |
string
O identificador exclusivo de um objeto.
|
Corpo da solicitação
O corpo da solicitação (que não pode exceder 5 MB) contém uma instância de
RotatingBarcodeValues.
Método: transitobject.downloadrotatingbarcodevalues
Faz o download de valores de códigos de barras rotativos para o objeto de transporte público referenciado pelo objeto especificado
ID. Isso é útil quando os parceiros querem verificar o lote mais recente.
Solicitação HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
Parâmetros de caminho
Parâmetro |
Descrição |
resourceId |
string
O identificador exclusivo de um objeto.
|
Mecanismos substitutos
Se um RotatingBarcode válido não tiver códigos de barras válidos para exibir (eles
ainda não foram enviados ou todos os códigos de barras atuais foram usados), um erro
será mostrada ao usuário.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-25 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]