Aperçu
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'API Google Wallet Passes permet aux partenaires d'enregistrer
Rotation
des codes-barres à Google Wallet. Ces codes-barres ne sont valides
que pendant une courte période,
offrant une sécurité supplémentaire pour réduire le risque de capture d'écran de codes-barres. La
des codes-barres sont générés sur l'appareil conformément aux
RFC 6238, où le partenaire fournissant les
clé secrète. Toutefois, si un partenaire préfère générer lui-même les codes-barres, Google fournit
une API permettant d'importer des codes-barres sur Google de façon groupée. Ces codes-barres
être transmis aux utilisateurs comme les codes-barres rotatifs,
pendant une courte période. Nous appelons cette solution "Généré par le partenaire"
Codes-barres rotatifs.
API Partner-Generated Rotating Barcode
Les codes-barres rotatifs générés par les partenaires sont créés à l'aide du même
. Seul le type est requis, mais nous vous recommandons également de créer un petit déclencheur
de code-barres (une dizaine de minutes environ) et les envoyer
initialRotatingBarcodeValues
Le partenaire est tenu de
s'assurer qu'il existe
toujours un code-barres valide pour l'utilisateur, et initialRotatingBarcodeValues
permet
l'appel d'importation groupée suivant pour qu'il soit asynchrone.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
Champ |
Description |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
Valeurs à encoder dans le code-barres. Veuillez indiquer au moins une valeur. Ces initiales
Les codes-barres servent à combler l'écart entre le moment où l'utilisateur acquiert sa carte pour la première fois et
lors de l'appel d'importation groupée suivant.
|
type |
enum (BarcodeType)
Obligatoire. Type de ce code-barres.
Les valeurs acceptées sont les suivantes :
|
RotatingBarcodeValues
Champ |
Description |
startDateTime |
string
Date et heure à partir desquelles le premier code-barres est valide. La rotation des codes-barres
avec periodMillis .
Il s'agit d'une date/heure exprimée dans le format étendu de la norme ISO 8601, avec un décalage.
|
values[] |
string
Valeurs à encoder dans le code-barres. Veuillez indiquer au moins une valeur.
Il n'y a pas de nombre maximal de valeurs, mais notez que la taille du corps de la requête
ne doit pas dépasser 5 Mo.
|
periodMillis |
number
Durée de validité de chaque code-barres.
|
Mise à jour groupée des valeurs des codes-barres
Une fois l'objet RotatingBarcode créé, nous vous recommandons d'importer des fichiers d'une journée
de codes-barres, tous les jours, jusqu'à l'expiration de la carte de l'utilisateur. Pour ce faire, utilisez
suivant le point de terminaison de l'API REST.
Méthode: transitobject.uploadrotatingbarcodevalues
Importe les valeurs des codes-barres rotatifs dans l'objet de transports en commun référencé par l'ID d'objet donné.
Requête HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
Paramètres de chemin d'accès
Paramètre |
Description |
resourceId |
string
Identifiant unique d'un objet.
|
Corps de la requête
Le corps de la requête (qui ne peut pas dépasser 5 Mo) contient une instance de
RotatingBarcodeValues.
Méthode: transitobject.downloadrotatingbarcodevalues
Télécharge les valeurs des codes-barres rotatifs de l'objet de transports en commun référencé par l'objet donné.
ID. Cette méthode est utile si les partenaires souhaitent vérifier le dernier lot.
Requête HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
Paramètres de chemin d'accès
Paramètre |
Description |
resourceId |
string
Identifiant unique d'un objet.
|
Mécanismes de remplacement
Notez que si un RotatingBarcode valide n'a pas de codes-barres valides à afficher (ils
n'ont pas encore été importés ou que tous les codes-barres actuels ont été utilisés), une erreur
sera présenté à l'utilisateur.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/25 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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."]]