स्मार्ट टैप कम्यूनिकेशन फ़्लो

टर्मिनल और Google Wallet ऐप्लिकेशन के बीच कम्यूनिकेशन

टर्मिनल, अपनी पहचान कलेक्टर आईडी से करता है, जिसे रिडीम करने वाले के आईडी से मैप किया जाता है. जब कोई स्मार्ट टैप होता है, तो टर्मिनल अपने कलेक्टर आईडी को उपयोगकर्ता के डिवाइस में भेजता है. इसके बाद, Google Wallet ऐप्लिकेशन सेव किए गए हर पास के क्लास आईडी और कलेक्टर आईडी की जांच करता है. एक या इससे ज़्यादा मिलान मिलने पर, Google Wallet ऐप्लिकेशन, मेल खाने वाले पास को टर्मिनल में भेजता है. सेटअप के बारे में जानकारी के लिए, मर्चेंट कॉन्फ़िगरेशन देखें.

पहला उदाहरण: एक बार रिडीम करने की कंपनी

नीचे दिए गए सेक्शन में, इस ग्राफ़िक में बताए गए सेटअप के बारे में बताया गया है.

पिछले डायग्राम में, क्रेडिट जारी करने वाले दो अलग-अलग लोग हैं:

  • जारी करने वाला 2018, पास डेवलपर है. इसे एग्रीगेटर भी कहा जाता है
  • जारी करने वाला 1990, व्यापारी/कंपनी/कारोबारी है. fooPizza चैनल को रिडेंप्शन जारी करने वाली कंपनी भी कहा जाता है

रिडीम करने की कंपनी, fooPizza, अपने पास के लिए स्मार्ट टैप की सुविधा चालू करना चाहती है. पास को एग्रीगेटर मैनेज करता है. एग्रीगेटर और रिडीम करने वाले को, व्यापारी/कंपनी/कारोबारी के टर्मिनल के लिए स्मार्ट टैप की सुविधा चालू करने के लिए, ये चरण पूरे करने होंगे.

चरण भूमिका ब्यौरा
1 एग्रीगेटर एक पास क्लास और ऑब्जेक्ट (इमेज में, क्रम से abc और 123) बनाएं.
2 एग्रीगेटर पास क्लास की redemptionIssuers प्रॉपर्टी में, रिडेंप्शन जारी करने वाले का आईडी शामिल करें. इससे Google Wallet को पता चलता है कि जारी करने वाला आईडी 1990, इस क्लास से जुड़े पास के ऑब्जेक्ट को रिडीम कर सकता है.
3 रिडेंप्शन जारी करने वाला कलेक्टर आईडी पाएं (इमेज में, 12345678).
4 रिडेंप्शन जारी करने वाला इस्तेमाल किए जाने वाले हर स्मार्ट टैप की सुविधा वाले टर्मिनल पर कलेक्टर आईडी 12345678 सेट करें. क्लास आईडी abc और कलेक्टर आईडी 12345678 वाले किसी भी ऑब्जेक्ट को पाठक को बताया जाएगा.

दूसरा उदाहरण: एक से ज़्यादा बार रिडीम करने वाले आईडी

एक पास क्लास में, कई ऑफ़र रिडीम करने वाले लोग हो सकते हैं. किसी खास पास क्लास को रिडीम करने के लिए, रिडेंप्शन जारी करने वाले का आईडी, क्लास की redemptionIssuers प्रॉपर्टी में शामिल होना चाहिए. ऐसे में, रिडेंप्शन जारी करने वाले हर व्यक्ति के पास अपना कलेक्टर आईडी होता है, जिसे स्मार्ट टैप की सुविधा वाले टर्मिनल पर कॉन्फ़िगर किया जाता है.

नीचे दिए गए सेक्शन में, इस ग्राफ़िक में बताए गए सेटअप के बारे में बताया गया है.

पिछले डायग्राम में, क्रेडिट जारी करने वाले तीन अलग-अलग लोग हैं:

  • जारी करने वाला 8088, पास डेवलपर (एग्रीगेटर) है
  • जारी करने वाला 1990 एक व्यापारी है, fooPizza (रिडेंप्शन जारी करने वाला)
  • जारी करने वाला 2018, व्यापारी/कंपनी/कारोबारी है. yumPie (ऑफ़र रिडीम करने वाला)

व्यापारी/कंपनी/कारोबारी के टर्मिनल के लिए स्मार्ट टैप की सुविधा चालू करने के लिए, एग्रीगेटर और रिडीम करने वालों को ये चरण पूरे करने होंगे.

चरण भूमिका ब्यौरा
1 एग्रीगेटर एक पास क्लास और ऑब्जेक्ट (इमेज में, क्रम से abc और 123) बनाएं.
2 एग्रीगेटर पास क्लास की redemptionIssuers प्रॉपर्टी में, रिडेंप्शन जारी करने वालों के आईडी शामिल करें. इससे Google Wallet को पता चलता है कि आईडी जारी करने वाले आईडी 1990 और 2018 के पास, इस क्लास से जुड़े पास ऑब्जेक्ट को रिडीम करने की अनुमति है.
3 छूट जारी करने वाले कलेक्टर आईडी पाएं (इमेज में, fooPizza के लिए 12345678 और yumPie के लिए 18802001).
4 छूट जारी करने वाले इस्तेमाल किए जाने वाले हर स्मार्ट टैप की सुविधा वाले टर्मिनल पर संबंधित कलेक्टर आईडी सेट करें. क्लास आईडी abc और मेल खाने वाले कलेक्टर आईडी वाला कोई भी ऑब्जेक्ट, रीडर को दिया जाएगा.

तीसरा उदाहरण: कोई एग्रीगेटर नहीं है

पास की क्लास, उसी जारी करने वाले खाते में बनाई और जारी की जा सकती है. इस मामले में, कई बार रिडीम करने वाले लोगों के लिए, पास की क्लास को मैनेज करने वाला कोई एग्रीगेटर नहीं है. किसी खास पास क्लास को रिडीम करने के लिए, पास डेवलपर को क्लास की redemptionIssuers प्रॉपर्टी में अपना जारी करने वाला आईडी शामिल करना होगा. इसके बाद, पास डेवलपर को एक कलेक्टर आईडी लेना होगा और उसे अपने ऐसे टर्मिनल पर कॉन्फ़िगर करना होगा जिस पर स्मार्ट टैप की सुविधा काम करती है.

नीचे दिए गए सेक्शन में, इस ग्राफ़िक में बताए गए सेटअप के बारे में बताया गया है.

व्यापारी/कंपनी/कारोबारी के टर्मिनल के लिए स्मार्ट टैप की सुविधा चालू करने के लिए, पास डेवलपर को ये चरण पूरे करने होंगे.

चरण भूमिका ब्यौरा
1 पास डेवलपर एक पास क्लास और ऑब्जेक्ट (इमेज में, क्रम से abc और 123) बनाएं.
2 पास डेवलपर पास क्लास की redemptionIssuers प्रॉपर्टी में, अपना सर्टिफ़िकेट देने वाला आईडी शामिल करें. इससे Google Wallet को पता चलता है कि जारी करने वाले आईडी 2018 के पास, इस क्लास से जुड़े पास ऑब्जेक्ट को रिडीम करने की अनुमति है.
3 पास डेवलपर कलेक्टर आईडी पाएं (इमेज में, 12345678).
4 पास डेवलपर इस्तेमाल किए जाने वाले हर स्मार्ट टैप की सुविधा वाले टर्मिनल पर संबंधित कलेक्टर आईडी सेट करें. क्लास आईडी abc और मेल खाने वाले कलेक्टर आईडी वाला कोई भी ऑब्जेक्ट, रीडर को दिया जाएगा.

उपयोगकर्ता अनुभव और व्यवहार

टर्मिनल और Google Wallet ऐप्लिकेशन के बीच ट्रांसमिट होने वाले डेटा का व्यवहार उपयोगकर्ता पर निर्भर करता है. यह उपयोगकर्ता पर निर्भर करता है कि उस समय वे Google Wallet ऐप्लिकेशन से किस तरह इंटरैक्ट कर रहे हैं.

पहली स्थिति: उपयोगकर्ता कोई खास पास खोलता है

चरण भूमिका ब्यौरा
1 उपयोगकर्ता Google Wallet ऐप्लिकेशन में जाकर, किसी पास की जानकारी चुनें.
2 उपयोगकर्ता स्मार्ट टैप की सुविधा वाले टर्मिनल पर टैप करें.
3 टर्मिनल (कलेक्टर आईडी मैच होता है) पास को टर्मिनल पर भेजा जाता है.
(कलेक्टर आईडी मेल नहीं खाता) पास को टर्मिनल में ट्रांसमिट नहीं किया जाता है.

दूसरी स्थिति: Google Wallet का होम टैब या अनलॉक किया गया स्क्रीन व्यू

चरण भूमिका ब्यौरा
1 उपयोगकर्ता Google Wallet ऐप्लिकेशन में होम टैब खोलें या डिवाइस की स्क्रीन अनलॉक करें.
2 उपयोगकर्ता स्मार्ट टैप की सुविधा वाले टर्मिनल पर टैप करें.
3 टर्मिनल (एक मान्य कलेक्टर आईडी मैच) पास को टर्मिनल में भेजा जाता है.
(एक से ज़्यादा मान्य कलेक्टर आईडी मैच होने पर) मान्य पास का कैरसेल दिखाना और उपयोगकर्ता के चुने गए पास का कैरसेल दिखाना.

ध्यान दें कि पास की वैधता, पास ऑब्जेक्ट के खास कॉन्फ़िगरेशन पर निर्भर करती है. नीचे दी गई पास ऑब्जेक्ट प्रॉपर्टी की जांच करना न भूलें:

  • state
  • validTimeInterval

स्मार्ट टैप कलेक्शन के उदाहरण

यहां दी गई टेबल में उन जारी करने वालों और पास की जानकारी दी गई है जिनका इस्तेमाल इस उदाहरण में किया जाएगा:

कारोबारी या कंपनी का नाम ILuvCoffee कॉफ़ी-फ़ू मोका-आर-यूएस
जारी करने वाले का आईडी 123 456 789
कलेक्टर आईडी 11111111 44444444 77777777
लॉयल्टी टीयर आर-बेसिक मेरे इनाम
आर-गोल्ड

ILuvCoffee में दो अलग-अलग लॉयल्टी टीयर हैं: R- Basic और R-Gold. इस बीच, Coffee-Foo में एक लॉयल्टी प्रोग्राम है जिसका एक टीयर है, मेरे इनाम, और Mocha-R-Us का कोई लॉयल्टी प्रोग्राम नहीं है.

क्रॉस-प्रमोशन कैंपेन के हिस्से के तौर पर, व्यापारी/कंपनी/कारोबारी चाहें, तो अपने ग्राहकों के लिए ये विकल्प उपलब्ध कराएं:

  • R-बेसिक लेवल की सदस्यता लेने वाले ग्राहक, Coffee-Foo और Mocha-R-Us, दोनों में अपनी लॉयल्टी सदस्यता रिडीम करने के लिए, स्मार्ट टैप का इस्तेमाल कर सकते हैं
  • R-Gold टियर के ग्राहकों को स्मार्ट टैप रिडीम करने की ज़रूरत नहीं है
  • मेरे इनाम ग्राहक सिर्फ़ Coffee-Foo पर अपनी लॉयल्टी सदस्यता रिडीम करने के लिए स्मार्ट टैप का इस्तेमाल कर सकते हैं

इस कैंपेन के काम करने के लिए, हर लॉयल्टी क्लास को क्लास डेफ़िनिशन की redemptionIssuers प्रॉपर्टी में सेट की गई इन वैल्यू की ज़रूरत होगी.

लॉयल्टी क्लास रिडेंप्शन जारी करने वाले के आईडी
आर-बेसिक ["456", "789"]
आर-गोल्ड []
मेरे इनाम ["456"]

इस कॉन्फ़िगरेशन से, इन क्लास का रेफ़रंस देने वाले किसी भी पास ऑब्जेक्ट में ये कलेक्टर आईडी होंगे:

  • R-बेसिक: 44444444, 77777777
  • आर-गोल्ड: कोई कलेक्टर आईडी शामिल नहीं किया जाएगा
  • मेरे इनाम: 44444444

टैप करते समय, कलेक्टर की पुष्टि करें

जारी करने वाले के कॉन्फ़िगरेशन के तौर पर, किसी जारी करने वाले खाते में एक से ज़्यादा सार्वजनिक कुंजियां हो सकती हैं. ये सार्वजनिक पासकोड, Google Wallet ऐप्लिकेशन में सेव किए जाते हैं. जब कोई उपयोगकर्ता अपने डिवाइस पर स्मार्ट टैप की सुविधा वाले टर्मिनल पर टैप करता है, तब इन कुंजियों की मदद से पुष्टि की जाती है. पुष्टि करने की यह प्रक्रिया तब होती है, जब ऐप्लिकेशन को उपयोगकर्ता के लिए जारी किया गया पास ऑब्जेक्ट मिलता है. कलेक्टर आईडी, टर्मिनल से विज्ञापन में दिखाई गई वैल्यू से मेल खाता है.

पिछले सेक्शन में दिए गए उदाहरण को जारी रखते हुए, नीचे दी गई टेबल में हर जारी करने वाले से जुड़ी सार्वजनिक कुंजियों के बारे में बताया गया है.

कारोबारी या कंपनी का नाम ILuvCoffee कॉफ़ी-फ़ू मोका-आर-यूएस
जारी करने वाले का आईडी 123 456 789
कलेक्टर आईडी 11111111 44444444 77777777
लॉयल्टी टीयर आर-बेसिक मेरे इनाम
आर-गोल्ड
सार्वजनिक कुंजियां aaa bbb

उदाहरण के लिए, ग्राहक के Google Wallet ऐप्लिकेशन में ये लॉयल्टी कार्ड सेव हैं:

  • ILuvCoffee: आर-बेसिक
  • कॉफ़ी-फ़ू: मेरे इनाम

पहले की तरह ही, हर लॉयल्टी क्लास के लिए redemptionIssuers प्रॉपर्टी में ये वैल्यू सेट की जाती हैं.

  • आर-बेसिक: ["456", "789"]
  • मेरे इनाम: ["456"]

अगर उपयोगकर्ता हर कारोबारी के लिए, टर्मिनल पर अपने डिवाइस पर टैप करता है, तो इस तरह के तीन नतीजे हो सकते हैं:

मर्चेंट टर्मिनल नतीजा
ILuvCoffee फ़िलहाल, ILuvCoffee (रिडेंप्शन जारी करने वाले आईडी 123) को अपनी लॉयल्टी क्लास, R-बेसिक को रिडीम करने के लिए कॉन्फ़िगर नहीं किया गया है. इसलिए, कुछ भी ट्रांसमिट नहीं किया जाता.
कॉफ़ी-फ़ू Google Wallet ऐप्लिकेशन, bbb सार्वजनिक कुंजी का इस्तेमाल करके कॉफ़ी-फ़ू टर्मिनल की पुष्टि करता है. उपयोगकर्ता अपने डिवाइस पर जिस मौजूदा स्क्रीन को देख रहा है उसके हिसाब से, उपयोगकर्ता अनुभव सेक्शन में बताई गई कोई एक स्थिति दिखेगी.
मोका-आर-यूएस इस उदाहरण में, Mocha-R-Us के लिए कोई सार्वजनिक कुंजी नहीं है. हालांकि, R-बेसिक प्रोग्राम को कारोबारी की मदद से रिडीम किया जा सकता है, लेकिन इसकी पुष्टि टर्मिनल को नहीं की जा सकती. इसलिए, कुछ भी ट्रांसमिट नहीं किया जाएगा.

पुष्टि करने की सीमाएं

जब कोई पास, उपयोगकर्ता के Google Wallet ऐप्लिकेशन के साथ सिंक किया जाता है, तो उस पास को रिडीम करने वाले सभी लोग Google Wallet बैकएंड में दिखेंगे. रिडेंप्शन जारी करने वाले हर व्यक्ति का कलेक्टर आईडी, सार्वजनिक पासकोड, और मुख्य वर्शन की जानकारी, Google Wallet ऐप्लिकेशन में सेव होती है.

एक पास में, रिडीम करने वाले के कई आईडी हो सकते हैं. इसके बाद, हर लेवल को किसी व्यापारी/कंपनी के खास कलेक्टर आईडी से मैप किया जाता है. इसके अलावा, एक कलेक्टर आईडी के लिए कई सार्वजनिक कुंजियां और मुख्य वर्शन हो सकते हैं.

अगर Google Wallet ऐप्लिकेशन में ऐसा कोई पास नहीं है जिसे उस टर्मिनल से रिडीम किया जा सके, तो वह टर्मिनल की पुष्टि करने की कोशिश नहीं करेगा. यह कलेक्टर आईडी और सार्वजनिक पासकोड के वर्शन पर आधारित है. आपके पास की सार्वजनिक कुंजियां अपडेट करने के लिए, टर्मिनल में इंटरनेट कनेक्शन होना ज़रूरी है, ताकि वह Google Wallet बैकएंड से नई सार्वजनिक कुंजियां हासिल कर सके.

एक पास को एक साथ कई सार्वजनिक कुंजियों के साथ जोड़ा जा सकता है. एक ही पास के लिए, एक से ज़्यादा सार्वजनिक कुंजियां सेट करने के बारे में जानकारी पाने के लिए, व्यापारी कॉन्फ़िगरेशन देखें.

टैप करने के दौरान होने वाले ट्रांसमिशन की वैल्यू तय करें

टैप करने के दौरान पास से डेटा भेजने के लिए, पास ऑब्जेक्ट का smartTapRedemptionValue सेट होना ज़रूरी है. ऑब्जेक्ट से जुड़ी क्लास के स्मार्ट टैप के लिए चालू होने पर, यह वैल्यू टर्मिनल को भेज दी जाएगी.

आपके इंटिग्रेशन और इस्तेमाल के उदाहरण के आधार पर, इस वैल्यू का इस्तेमाल आपके उपयोगकर्ता के पास की पहचान करने और ट्रांज़ैक्शन के लॉजिक के हिसाब से करने के लिए किया जाएगा. नीचे इसका उदाहरण दिया गया है:

  1. उपयोगकर्ता का बैलेंस या स्थिति अपडेट करना
  2. ट्रांज़ैक्शन के आधार पर अपना बैकएंड अपडेट करें
  3. Google Wallet API का इस्तेमाल करके, पास ऑब्जेक्ट को अपडेट करें, ताकि उपयोगकर्ता के डिवाइस पर उसकी स्थिति में होने वाले किसी भी बदलाव को दिखाया जा सके

टर्मिनल और Google Wallet ऐप्लिकेशन, एनएफ़सी से भेजे गए सभी डेटा को एन्क्रिप्ट (सुरक्षित) करने का काम करते हैं. स्मार्ट टैप होने के बाद टर्मिनल, डेटा के डिक्रिप्शन को हैंडल करता है. डेटा में, सर्विस ऑब्जेक्ट एनडीएफ़ रिकॉर्ड मौजूद होते हैं, जो ट्रांसमिट किए गए हर पास की जानकारी देते हैं. सर्विस ऑब्जेक्ट के Service number NDEF Record में एक पेलोड होता है. इसमें पास ऑब्जेक्ट की smartTapRedemptionValue प्रॉपर्टी में सेट की गई वैल्यू होती है. इसका मतलब है कि पास डेवलपर को ट्रांसमिट किए गए डेटा को एन्क्रिप्ट (सुरक्षित) करने की ज़रूरत नहीं होती.

सुरक्षा की एक और लेयर जोड़ने के लिए, smartTapRedemptionValue प्रॉपर्टी को सेट करें. ऐसा करने से, सिर्फ़ वह सिस्टम ही इसे डिक्रिप्ट कर सकता है जिसे ट्रांसमिट किया गया डेटा (जैसे, बिक्री की जगह) मिल रहा हो. हालांकि, एन्क्रिप्ट (सुरक्षित) करने या डिक्रिप्शन की प्रोसेस के लिए, पास डेवलपर और पीओएस एडमिन ज़िम्मेदार होंगे.