একজন শেষ-ব্যবহারকারীকে তাদের Google Wallet-এ সংরক্ষণ করার জন্য আপনি যে পাসগুলি ইস্যু করতে পারেন তার প্রায় সবকটিই দুটি উপাদান দ্বারা সংজ্ঞায়িত করা হয়: একটি পাস ক্লাস এবং একটি পাস অবজেক্ট৷ যে কোনো সময় আপনি একজন ব্যবহারকারীকে পাস ইস্যু করবেন, আপনার পাস ক্লাস এবং পাস অবজেক্ট উভয়েরই একটি উদাহরণ প্রয়োজন হবে, যা Google Wallet API-কে বলে দেয় কোন ধরনের পাস তৈরি করতে হবে, সেইসাথে পাসে প্রদর্শনের বিবরণ যেমন একটি উপহার কার্ড বা টিকিটধারীর নামের মূল্য।
Google Wallet API পাস ক্লাস এবং পাসেস অবজেক্টের একটি পূর্বনির্ধারিত সেট সরবরাহ করে যেগুলির আপনি উদাহরণ তৈরি করেন, তারপর একটি পাস তৈরি করতে ব্যবহার করুন যা ব্যবহারকারীকে জারি করা হয়, যেমন GiftCardClass
এবং GiftCardObject
, GenericClass
এবং GenericObject
, এবং অন্যান্য৷
প্রতিটি পাস ক্লাস এবং পাস অবজেক্ট ইনস্ট্যান্সকে একটি JSON অবজেক্ট হিসাবে সংজ্ঞায়িত করা হয়েছে, যেটিতে প্রয়োজনীয় এবং ঐচ্ছিক বৈশিষ্ট্যের একটি সেট রয়েছে যা সেই পাস প্রকারের জন্য নির্দিষ্ট ব্যবহারের ক্ষেত্রের সাথে সামঞ্জস্যপূর্ণ।
ক্লাস পাশ করে
একটি পাস ক্লাসকে একটি ভাগ করা টেমপ্লেট হিসাবে ভাবুন যা এক বা একাধিক পাস তৈরি করতে ব্যবহৃত হয় যা আপনি আপনার ব্যবহারকারীদের কাছে ইস্যু করবেন৷ একটি পাস ক্লাস বৈশিষ্ট্যগুলির একটি সাধারণ সেটকে সংজ্ঞায়িত করে যা এটি উল্লেখ করে এমন সমস্ত পাসগুলিতে অন্তর্ভুক্ত করা হবে।
উদাহরণ স্বরূপ, EventTicketClass
এর নিম্নলিখিত উদাহরণটি এমন ক্ষেত্রগুলিকে সংজ্ঞায়িত করে যা একটি আসন্ন ইভেন্টের (ভেন্যু, ইভেন্টের নাম, ইস্যুকারী, তারিখ/সময়) জন্য সমস্ত জারি করা টিকিটের জন্য সাধারণ।
{ "id": "ISSUER_ID.EVENT_CLASS_ID", "issuerName": "[TEST ONLY] Heraldic Event", "localizedIssuerName": { "defaultValue": { "language": "en-US", "value": "[TEST ONLY] Heraldic Event" } }, "eventName": { "defaultValue": { "language": "en-US", "value": "Google Live" } }, "venue": { "name": { "defaultValue": { "language": "en-US", "value": "Shoreline Amphitheater" } }, "address": { "defaultValue": { "language": "en-US", "value": "ADDRESS_OF_THE_VENUE" } } }, "dateTime": { "start": "2023-04-12T11:30" }, "reviewStatus": "UNDER_REVIEW" }
একটি পাস ক্লাসের প্রতিটি উদাহরণের জন্য একটি id
সম্পত্তি প্রয়োজন, যা আপনি নির্দিষ্ট করেছেন। এই ক্লাস আইডিটি একটি অনন্য শনাক্তকারী হিসাবে কাজ করে যা আপনি যখনই এটি ব্যবহার করবেন একটি নতুন পাস অবজেক্ট ইনস্ট্যান্স তৈরি করতে আপনি উল্লেখ করবেন।
অবজেক্ট পাস করে
যদিও একটি পাস ক্লাসের একটি উদাহরণ এক বা একাধিক পাসে ব্যবহার করার জন্য ভাগ করা বৈশিষ্ট্যগুলির একটি সেট নির্দিষ্ট করে, একটি পাস অবজেক্ট একটি নির্দিষ্ট পাসের অনন্য বিবরণ নির্দিষ্ট করে যা একটি নির্দিষ্ট ব্যবহারকারীকে জারি করা হয়।
উদাহরণস্বরূপ, যখন একটি ইভেন্ট টিকিট পাস Google Wallet API-এর সাথে তৈরি করা হয়, একটি EventTicketObject
দৃষ্টান্তে সেই টিকিটের জন্য নির্ধারিত আসনের বৈশিষ্ট্য অন্তর্ভুক্ত থাকে কারণ সেই মানগুলি ইস্যু করা প্রতিটি টিকিটের জন্য অনন্য হবে৷
{ "id": "ISSUER_ID.OBJECT_ID", "classId": "ISSUER_ID.EVENT_CLASS_ID", "state": "ACTIVE", "seatInfo": { "seat": { "defaultValue": { "language": "en-us", "value": "9" } }, "row": { "defaultValue": { "language": "en-us", "value": "L" } }, "section": { "defaultValue": { "language": "en-us", "value": "45" } }, "gate": { "defaultValue": { "language": "en-us", "value": "7C" } } }, "barcode": { "type": "BARCODE_TYPE_UNSPECIFIED", "value": "BARCODE_VALUE", "alternateText": "" } }
একটি পাস অবজেক্টের প্রতিটি উদাহরণের জন্য একটি id
বৈশিষ্ট্য প্রয়োজন, যা আপনি নির্দিষ্ট করেছেন। এই অবজেক্ট আইডি একটি অনন্য শনাক্তকারী হিসাবে কাজ করে যা আপনি যখন কোনও ব্যবহারকারীকে পাস ইস্যু করবেন তখন আপনি উল্লেখ করবেন।
কিভাবে পাস ক্লাস পাস অবজেক্টের সাথে কাজ করে
পাস অবজেক্টগুলিকে অবশ্যই একটি পাস ক্লাসের একটি উদাহরণ প্রসারিত করতে হবে তার ক্লাস আইডি উল্লেখ করে বা সম্পূর্ণ পাস ক্লাস সংজ্ঞা সহ। একটি পাস ক্লাস এবং পাস অবজেক্ট ইনস্ট্যান্সের মধ্যে এই সম্পর্কটির অর্থ হল আপনি এমন বৈশিষ্ট্যগুলি সেট এবং আপডেট করতে পারেন যা পাস ক্লাস ইন্সট্যান্সের মাধ্যমে সমস্ত জারি করা পাসের জন্য সাধারণ এবং পাস অবজেক্ট ইনস্ট্যান্সে একটি পৃথক পাসের জন্য অনন্য বৈশিষ্ট্যগুলি।
উদাহরণস্বরূপ, একটি সাধারণ ইভেন্ট টিকিট পাসের নিম্নলিখিত চিত্রটি দেখায় যে কীভাবে ভাগ করা EventTicketClass
এ সংজ্ঞায়িত ক্ষেত্রগুলি এবং EventTicketObject
এ সংজ্ঞায়িত একটি নির্দিষ্ট টিকিটের ক্ষেত্রগুলি চূড়ান্ত জারি করা পাস তৈরি করতে একত্রিত হয়৷ পাসেস ক্লাসের আইডি পাস অবজেক্টের classId
সম্পত্তিতে কীভাবে উল্লেখ করা হয় তা নোট করুন।
একটি পাস ক্লাস ইনস্ট্যান্স ইনস্ট্যান্সে করা পরিবর্তনগুলি সমস্ত পাস অবজেক্ট ইনস্ট্যান্স জুড়ে অবিলম্বে প্রচারিত হবে যা এটি উল্লেখ করে। পরের বার সিঙ্ক করার সময় ব্যবহারকারীরা তাদের Google Wallet অ্যাপে পাসে প্রতিফলিত পাসের ক্লাস ইন্সট্যান্সে আপনার করা যেকোনো পরিবর্তন দেখতে পাবে।
ব্যবহারকারীর Google Wallet-এ একটি পাস যোগ করা
একজন ব্যবহারকারীর Google Wallet-এ একটি পাস যোগ করার জন্য, আপনি একটি JSON ওয়েব টোকেন (JWT) তৈরি করেন যাতে আপনি (ইস্যুকারী) পাস অবজেক্ট ইনস্ট্যান্স সম্পর্কে যে দাবি করছেন তা ব্যবহারকারীর Google Wallet-এ সংরক্ষিত হবে - সবচেয়ে গুরুত্বপূর্ণভাবে, অবজেক্ট আইডি পাস অবজেক্টের উদাহরণ যা আপনি ব্যবহারকারীকে ইস্যু করছেন। JWT তারপর Google Wallet বাটনে যোগ করুন বা Google Wallet লিঙ্কের মাধ্যমে ব্যবহারকারীর কাছে বিতরণ করা হয়।
কোনো ব্যবহারকারী তাদের Google Wallet-এ ইস্যু করা পাস যোগ করার জন্য বোতাম বা লিঙ্কে ক্লিক করার পর, JWT-এ এনকোড করা পাস অবজেক্ট ইনস্ট্যান্সের একটি লিঙ্ক সেই ব্যবহারকারীর Google অ্যাকাউন্টের সাথে লিঙ্ক করা হয়। এর মানে হল যে ব্যবহারকারী যখন আবার বোতামে ক্লিক করেন, সেই পাসেস অবজেক্টের একটি লিঙ্ক ইতিমধ্যেই বিদ্যমান থাকে, তাই ডুপ্লিকেট কপি ব্যবহারকারীর ওয়ালেটে যোগ করা হবে না।
যদি একজন ব্যবহারকারী Google Wallet অ্যাপ থেকে একটি পাস সরিয়ে দেয়, তাহলে সংশ্লিষ্ট পাস অবজেক্টের উদাহরণ স্বয়ংক্রিয়ভাবে ব্যবহারকারীর কাছ থেকে ডি-লিঙ্ক হয়ে যায়, কিন্তু এটি মুছে ফেলা হয় না। এর মানে হল যে কোনও ব্যবহারকারী নতুন পাস অবজেক্ট ইনস্ট্যান্স বা JWT তৈরি করার প্রয়োজন ছাড়াই পাসটি সংরক্ষণ করতে আবার Google Wallet বোতামে বা লিঙ্কে ক্লিক করতে পারেন।