Przegląd
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Interfejs API kart w Portfelu Google umożliwia partnerom zapisywanie
Obracanie
kodów kreskowych do Portfela Google. Takie kody kreskowe są ważne tylko przez krótki czas,
dodatkowe zabezpieczenia w celu zmniejszenia ryzyka zrzutu ekranu z kodem kreskowym.
Kody kreskowe są generowane na urządzeniu zgodnie z
RFC 6238, w którym partner dostarcza
tajny klucz. Jeśli jednak partner chce samodzielnie wygenerować kody kreskowe, Google udostępnia
interfejs API umożliwiający przesyłanie zbiorcze kodów kreskowych do Google. Kody kreskowe
mogą być przekazywane do w których działają jak obracające się kody kreskowe,
przez krótki czas. Określamy to rozwiązanie jako wygenerowane przez partnera
Obracanie kodów kreskowych.
Interfejs Rotating Barcode API wygenerowany przez partnera
Rotowane kody kreskowe wygenerowane przez partnerów są tworzone za pomocą tego samego kodu RotatingBarcode
obiektu. Wymagany jest tylko typ, ale zalecamy też utworzenie małego polecenia inicjującego
kodów kreskowych (o wartości około 10 minut) i wysyłać je
initialRotatingBarcodeValues
Partner odpowiada za zapewnienie,
zawsze gotowy do użycia przez użytkownika kod kreskowy, a initialRotatingBarcodeValues
zezwala
kolejne wywołanie przesyłania zbiorczego,
by było asynchroniczne.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
Pole |
Opis |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
Wartości do zakodowania w kodzie kreskowym. Musisz wpisać co najmniej 1 wartość. Te początkowe
Kody kreskowe mają wypełnić lukę między momentem, w którym użytkownik po raz pierwszy uzyska kartę,
po wykonaniu kolejnego wywołania przesyłania zbiorczego.
|
type |
enum (BarcodeType)
Wymagane. Typ tego kodu kreskowego.
Akceptowane wartości:
|
RotatingBarcodeValues
Pole |
Opis |
startDateTime |
string
Data i godzina, od których pierwszy kod kreskowy jest ważny. Kody kreskowe będą poddawane rotacji
za pomocą funkcji periodMillis .
To jest data i godzina w rozszerzonym formacie ISO 8601 z przesunięciem.
|
values[] |
string
Wartości do zakodowania w kodzie kreskowym. Musisz wpisać co najmniej 1 wartość.
Nie ma maksymalnej liczby wartości, ale pamiętaj, że rozmiar treści żądania
nie może przekraczać 5 MB.
|
periodMillis |
number
Czas ważności każdego kodu kreskowego.
|
Zbiorcza aktualizacja wartości kodów kreskowych
Po utworzeniu obiektu RotatingBarcode zalecamy przesłanie dziennego
kodów kreskowych każdego dnia, aż do wygaśnięcia ich ważności. Można to zrobić za pomocą
z tego punktu końcowego interfejsu API REST.
Metoda: transitobject.uploadrotatingbarcodevalues
Przesyła naprzemiennie wartości kodu kreskowego do obiektu biletu na przejazd, do którego odwołuje się podany identyfikator obiektu.
Żądanie HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
Parametry ścieżki
Parametr |
Opis |
resourceId |
string
Unikalny identyfikator obiektu.
|
Treść żądania
Treść żądania (która nie może przekraczać 5 MB) zawiera instancję
RotatingBarcodeValues.
Metoda: transitobject.downloadrotatingbarcodevalues
Pobiera naprzemiennie wartości kodu kreskowego obiektu biletu na przejazd, do którego odwołuje się dany obiekt
ID. Jest to przydatne, gdy partnerzy chcą zweryfikować najnowszy wsad.
Żądanie HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
Parametry ścieżki
Parametr |
Opis |
resourceId |
string
Unikalny identyfikator obiektu.
|
Mechanizmy awaryjne
Pamiętaj, że jeśli w innym przypadku poprawny kod kreskowy RotatingBarcode nie ma prawidłowych kodów kreskowych do wyświetlenia (
nie zostały jeszcze przesłane lub wszystkie obecne kody kreskowe zostały wykorzystane) wystąpił błąd
to wiadomość.
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-25 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]