ارتباط بین ترمینال و برنامه Google Wallet
یک ترمینال خود را با شناسه گردآوری شناسایی می کند که به شناسه صادرکننده Redemption نگاشت شده است. هنگامی که یک ضربه هوشمند رخ می دهد، ترمینال شناسه جمع کننده خود را به دستگاه کاربر ارسال می کند. سپس برنامه Google Wallet شناسه کلاس و شناسه جمعآوری هر مجوز ذخیره شده را بررسی میکند. وقتی یک یا چند مورد منطبق پیدا میشود، برنامه Google Wallet مجوزهای منطبق را به پایانه ارسال میکند. برای جزئیات راهاندازی به پیکربندی Merchant مراجعه کنید.
مثال 1: یک صادرکننده بازخرید
در نمودار قبل، دو صادرکننده متفاوت وجود دارد:
- Issuer
2018
یک توسعه دهنده پاس است (همچنین به نام Aggregator) - صادرکننده
1990
یک تاجر است، fooPizza (همچنین به نام Redemption Issuer)
صادرکننده Redemption، fooPizza، میخواهد عملکرد Smart Tap را برای مجوز خود فعال کند (که توسط Aggregator مدیریت میشود). Aggregator و Redemption Issuer باید مراحل زیر را برای فعال کردن Smart Tap برای پایانههای تجاری انجام دهند.
گام | نقش | شرح |
---|---|---|
1 | جمع کننده | یک کلاس و شی pass ایجاد کنید (به ترتیب در نمودار، abc و 123 ). |
2 | جمع کننده | شناسه صادرکننده Redemption را در ویژگی redemptionIssuers کلاس pass قرار دهید. این به Google Wallet میگوید که شناسه صادرکننده 1990 مجاز است اشیایی را که به این کلاس ارجاع میدهند بازخرید کند. |
3 | صادرکننده بازخرید | یک شناسه گردآورنده (در نمودار، 12345678 ) دریافت کنید. |
4 | صادرکننده بازخرید | شناسه جمع کننده 12345678 را روی هر پایانه دارای Smart Tap که استفاده می شود تنظیم کنید. هر شیئی با شناسه کلاس abc و شناسه گردآوری 12345678 به خواننده منتقل می شود. |
مثال 2: چند صادرکننده بازخرید
یک کلاس پاس میتواند چندین صادرکننده Redemption داشته باشد. برای اینکه بتوانید یک کلاس پاس خاص را بازخرید کنید، یک شناسه صادرکننده Redemption باید در ویژگی redemptionIssuers
کلاس گنجانده شود. سپس هر صادرکننده Redemption شناسه جمعآوری خود را دارد که روی پایانههای دارای Smart Tap پیکربندی میشود.
در نمودار قبل، سه صادرکننده مختلف وجود دارد:
- صادرکننده
8088
یک توسعه دهنده پاس است (Aggregator) - صادرکننده
1990
یک تاجر است، fooPizza (صادرکننده بازخرید) - صادرکننده
2018
یک تاجر است، yumPie (صادرکننده بازخرید)
Aggregator و Redemption Issuers باید مراحل زیر را برای فعال کردن Smart Tap برای پایانههای تجاری انجام دهند.
گام | نقش | شرح |
---|---|---|
1 | جمع کننده | یک کلاس و شی pass ایجاد کنید (به ترتیب در نمودار، abc و 123 ). |
2 | جمع کننده | شناسههای Redemption Issuers را در ویژگی redemptionIssuers کلاس pass قرار دهید. این به Google Wallet میگوید که شناسههای صادرکننده 1990 و 2018 مجاز به بازخرید اشیاء عبوری هستند که به این کلاس اشاره میکنند. |
3 | صادرکنندگان بازخرید | شناسههای جمعآوری را دریافت کنید (در نمودار، 12345678 برای fooPizza و 18802001 برای yumPie). |
4 | صادرکنندگان بازخرید | شناسه جمعآوری مربوطه را روی هر پایانه دارای Smart Tap که استفاده میشود، تنظیم کنید. هر شیء با شناسه کلاس abc و شناسه گردآوری منطبق به خواننده منتقل می شود. |
مثال 3: بدون جمع کننده
یک کلاس پاس را می توان در همان حساب صادرکننده ایجاد و صادر کرد. در این مورد، هیچ Aggregator برای مدیریت کلاسهای عبور برای چندین صادرکننده Redemption وجود ندارد. برای اینکه بتواند یک کلاس پاس خاص را پسخرید کند، توسعهدهنده پاس باید شناسه صادرکننده خود را در ویژگی redemptionIssuers
کلاس قرار دهد. سپس توسعهدهنده پاس باید یک شناسه جمعآوری دریافت کند و آن را در پایانههای دارای Smart Tap خود پیکربندی کند.
برنامهنویس پاس باید مراحل زیر را برای فعال کردن Smart Tap برای پایانههای تجاری انجام دهد.
گام | نقش | شرح |
---|---|---|
1 | Pass Developer | یک کلاس و شی pass ایجاد کنید (به ترتیب در نمودار، abc و 123 ). |
2 | Pass Developer | شناسه صادرکننده آنها را در ویژگی redemptionIssuers کلاس pass قرار دهید. این به Google Wallet میگوید که شناسه صادرکننده 2018 مجاز است اشیایی را که به این کلاس ارجاع میدهند بازخرید کند. |
3 | Pass Developer | یک شناسه گردآورنده (در نمودار، 12345678 ) دریافت کنید. |
4 | Pass Developer | شناسه جمعآوری مربوطه را روی هر پایانه دارای Smart Tap که استفاده میشود، تنظیم کنید. هر شیء با شناسه کلاس abc و شناسه گردآوری منطبق به خواننده منتقل می شود. |
تجربه و رفتار کاربر
رفتار آنچه بین ترمینال و برنامه Google Wallet منتقل می شود به کاربر و نحوه تعامل آنها با برنامه Google Wallet در آن زمان بستگی دارد.
سناریوی 1: کاربر یک پاس خاص را باز می کند
گام | نقش | شرح |
---|---|---|
1 | کاربر | یک مجوز خاص را در برنامه Google Wallet انتخاب کنید. |
2 | کاربر | روی ترمینال فعال Smart Tap ضربه بزنید. |
3 | پایانه | (شناسه جمع آوری مطابقت دارد) پاس به ترمینال منتقل می شود. (شناسه جمع آوری کننده مطابقت ندارد) پاس به ترمینال منتقل نمی شود. |
سناریو 2: برگه صفحه اصلی Google Wallet یا نمای صفحه باز شده
گام | نقش | شرح |
---|---|---|
1 | کاربر | برگه صفحه اصلی را در برنامه Google Wallet باز کنید یا قفل صفحه دستگاه را باز کنید. |
2 | کاربر | روی ترمینال فعال Smart Tap ضربه بزنید. |
3 | پایانه | (تک تطبیق شناسه جمع کننده معتبر) پاس به ترمینال منتقل می شود. (شناسههای جمعآوری معتبر چندگانه مطابقت دارند) چرخ فلکی از پاسهای معتبر را نمایش دهید و موردی را که کاربر انتخاب کرده است ارسال کنید. |
توجه داشته باشید اعتبار یک پاس به پیکربندی خاص شی pass بستگی دارد. حتماً ویژگی های شی pass زیر را بررسی کنید:
-
state
-
validTimeInterval
نمونه مجموعه Smart Tap
جدول زیر صادرکنندگان و پاسهایی را که در این مثال استفاده خواهند شد، توضیح میدهد:
نام بازرگان | ILuv Coffee | قهوه فو | Mocha-R-Us |
---|---|---|---|
شناسه صادرکننده | 123 | 456 | 789 |
شناسه گردآورنده | 11111111 | 44444444 | 77777777 |
سطوح وفاداری | R-Basic | پاداش های من | |
R-طلا |
ILuvCoffee دو سطح وفاداری متفاوت دارد: R-Basic و R-Gold . در همین حال، Coffee-Foo یک برنامه وفاداری با یک ردیف دارد، My Rewards ، و Mocha-R-Us هیچ برنامه وفاداری ندارد.
به عنوان بخشی از یک کمپین تبلیغات متقابل، بازرگانان مایلند گزینه های زیر را در اختیار مشتریان خود قرار دهند:
- مشتریان ردیف R-Basic می توانند از Smart Tap برای استفاده از عضویت وفاداری خود در Coffee-Foo و Mocha-R-Us استفاده کنند.
- مشتریان ردیف R-Gold نیازی به بازخرید Smart Tap ندارند
- مشتریان My Rewards میتوانند از Smart Tap برای استفاده از عضویت وفاداری خود در Coffee-Foo استفاده کنند
برای اینکه این کمپین کار کند، هر کلاس وفاداری به مقادیر زیر در ویژگی redemptionIssuers
تعریف کلاس نیاز دارد.
کلاس وفاداری | شناسههای صادرکننده بازخرید |
---|---|
R-Basic | ["456", "789"] |
R-طلا | [] |
پاداش های من | ["456"] |
با این پیکربندی، هر شیء عبوری که به این کلاس ها ارجاع می دهد، شناسه های جمع کننده زیر را خواهد داشت:
- R-Basic:
44444444
,77777777
- R-Gold: هیچ شناسه گردآوری شامل نخواهد شد
- جوایز من:
44444444
احراز هویت گردآورنده در زمان ضربه زدن
به عنوان بخشی از پیکربندی صادرکننده ، یک حساب صادرکننده ممکن است چندین کلید عمومی مرتبط با آن داشته باشد. این کلیدهای عمومی در برنامه Google Wallet ذخیره می شوند، که وقتی کاربر روی دستگاه خود روی ترمینال فعال Smart Tap ضربه می زند، از آنها برای احراز هویت استفاده می کند. این مرحله احراز هویت زمانی انجام میشود که برنامه یک شی عبور صادر شده برای کاربر را پیدا کند که شناسه جمعآوری مطابق با مقدار تبلیغ شده توسط ترمینال دارد.
در ادامه مثال در بخش قبل، جدول زیر کلیدهای عمومی مرتبط با هر صادرکننده را توضیح می دهد.
نام بازرگان | ILuv Coffee | قهوه فو | Mocha-R-Us |
---|---|---|---|
شناسه صادرکننده | 123 | 456 | 789 |
شناسه گردآورنده | 11111111 | 44444444 | 77777777 |
سطوح وفاداری | R-Basic | پاداش های من | |
R-طلا | |||
کلیدهای عمومی | aaa | bbb |
یک مشتری نمونه کارتهای وفاداری زیر را در برنامه Google Wallet خود ذخیره کرده است:
- ILuvCoffee: R-Basic
- قهوه فو: جوایز من
مانند قبل، مقادیر زیر در ویژگی redemptionIssuers
برای هر کلاس وفاداری تنظیم شده است.
- R-Basic:
["456", "789"]
- جوایز من:
["456"]
اگر کاربر به دستگاه خود در پایانه های هر تاجر ضربه بزند، سه نتیجه ممکن وجود دارد:
ترمینال تجاری | نتیجه |
---|---|
ILuv Coffee | از آنجایی که ILuvCoffee (شناسه صادرکننده Redemption 123 ) در حال حاضر برای بازخرید کلاس وفاداری خود، R-Basic، پیکربندی نشده است، هیچ چیزی مخابره نمی شود. |
قهوه فو | برنامه Google Wallet با استفاده از کلید عمومی bbb در ترمینال Coffee-Foo احراز هویت میشود. بسته به صفحه فعلی که کاربر در دستگاه خود مشاهده می کند، یکی از سناریوهای فهرست شده در بخش تجربه کاربر رخ می دهد. |
Mocha-R-Us | در این مثال کلید عمومی برای Mocha-R-Us وجود ندارد. حتی اگر برنامه R-Basic را می توان با تاجر بازخرید کرد، نمی تواند به ترمینال احراز هویت شود، بنابراین هیچ چیزی منتقل نمی شود. |
محدودیت های احراز هویت
وقتی یک مجوز با برنامه Google Wallet کاربر همگامسازی میشود، همه صادرکنندگان Redemption آن مجوز از پشتیبان Google Wallet جستجو میشوند. شناسه جمعآوری، کلیدهای عمومی و نسخههای کلید برای هر صادرکننده Redemption به صورت محلی در برنامه Google Wallet ذخیره میشوند.
یک پاس میتواند شناسههای صادرکننده Redemption بسیاری داشته باشد. سپس هر کدام به یک شناسه گردآوری خاص برای یک تاجر خاص نقشه میشوند. علاوه بر این، کلیدهای عمومی و نسخه های کلیدی زیادی برای یک شناسه جمع کننده وجود دارد.
اگر برنامه Google Wallet هیچ مجوزی نداشته باشد که توسط آن ترمینال قابل بازخرید باشد، برای احراز هویت در پایانه تلاش نخواهد کرد. این بر اساس شناسه جمعآوری و نسخه کلید عمومی است. برای بهروزرسانی کلیدهای عمومی برای پاس خود، ترمینال باید اتصال اینترنت داشته باشد تا بتواند کلیدهای عمومی جدید را از Google Wallet بازیابی کند.
یک پاس منفرد می تواند به طور همزمان با بسیاری از کلیدهای عمومی مرتبط شود. برای اطلاعات در مورد تنظیم چندین کلید عمومی برای یک مجوز، به پیکربندی Merchant مراجعه کنید.
انتقال ارزش در حین ضربه زدن
برای ارسال داده از یک پاس در حین ضربه زدن، باید smartTapRedemptionValue
شی پاس تنظیم شود. هنگامی که کلاس مربوط به شی برای Smart Tap فعال شود، این مقدار به ترمینال ارسال می شود.
بر اساس ادغام و مورد استفاده شما، این مقدار برای شناسایی پاس کاربر و انجام هرگونه منطق تراکنش مورد نیاز، مانند موارد زیر استفاده می شود:
- موجودی یا وضعیت کاربر را به روز کنید
- باطن خود را بر اساس تراکنش به روز کنید
- با استفاده از Google Wallet API یک بهروزرسانی برای شی pass صادر کنید تا هرگونه تغییر در وضعیت کاربر را در دستگاهش منعکس کند.
ترمینال و برنامه Google Wallet رمزگذاری تمام داده های منتقل شده از طریق NFC را انجام می دهند. ترمینال رمزگشایی داده ها را پس از انجام Smart Tap انجام می دهد. در داخل دادهها، رکوردهای NDEF Object وجود دارد که هر پاس ارسال شده را نشان میدهد. Service number NDEF Record
شیء سرویس دارای باری است که حاوی مقدار تنظیم شده در ویژگی smartTapRedemptionValue
شی pass است. این بدان معناست که توسعهدهنده پاس نیازی به رمزگذاری دادههای ارسالی ندارد.
اگر میخواهید یک لایه امنیتی دیگر اضافه کنید، میتوانید ویژگی smartTapRedemptionValue
را طوری تنظیم کنید که فقط سیستمی که دادههای ارسال شده را دریافت میکند (مانند یک نقطه فروش) بتواند آن را رمزگشایی کند. با این حال، توسعه دهنده پاس و مدیر POS مسئول فرآیند رمزگذاری/رمزگشایی خواهند بود.