रोटेटिंग बारकोड

शुरुआती जानकारी

रोटेट होने वाले बारकोड, किसी सामान्य बारकोड की तरह ही दिखते हैं. हालांकि, इनमें समय-समय पर बदलाव होता रहता है. आम तौर पर, यह हर मिनट में बदलता है. साथ ही, टर्मिनल/रीडर को इस तरह से प्रोग्राम किया जाता है कि यह सिर्फ़ हाल ही के बारकोड को स्वीकार करे. सुरक्षा के इस उपाय से, बारकोड का स्क्रीनशॉट लेने से जुड़े जोखिमों में कमी आती है. जैसे, टिकट की चोरी या बिना अनुमति के टिकट दोबारा बेचना. रोटेटिंग बारकोड, उन डिवाइसों के लिए भी विकल्प के तौर पर काम कर सकते हैं जिन्हें एनएफ़सी (हार्डवेयर की कमी या सॉफ़्टवेयर बंद) की वजह से, स्मार्ट टैप की सुविधा का फ़ायदा नहीं मिलता.

एपीआई का संदर्भ

रोटेटिंग बारकोड के बारे में तकनीकी जानकारी के लिए, RotatingBarcode टाइप देखें.

पेलोड का उदाहरण

JSON
{
  "rotatingBarcode": {
    "type": "QR_CODE",
    "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}",
    "alternateText": "Ticket#: 1234567890",
    "totpDetails": {
      "algorithm": "TOTP_SHA1",
      "periodMillis": "3000",
      "parameters": [
        {
          "key": "3132333435363738393031323334353637383930",
          "valueLength": "8"
        }
      ]
    }
  }
}

फ़ॉलबैक मैकेनिज़्म

पास को कॉन्फ़िगर करने के तरीके और डिवाइस की क्षमताओं के आधार पर, उपयोगकर्ता के डिवाइस पर, एक समय में रिडीम करने का सिर्फ़ एक तरीका इस्तेमाल किया जाता है. प्राथमिकता के हिसाब से, ऑफ़र रिडीम करने के इन तरीकों का इस्तेमाल किया जाता है:

  1. स्मार्ट टैप: अगर स्मार्ट-टैप पेलोड के बारे में बताया गया है और डिवाइस पर एनएफ़सी/एचसीई काम करता है या नहीं
    • ध्यान दें, उपयोगकर्ता "कोड दिखाएं" पर क्लिक करके, इसे बदल सकते हैं. इससे, बारी-बारी आने वाले बारकोड/स्टैटिक बारकोड को दिखाने की प्रेरणा मिलेगी.
  2. रोटेटिंग बारकोड: अगर कोई रोटेटिंग बारकोड पेलोड दिया गया है
  3. स्टैटिक बारकोड: अगर बारकोड पेलोड के बारे में बताया गया है

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

फ़्लो सेव करें

Google Wallet API कई तरह के फ़्लो की सुविधा देता है, जिनमें ये शामिल हैं:

  • समय बचाने या समय से पहले ऑफ़र की क्लास बनाना
  • अपने JWT में पूरे ऑब्जेक्ट भेजना या समय से पहले ऑब्जेक्ट सेव करना. इसके बाद, अपने JWT में आईडी की मदद से उनका रेफ़रंस देना
  • ऑब्जेक्ट सेव होने के बाद उन्हें अपडेट करना

प्रस्तावित रोटेटिंगबारकोड फ़ील्ड इन सभी फ़्लो के साथ काम करता है. हालांकि, सुरक्षा को बेहतर बनाने के लिए हमारा सुझाव है कि आप ये काम करें:

  • Google Wallet सर्वर में पास की जानकारी डालने के लिए, object:insert एपीआई को कॉल करें. साथ ही, JWT में आईडी के हिसाब से किसी ऑब्जेक्ट का रेफ़रंस देने के लिए, 'Google Wallet में जोड़ें' बटन को कॉन्फ़िगर करें. इससे यह पक्का होता है कि JWT में रोटेट होने वाले बारकोड की सीक्रेट कुंजी शामिल नहीं की जाएगी.
  • ओटीपी वाले ऐसे सीक्रेट पासकोड का इस्तेमाल करें जो सिंगल पास के दायरे में हो
  • कुंजी के अपडेट होने तक, यह ज़रूरी है कि वह पास की अवधि तक मान्य हो. हमें उम्मीद नहीं है कि सामान्य कार्रवाई के दौरान, इस बटन को किसी भी बार अपडेट किया जाएगा.

नीचे दिया गया क्रम डायग्राम, सामान्य इंटिग्रेशन के लिए अलग-अलग ऐक्टर के बीच फ़्लो को दिखाता है:

रोटेटिंग बारकोड इस्तेमाल करने का सीक्वेंस डायग्राम