রোটেটিং বারকোড

ভূমিকা

ঘূর্ণায়মান বারকোড দেখতে সাধারণ বারকোডের মতোই হয়, তবে এটি নির্দিষ্ট সময় অন্তর পরিবর্তিত হয়, সাধারণত প্রতি মিনিটে এবং টার্মিনাল/রিডারকে এমনভাবে প্রোগ্রাম করা হয় যাতে এটি শুধুমাত্র সবচেয়ে সাম্প্রতিক বারকোড গ্রহণ করে। এই নিরাপত্তা ব্যবস্থা বারকোডের স্ক্রিনশট নেওয়ার সাথে সম্পর্কিত ঝুঁকি কমায়, বিশেষ করে টিকিট চুরি বা অননুমোদিতভাবে টিকিট পুনরায় বিক্রি করা। যেসব ডিভাইসে NFC কাজ করে না (হার্ডওয়্যার না থাকা বা সফ্টওয়্যার বন্ধ থাকার কারণে) এবং স্মার্ট ট্যাপ ব্যবহার করা যায় না, সেগুলিতে ফলব্যাক হিসেবে রোটেটিং বারকোড ব্যবহার করা যেতে পারে।

API রেফারেন্স

রোটেটিং বারকোড সম্পর্কে প্রযুক্তিগত বিবরণের জন্য, 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. স্মার্ট ট্যাপ: স্মার্ট-ট্যাপ পেলোড নির্দিষ্ট করা থাকলে এবং ডিভাইসে NFC/HCE কাজ করলে
    • মনে রাখবেন, ব্যবহারকারী "কোড দেখুন" বিকল্পে ক্লিক করে এটি ওভাররাইড করতে পারেন, যার ফলে ঘূর্ণায়মান বারকোড/স্ট্যাটিক বারকোড দেখানো হবে।
  2. রোটেটিং বারকোড: রোটেটিং বারকোড পেলোড নির্দিষ্ট করা থাকলে
  3. স্ট্যাটিক বারকোড: বারকোড পেলোড নির্দিষ্ট করা থাকলে

একাধিক রিডেম্পশন পেলোড উল্লেখ করলে সব ব্যবহারকারীকে সহায়তা করা যাবে, তবে এর ফলে নিরাপত্তা সংক্রান্ত সমস্যা হতে পারে। বিশেষ করে, রোটেটিং বারকোডের পরিবর্তে স্ট্যাটিক বারকোড ব্যবহার করলে, রোটেটিং বারকোড ব্যবহারের ফলে যেসব নিরাপত্তা সংক্রান্ত সুবিধা পাওয়া যায়, তার বেশিরভাগই পাওয়া যায় না। স্ট্যাটিক বারকোড ফলব্যাক শুধুমাত্র ওয়েব ভিউতে অথবা রোটেটিং বারকোড কাজ করে না এমন ক্লায়েন্টে দেখানো হবে। আজকের দিনে, আমরা আশা করি যে সব Google Wallet ক্লায়েন্ট রোটেটিং বারকোড সাপোর্ট করবে।

Flow সেভ করুন

Google Wallet API-তে একাধিক ফ্লো আছে, যার মধ্যে রয়েছে:

  • সেভ করার সময় বা তার আগে জেনেরিক ক্লাস তৈরি করা
  • আপনার JWT-তে সম্পূর্ণ অবজেক্ট পাঠানো অথবা সময়ের আগেই অবজেক্ট সেভ করা এবং তারপর আপনার JWT-তে আইডি দ্বারা সেগুলিকে রেফারেন্স করা
  • অবজেক্ট সেভ করার পরে তা আপডেট করা

প্রস্তাবিত rotatingBarcode ফিল্ডটি এই সমস্ত ফ্লোর সাথে মানানসই, তবে, নিরাপত্তা উন্নত করার জন্য, আমরা নিম্নলিখিত সাজেশন দিচ্ছি:

  • object:insert API কল করে Google Wallet সার্ভারে পাস যোগ করুন এবং আপনার JWT-তে আইডি অনুযায়ী নির্দিষ্ট অবজেক্ট রেফারেন্স করতে 'Google Wallet-এ যোগ করুন' বোতাম কনফিগার করুন। এটি নিশ্চিত করে যে ফলাফলস্বরূপ JWT-তে রোটেটিং বারকোডের গোপন কী অন্তর্ভুক্ত নেই।
  • একটি ওটিপি সিক্রেট কী ব্যবহার করুন যা একটি পাসের জন্য প্রযোজ্য
  • আপডেট না করা হলে, পাসটি যতদিন বৈধ থাকবে, 'কী'টিও ততদিন বৈধ থাকবে বলে আশা করা হচ্ছে। আমরা আশা করি না যে স্বাভাবিক অপারেশন চলাকালীন এই কী কোনও ফ্রিকোয়েন্সিতে আপডেট করা হবে।

নিম্নলিখিত সিকোয়েন্স ডায়াগ্রামটি সাধারণ ইন্টিগ্রেশনের জন্য বিভিন্ন অ্যাক্টরের মধ্যে ফ্লো ব্যাখ্যা করে:

রোটেটিং বারকোড ব্যবহার করার জন্য সিকোয়েন্স ডায়াগ্রাম