Ringkasan
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Google Wallet Passes API memberikan kemampuan bagi partner untuk menyimpan
Putar
Kode batang ke Google Wallet. Kode batang ini hanya valid dalam waktu singkat,
memberikan keamanan tambahan untuk mengurangi
risiko tangkapan layar kode batang. Tujuan
kode batang dibuat di perangkat sesuai dengan
RFC 6238, dengan partner menyediakan
kunci rahasia. Namun, jika mitra memilih untuk membuat sendiri kode batangnya, Google menyediakan
API sehingga kode batang dapat diupload banyak ke Google. Kode batang ini kemudian akan
diteruskan ke pengguna ponsel, yang akan bertindak
seperti Kode Batang Berputar,
ditampilkan dalam waktu singkat. Kami menyebut solusi ini sebagai Solusi Buatan Partner
Kode Batang Berputar.
API Batang Berputar Buatan Partner
Kode Batang Berputar Buatan Partner dibuat menggunakan RotatingBarcode yang sama
. Hanya jenis yang diperlukan, meskipun kami juga merekomendasikan untuk membuat pemicu kecil
satu set kode batang (~10 menit), dan mengirimkannya dalam
initialRotatingBarcodeValues
. Partner bertanggung jawab untuk
memastikan bahwa ada
selalu memiliki kode batang valid yang siap bagi pengguna, dan initialRotatingBarcodeValues
memungkinkan
panggilan upload batch berikutnya menjadi asinkron.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
Kolom |
Deskripsi |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
Nilai yang akan dienkode dalam kode batang. Diperlukan setidaknya 1 nilai. Nilai awal ini
kode batang dimaksudkan untuk menjembatani kesenjangan antara saat pengguna pertama kali memperoleh kartu izin lewat, dan
ketika panggilan upload batch berikutnya dilakukan.
|
type |
enum (BarcodeType)
Wajib. Jenis kode batang ini.
Nilai yang dapat diterima:
|
RotatingBarcodeValues
Kolom |
Deskripsi |
startDateTime |
string
Tanggal/waktu kode batang pertama valid. Kode batang akan dirotasikan
menggunakan periodMillis .
Ini adalah tanggal/waktu format diperpanjang ISO 8601, dengan offset.
|
values[] |
string
Nilai yang akan dienkode dalam kode batang. Diperlukan setidaknya 1 nilai.
Tidak ada jumlah nilai maksimum, tetapi perhatikan bahwa ukuran isi permintaan
tidak boleh lebih dari 5 MB.
|
periodMillis |
number
Jumlah waktu validnya setiap kode batang.
|
Memperbarui kumpulan nilai kode batang
Setelah objek RotatingBarcode dibuat, sebaiknya upload
kode batang, setiap hari, hingga kartu pengguna kedaluwarsa. Hal ini dapat dilakukan dengan
endpoint REST API berikut.
Metode: transitobject.uploadrotatingbarcodevalues
Mengupload nilai kode batang yang dirotasi ke objek transportasi umum yang direferensikan oleh ID objek yang diberikan.
Permintaan HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
Parameter jalur
Parameter |
Deskripsi |
resourceId |
string
ID unik untuk objek.
|
Isi permintaan
Isi permintaan (yang tidak boleh melebihi 5 MB) berisi instance
RotatingBarcodeValues.
Metode: transitobject.downloadrotatingbarcodevalues
Download nilai kode batang yang berputar untuk objek transportasi umum yang direferensikan oleh objek tertentu
ke ID. Hal ini berguna jika partner ingin memverifikasi batch terbaru.
Permintaan HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
Parameter jalur
Parameter |
Deskripsi |
resourceId |
string
ID unik untuk objek.
|
Mekanisme penggantian
Perhatikan bahwa jika RotatingBarcode yang sebenarnya valid tidak memiliki kode batang yang valid untuk ditampilkan (keduanya,
belum diupload, atau semua kode batang saat ini telah digunakan), maka
pesan yang akan ditampilkan kepada pengguna.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-25 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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."]]