סקירה כללית

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)

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

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

  • QR_CODE
  • PDF_417

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 תקין אין ברקודים תקינים להצגה (הם טרם הועלו, או שכל הברקודים הנוכחיים נמצאים בשימוש), אירעה שגיאה תוצג למשתמש הודעה.