סקירה כללית

ה-API של Google Wallet Passs מאפשר לשותפים לשמור ברקודים מסתובבים ב-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)

חובה. סוג הברקוד הזה.

הערכים המקובלים הם:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
שדה תיאור
startDateTime

string

התאריך/השעה שבהם הברקוד הראשון בתוקף. הברקוד יופיע בסבב באמצעות periodMillis.

זהו תאריך/שעה בפורמט ISO 8601 מורחב, עם היסט.

values[]

string

הערכים שיש לקודד בברקוד. יש להזין ערך אחד לפחות.

אין מספר מקסימלי של ערכים, אך חשוב לזכור שהגודל של גוף הבקשה לא יכול לחרוג מ-5MB.

periodMillis

number

משך הזמן שכל ברקוד תקף.

עדכון של ערכי הברקוד בכמות גדולה

לאחר יצירת האובייקט RotatingBarcode, מומלץ להעלות ברקודים למשך יום שלם בכל יום עד שפג התוקף של הכרטיס למשתמש. אפשר לעשות זאת באמצעות נקודת הקצה הבאה של REST API.

שיטה: transitobject.uploadrotatingbarcodevalues

העלאות עם סיבוב של ערכי ברקוד לאובייקט התחבורה הציבורית שאליו מפנה מזהה האובייקט הנתון.

בקשת HTTP

POST https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc eId}/uploadRotatingBarcodeValues

פרמטרים של נתיב

פרמטר תיאור
resourceId

string

המזהה הייחודי של האובייקט.

גוף הבקשה

גוף הבקשה (שאינו יכול לחרוג מ-5MB) מכיל מופע של RotatingBarcodeValues.

שיטה: transitobject.downloadrotatingbarcodevalues

הורדות של ערכי ברקוד מסתובבים באובייקט התחבורה הציבורית שאליו מתייחס מזהה האובייקט הנתון. האפשרות הזו שימושית אם השותפים רוצים לאמת את הגרסה האחרונה.

בקשת HTTP

GET https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do wnloadRotatingBarcodeValues?alt=media

פרמטרים של נתיב

פרמטר תיאור
resourceId

string

המזהה הייחודי של האובייקט.

מנגנוני גיבוי

שימו לב שאם ל-RotatingBarcode תקף אחרת אין ברקודים חוקיים להצגה (עדיין לא הועלו או שלא נעשה שימוש בכל הברקודים הנוכחיים), תוצג הודעת שגיאה למשתמש.