סקירה כללית

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.

שיטה: trafficobject.downloadrotatingbarcodevalues

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

בקשת HTTP

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

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

פרמטר תיאור
resourceId

string

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

מנגנונים חלופיים

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