סקירה כללית
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
Google Wallet Passes API מאפשר לשותפים לחסוך
סיבוב
ברקודים ל-Google Wallet. הברקודים האלה תקפים לזמן קצר בלבד,
מתן אמצעי אבטחה נוספים כדי להפחית את הסיכון לצילום מסך של ברקוד.
ברקודים נוצרים במכשיר בהתאם
RFC 6238, כשהשותף מספק את
מפתח סודי. עם זאת, אם שותף מעדיף ליצור את הברקודים בעצמו, Google מספקת
ממשק API שמאפשר להעלות ברקודים ל-Google בכמות גדולה. לאחר מכן, הברקודים האלה
יועברו למשתמשים שבהם הם יפעלו בדיוק כמו סיבוב ברקודים,
מוצגת למשך פרק זמן קצר. אנחנו מתייחסים לפתרון הזה כפתרון שנוצר על ידי שותף
ברקודים מסתובבים.
ממשק API של ברקוד מסתובב שנוצר על ידי שותף
ברקודים מסתובבים שנוצרו על ידי שותפים נוצרים באמצעות אותו RotatingBarcode
לאובייקט. חובה לציין רק את הסוג, אבל מומלץ גם ליצור סימן לתחילת פעולה קטן
קבוצת ברקודים (בערך של כ-10 דקות), ושולחים אותם
initialRotatingBarcodeValues
השותף אחראי לוודא שיש
תמיד ברקוד תקין ומוכן למשתמש, ו-initialRotatingBarcodeValues
מאפשר
הקריאה הבאה של העלאת אצווה להיות אסינכרונית.
rotatingBarcode {
initialRotatingBarcodeValues: object (RotatingBarcodeValues),
type: enum (BarcodeType),
}
שדה |
תיאור |
initialRotatingBarcodeValues |
object (RotatingBarcodeValues)
הערכים לקידוד בברקוד. חובה למלא לפחות ערך אחד. האותות הראשוניים
ברקודים נועדו לגשר על הפער בין המועד שבו המשתמש מקבל את הכרטיס בפעם הראשונה,
כשנשלחת הקריאה הבאה להעלאה באצווה.
|
type |
enum (BarcodeType)
חובה. סוג הברקוד הזה.
הערכים הקבילים הם:
|
RotatingBarcodeValues
שדה |
תיאור |
startDateTime |
string
התאריך והשעה שבהם הברקוד הראשון בתוקף. הברקודים יעברו רוטציה
באמצעות periodMillis .
זהו תאריך/שעה בפורמט מורחב לפי תקן ISO 8601, עם קיזוז.
|
values[] |
string
הערכים לקידוד בברקוד. חובה למלא לפחות ערך אחד.
אין מספר מקסימלי של ערכים, אבל חשוב לשים לב שגודל גוף הבקשה
לא יכול לחרוג מ-5MB.
|
periodMillis |
number
משך הזמן שבו כל ברקוד תקף.
|
עדכון ערכי ברקוד בכמות גדולה
לאחר יצירת האובייקט RotatingBarcode, מומלץ להעלות פונקציית
בשווי ברקודים, כל יום, עד שתוקף הכרטיס של המשתמש פג. אפשר לעשות זאת באמצעות
אחרי נקודת הקצה ל-API ל-REST.
שיטה: transitobject.uploadrotatingbarcodevalues
מעלה ערכי ברקוד מסתובבים לאובייקט ההעברה שאליו מפנה מזהה האובייקט הנתון.
בקשת HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
פרמטרים של נתיב
פרמטר |
תיאור |
resourceId |
string
המזהה הייחודי של האובייקט.
|
גוף הבקשה
גוף הבקשה (שלא יכול לחרוג מ-5MB) מכיל מופע של
RotatingBarcodeValues.
שיטה: transitobject.downloadrotatingbarcodevalues
הורדה של ערכי ברקוד מסתובבים של אובייקט ההעברה שאליו האובייקט הנתון מפנה
ID. האפשרות הזו שימושית אם השותפים רוצים לאמת את החבילה האחרונה.
בקשת HTTP
GET
https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do
wnloadRotatingBarcodeValues?alt=media
פרמטרים של נתיב
פרמטר |
תיאור |
resourceId |
string
המזהה הייחודי של האובייקט.
|
מנגנונים חלופיים
שים לב שאם ל-RotatingBarcode תקין אין ברקודים תקינים להצגה (הם
טרם הועלו, או שכל הברקודים הנוכחיים נמצאים בשימוש), אירעה שגיאה
תוצג למשתמש הודעה.
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-25 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 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."]]