نظرة عامة

توفّر واجهة برمجة التطبيقات Google Wallet Pass API للشركاء إمكانية حفظ الرموز الشريطية الدوّارة في "محفظة Google". تكون هذه الرموز الشريطية صالحة فقط لفترة زمنية قصيرة، ما يوفّر مستوى إضافيًا من الأمان للحد من خطر أخذ لقطة شاشة للرمز الشريطي. يتم إنشاء الرموز الشريطية على الجهاز بما يتوافق مع RFC 6238، من خلال الشريك الذي يقدّم المفتاح السري. في المقابل، إذا كان الشريك يفضّل إنشاء الرموز الشريطية بنفسه، توفّر Google واجهة برمجة تطبيقات يمكن فيها تحميل الرموز الشريطية بشكل مجمّع إلى Google. سيتم بعد ذلك تمرير هذه الرموز الشريطية إلى هواتف المستخدمين، حيث ستعمل مثل الرموز الشريطية الدوّارة لفترة زمنية قصيرة. ونشير إلى هذا الحلّ باسم رموز شريطية دوّارة ينشئها الشركاء.

واجهة برمجة تطبيقات الرموز الشريطية بالتناوب التي ينشئها الشريك

يتم إنشاء الرموز الشريطية الدوارة التي ينشئها الشركاء باستخدام الكائن RotatingBarcode نفسه. يجب تحديد النوع فقط، ولكنّنا ننصح أيضًا بإنشاء مجموعة صغيرة من الرموز الشريطية للمبتدئين (تبلغ قيمتها 10 دقائق تقريبًا)، وإرسالها في initialRotatingBarcodeValues. ويكون الشريك مسؤولاً عن ضمان توفير رمز شريطي صالح دائمًا للمستخدم، ويسمح السمة initialRotatingBarcodeValues بأن يكون طلب التحميل المجمّع التالي غير متزامن.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
الحقل الوصف
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

القيم المطلوب ترميزها في الرمز الشريطي يجب إدخال قيمة واحدة على الأقل. وتهدف هذه الرموز الشريطية الأولية إلى سد الفجوة بين وقت حصول المستخدم على البطاقة للمرة الأولى ووقت إجراء الطلب التالي للتحميل المجمّع.

type

enum (BarcodeType)

مطلوبة. نوع هذا الرمز الشريطي.

القيم المقبولة هي:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
الحقل الوصف
startDateTime

string

التاريخ/الوقت الذي يكون فيه الرمز الشريطي الأول صالحًا. سيتم تبديل الرموز الشريطية من خلال باستخدام periodMillis.

هذا تنسيق تاريخ/وقت بتنسيق ISO 8601 موسّع، مع إزاحة.

values[]

string

القيم المطلوب ترميزها في الرمز الشريطي يجب إدخال قيمة واحدة على الأقل.

ما من حدّ أقصى لعدد القيم، ولكن يُرجى العلم بأنّ حجم نص الطلب لا يمكن أن يتجاوز 5 ميغابايت.

periodMillis

number

المدة الزمنية التي يكون فيها كل رمز شريطي صالحًا.

يتم إجراء تعديل مجمّع لقيم الرمز الشريطي.

بعد إنشاء العنصر RotatingBarcode، ننصحك بتحميل رموز شريطية بقيمة يوم واحد يوميًا إلى حين انتهاء صلاحية بطاقة المستخدم. يمكن إجراء ذلك باستخدام نقطة نهاية واجهة برمجة تطبيقات REST التالية.

الطريقة: 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 صالحًا بطريقة أخرى، لا يتضمّن رموزًا شريطية صالحة لعرضها (لم يتم تحميلها بعد أو تم استخدام جميع الرموز الشريطية الحالية)، سيتمّ عرض رسالة خطأ للمستخدم.