نظرة عامة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تتيح واجهة Google Wallet Cards API للشركاء حفظ بياناتها.
التدوير
الرموز الشريطية إلى "محفظة Google" تكون هذه الرموز الشريطية صالحة فقط لفترة زمنية قصيرة،
لتوفير أمان إضافي للحد من خطر التقاط لقطة شاشة للرمز الشريطي. تشير رسالة الأشكال البيانية
يتم إنشاء الرموز الشريطية على الجهاز وفقًا
وفقًا للمعيار RFC 6238، ويقدِّم الشريك
المفتاح السري. مع ذلك، إذا كان الشريك يفضّل إنشاء الرموز الشريطية بنفسه، تقدّم Google
واجهة برمجة تطبيقات تتيح تحميل الرموز الشريطية بشكل مجمّع إلى Google ستظهر هذه الرموز الشريطية بعد ذلك
تمريرها إلى المستخدمين من الهواتف، حيث تعمل تمامًا مثل "رموز شريطية دوارة"،
عرضها لفترة زمنية قصيرة. نشير إلى هذا الحل باسم من إنشاء الشركاء.
جارٍ تدوير الرموز الشريطية
واجهة برمجة تطبيقات الرموز الشريطية بالتناوب التي ينشئها الشركاء
يتمّ إنشاء الرموز الشريطية الدوّارة التي ينشئها الشركاء باستخدام 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
القيم المراد ترميزها في الرمز الشريطي. يجب إدخال قيمة واحدة على الأقل.
ليس هناك حدّ أقصى لعدد القيم، ولكن يُرجى ملاحظة أنّ حجم نص الطلب
لا يمكن أن يتجاوز حجمها 5 ميغابايت.
|
periodMillis |
number
المدة الزمنية التي يكون فيها كل رمز شريطي صالحًا.
|
يتم تعديل قيم الرمز الشريطي بشكل مجمّع.
وبعد إنشاء كائن RotatingBarcode، ننصحك بتحميل ملف
التي تساوي قيمة الرموز الشريطية كل يوم إلى أن تنتهي صلاحية بطاقة المستخدم. يمكن إجراء ذلك باستخدام
اتباع نقطة نهاية REST API.
الطريقة: transitobject.uploadrotatingbarcodevalues
تحمِّل قيم الرمز الشريطي الدوّارة إلى عنصر النقل العام المُشار إليه في رقم تعريف العنصر المحدّد.
طلب HTTP
POST
https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc
eId}/uploadRotatingBarcodeValues
مَعلمات المسار
المعلمة |
الوصف |
resourceId |
string
تمثّل هذه السمة المعرّف الفريد للعنصر.
|
نص الطلب
يحتوي نص الطلب (الذي لا يمكن أن يتجاوز 5 ميغابايت) على مثال
RotatingBarcodeValues.
الطريقة: transitobject.downloadrotatingbarcodevalues
يتم تنزيل قيم الرمز الشريطي المتغيّرة لعنصر النقل العام المُشار إليه في العنصر المحدّد.
رقم التعريف ويُعدّ هذا الإجراء مفيدًا إذا أراد الشركاء التحقّق من أحدث دفعة.
طلب 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 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-25 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\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."]]