Wallet Passes API
כרטיסי Wallet (Apple Wallet ו-Google Wallet) מונפקים ומנוהלים מלוח הבקרה והמסעות של Joryio. ה-API הזה מכסה את השלב היחיד שקורה מחוץ ל-Joryio: תיעוד הרגע שבו כרטיס נסרק/מומש בנקודת המכירה.
הסריקה הזו היא מה שמזין את שלב נסרקו במשפך אימוץ ה-Wallet ואת שיעור הסריקה ב-Analytics -> Wallet Analytics. לא Apple ולא Google מודיעים ל-Joryio כשכרטיס נעשה בו שימוש בחנות, ולכן נקודת המכירה שלך (או שכבת ביניים) חייבת לשלוח את הסריקה לכאן.
אימות
כל הבקשות משתמשות במפתח API כאסימון bearer ודורשות את ההרשאה wallet:write:
Authorization: Bearer jry_live_xxxxxxxxxxxxxxxxxxxx
תיעוד סריקה / מימוש של כרטיס
POST /wallet-passes/scan
| שדה | סוג | הערות |
|---|---|---|
serialNumber | string | חובה. המזהה הייחודי של הכרטיס, נקרא מהברקוד/QR המודפס על הכרטיס. |
properties | object | אופציונלי. מטא-דאטה חופשי של המימוש (חנות, סכום, קופאי, ...). נשמר כפי שהוא באירוע pass.scanned וזמין בניתוחים. |
דוגמה
TOKEN=jry_live_xxxxxxxxxxxxxxxxxxxx
BASE=https://api-eu1.joryio.com
curl -sX POST "$BASE/wallet-passes/scan" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"serialNumber": "a1b2c3d4-e5f6-4789-abcd-1234567890ab",
"properties": { "storeId": "store_42", "amount": 19.90, "currency": "EUR" }
}'
תגובה
{ "recorded": true }
הערך recorded הוא false כאשר לא קיים כרטיס עם ה-serialNumber הזה בארגון שלך - במקרה כזה דבר לא נרשם.
הערות
- אידמפוטנטי לכל כרטיס בניתוחים. המשפך סופר כרטיסים ייחודיים, ולכן סריקה חוזרת של אותו
serialNumberעדיין נספרת ככרטיס נסרק אחד. כל קריאה כן פולטת אירועpass.scannedמשלה, כך שה-propertiesשל כל סריקה נשמרים. - מהו ה-serial.
serialNumberהוא מזהה הכרטיס המקודד בברקוד/QR של הכרטיס. קרא אותו בקופה ושלח אותו כפי שהוא. - היכן זה מופיע. סריקות מזינות את זרם האירועים
pass.scannedואת שלב נסרקו / שיעור הסריקה ב-Wallet Analytics. שיעור הסריקה מחושב כ-scanned / downloaded (בסיס נקי חוצה-פלטפורמות). - מפתחות מרובי-סביבות עבודה. אם מפתח ה-API שלך משתרע על כמה סביבות עבודה, הוסף כותרת
X-Workspace-Id: <workspace-id>. היא אופציונלית עבור מפתח של סביבת עבודה יחידה.