תהליך התקשורת באמצעות 'הקשה חכמה'

התקשורת בין הטרמינל לאפליקציית Google Wallet

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

דוגמה 1: מנפיק אחד למימוש

הקטע הבא מתאר את ההגדרה המתוארת באיור הזה.

בתרשים שלמעלה יש שני מנפיקים שונים:

  • המנפיק 2018 הוא מפתח כרטיסים (נקרא גם אתר אגרגטור)
  • מנפיק 1990 הוא מוכר, fooPizza (נקרא גם מנפיק מימוש)

מנפיק Redemption Issuer, fooPizza, רוצה להפעיל את הפונקציונליות של הקשה חכמה בכרטיס שלו (בניהול אתר האגרגטור). אתרי האגרגטור ומנפיק המימוש חייבים לבצע את השלבים הבאים כדי להפעיל את התכונה 'הקשה חכמה' בטרמינלים של המוכר.

שלב תפקיד תיאור
1 אתר אגרגטור יוצרים מחלקה ואובייקט של העברה (בתרשים, abc ו-123, בהתאמה).
2 אתר אגרגטור צריך לכלול את המזהה של המנפיק של המימוש בנכס redemptionIssuers של מחלקת הכרטיס. הקוד הזה מורה ל-Google Wallet שלמזהה המנפיק 1990 יש אישור לממש אובייקטים של כרטיסים שמפנים למחלקה הזו.
3 מימוש מנפיק יש להציג מזהה אספן (בתרשים 12345678).
4 מימוש מנפיק צריך להגדיר את מזהה אספן 12345678 בכל טרמינל שאפשר להשתמש בו בהקשה חכמה. כל אובייקט עם מזהה המחלקה abc ומזהה אספן 12345678 יועבר לקורא.

דוגמה 2: מנפיקים מרובים של מימושים

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

הקטע הבא מתאר את ההגדרה המתוארת באיור הזה.

בתרשים שלמעלה יש שלושה מנפיקים שונים:

  • מנפיק הכרטיס 8088 הוא מפתח כרטיסים (אתר אגרגטור)
  • מנפיק 1990 הוא מוכר, fooPizza (מנפיק מימוש)
  • מנפיק 2018 הוא מוכר, yumPie (מנפיק מימוש)

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

שלב תפקיד תיאור
1 אתר אגרגטור יוצרים מחלקה ואובייקט של העברה (בתרשים, abc ו-123, בהתאמה).
2 אתר אגרגטור צריך לכלול את מזהי המנפיקים של מימושי המימוש בנכס redemptionIssuers של מחלקת הכרטיס. הקוד הזה מורה ל-Google Wallet שמזהי המנפיק 1990 ו-2018 מורשים לממש אובייקטים של כרטיסים שמפנים למחלקה הזו.
3 מנפיקים של מימושים צריך לקבל מזהי אספנות (בתרשים, 12345678 עבור fooPizza ו-18802001 עבור yumPie).
4 מנפיקים של מימושים צריך להגדיר את מזהה המוכר המתאים בכל מסוף שאפשר להשתמש בו בהקשה חכמה. כל אובייקט עם מזהה המחלקה abc ומזהה תואם של מוכרן יישלח לקורא.

דוגמה 3: ללא אתר אגרגטור

ניתן לפתח ולהנפיק מחלקה מסוג כרטיס בתוך אותו חשבון של המנפיק. במקרה כזה, אין אתר אגרגטור שמנהל את המחלקות של כרטיסים למספר מנפיקי מימושים. כדי לממש מחלקה ספציפית של כרטיסים, מפתח הכרטיס חייב לכלול את מזהה המנפיק בנכס redemptionIssuers של המחלקה. לאחר מכן מפתח הכרטיס צריך לקבל מזהה אוסף ולהגדיר אותו במסופים שתומכים ב-Smart Tap.

הקטע הבא מתאר את ההגדרה המתוארת באיור הזה.

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

שלב תפקיד תיאור
1 הכרטיס המפתח יוצרים מחלקה ואובייקט של העברה (בתרשים, abc ו-123, בהתאמה).
2 הכרטיס המפתח צריך לכלול את מזהה המנפיק בנכס redemptionIssuers של מחלקת המעבר. הקוד הזה מורה ל-Google Wallet שלמזהה המנפיק 2018 יש אישור לממש אובייקטים מסוג כרטיס שמפנים למחלקה הזו.
3 הכרטיס המפתח יש להציג מזהה אספן (בתרשים 12345678).
4 הכרטיס המפתח צריך להגדיר את מזהה המוכר המתאים בכל מסוף שאפשר להשתמש בו בהקשה חכמה. כל אובייקט עם מזהה המחלקה abc ומזהה תואם של מוכרן יישלח לקורא.

חוויית המשתמש והתנהגות המשתמש

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

תרחיש 1: המשתמש פותח כרטיס ספציפי

שלב תפקיד תיאור
1 משתמש לבחור כרטיס ספציפי באפליקציית Google Wallet.
2 משתמש מקישים על מסוף תמיכה ב'הקשה חכמה'.
3 טרמינל (התאמות של מזהה אספן) הכרטיס מועבר לטרמינל.
(מזהה אספן לא תואם) הכרטיס לא משודר לטרמינל.

תרחיש 2: כרטיסיית דף הבית של Google Wallet או צפייה במסך הנעילה

שלב תפקיד תיאור
1 משתמש פותחים את הכרטיסייה 'דף הבית' באפליקציית Google Wallet או מבטלים את נעילת המסך של המכשיר.
2 משתמש מקישים על מסוף תמיכה ב'הקשה חכמה'.
3 טרמינל (התאמה תקפה אחת של מזהה אספן) הכרטיס משודר לטרמינל.
(התאמה של מספר מזהי אספן חוקיים) הצגת קרוסלה של כרטיסים תקפים ושידור הכרטיס שהמשתמש בחר.

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

  • state
  • validTimeInterval

דוגמה לאוסף 'הקשה חכמה'

בטבלה הבאה מתוארים המנפיקים ואישורי האישור שבהם ייעשה שימוש בדוגמה הזו:

שם המוֹכר ILuvCoffee קפה-פו מוקה ר-אוס
מזהה המנפיק 123 456 789
מספר מוֹכר 11111111 44444444 77777777
רמות במועדון הלקוחות R-בסיסי התמריצים שלי
R-Gold

ב-ILuvCoffee יש שתי רמות שונות של מועדון לקוחות: R-Basic ו-R-Gold. בינתיים, ל-Coffee-Foo יש מועדון לקוחות ברמה אחת, My Rewards, ול-Mocha-R-Us אין מועדון לקוחות.

כחלק מקמפיין לקידום צולב, המוכרים רוצים לאפשר ללקוחות שלהם את האפשרויות הבאות:

  • לקוחות ברמה R-Basic יכולים להשתמש בתכונה 'הקשה חכמה' כדי לממש את מועדון הלקוחות שלהם גם ב-Coffe-Foo וגם ב-Mocha-R-Us
  • לקוחות ברמת R-Gold לא צריכים להפעיל בהקשה חכמה
  • לקוחות My Rewards יכולים להשתמש בתכונה 'הקשה חכמה' כדי לממש את חברות מועדון הלקוחות שלהם ב-Coff-Foo בלבד

כדי שהקמפיין הזה יפעל, צריך להגדיר לכל רמת מועדון את הערכים הבאים במאפיין redemptionIssuers של הגדרת הכיתה.

רמת נאמנות מזהים של מנפיקי מימושים
R-בסיסי ["456", "789"]
R-Gold []
התמריצים שלי ["456"]

בהגדרה הזו, לכל אובייקט מסוג Pass שמפנה לסיווגים האלה יהיו מזהי האספנים הבאים:

  • גרסה בסיסית: 44444444, 77777777
  • זהב אדום:לא ייכללו תעודות מזהות של אספנות
  • ההטבות שלי: 44444444

אימות מקבל התשלום בזמן ההקשה

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

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

שם המוֹכר ILuvCoffee קפה-פו מוקה ר-אוס
מזהה המנפיק 123 456 789
מספר מוֹכר 11111111 44444444 77777777
רמות במועדון הלקוחות R-בסיסי התמריצים שלי
R-Gold
מפתחות ציבוריים aaa bbb

לדוגמה, כרטיסי מועדון הלקוחות הבאים שמורים באפליקציית Google Wallet:

  • ILuvCoffee: R-Basic
  • Coffee-Foo: התגמולים שלי

כמו קודם, הערכים הבאים מוגדרים במאפיין redemptionIssuers לכל רמת מועדון לקוחות.

  • R-בסיסי: ["456", "789"]
  • ההטבות שלי: ["456"]

אם משתמש מקיש על המכשיר במסוף של כל מוכר, יש שלוש תוצאות אפשריות:

מסוף Merchant תוצאה
ILuvCoffee מכיוון ש-ILuvCoffee (מזהה מנפיק המימוש 123) לא מוגדר כרגע למימוש סוג מועדון לקוחות משלו, R-Basic, לא נשלח שום דבר.
קפה-פו אפליקציית Google Wallet מבצעת אימות לטרמינל של קפה-Foo באמצעות המפתח הציבורי bbb. בהתאם למסך הנוכחי שהמשתמש צופה בו במכשיר, אחד מהתרחישים המפורטים בקטע חוויית משתמש יקרה.
מוקה ר-אוס בדוגמה זו אין מפתח ציבורי עבור Mocha-R-U. למרות שאפשר לממש את תוכנית R-Basic אצל המוכר, לא ניתן לאמת אותה במסוף, ולכן שום דבר לא יועבר.

מגבלות אימות

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

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

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

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

העברת ערך במהלך הקשה

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

על סמך השילוב ותרחיש השימוש שלכם, הערך הזה ישמש לזיהוי הכרטיס של המשתמש ולביצוע לוגיקת טרנזקציות נדרשת, למשל:

  1. עדכון הסטטוס או היתרה של המשתמש
  2. עדכון הקצה העורפי שלכם על סמך העסקה
  3. שולחים עדכון לאובייקט ההעברה באמצעות Google Wallet API, כך שישקף את השינויים בסטטוס המשתמש במכשיר

המסוף ואפליקציית Google Wallet מטפלים בהצפנה של כל הנתונים שמשודרים ב-NFC. הטרמינל מטפל בפענוח הנתונים אחרי שמתבצעת ההקשה החכמה. בתוך הנתונים יש רשומות NDEF של אובייקט שירות (Service Object NDEF) שמייצגות כל מעבר שהועבר. לאובייקט Service number NDEF Record של אובייקט השירות יש מטען ייעודי (payload) שמכיל את הערך שהוגדר במאפיין smartTapRedemptionValue של אובייקט ההעברה. המשמעות היא שמפתח הכרטיס לא צריך לטפל בהצפנה של נתונים משודרים.

אם רוצים להוסיף שכבת אבטחה, אפשר להגדיר את המאפיין smartTapRedemptionValue כך שרק המערכת שמקבלת את הנתונים המועברים (למשל נקודת מכירה) תוכל לפענח אותם. עם זאת, מפתח הכרטיס ואדמין ה-POS יהיו אחראים לתהליך ההצפנה/פענוח.