লয়ালটি এনরোলমেন্ট ও সাইন-ইন ফিচারের মাধ্যমে ব্যবহারকারীরা আপনার লয়ালটি প্রোগ্রাম সার্চ করতে এবং সরাসরি Google Wallet থেকে তাদের অ্যাকাউন্টে যোগ দিতে বা সাইন-ইন করতে পারবেন। প্রসেস সম্পূর্ণ করার জন্য ব্যবহারকারীদের আপনার মোবাইল-ফ্রেন্ডলি ওয়েবসাইটে নিয়ে যাওয়া হবে, যার পরে তারা Google Wallet-এ তাদের অফিসিয়াল কার্ড যোগ করতে পারবেন।
"স্ট্যাটিক" ব্যবহারকারীর যোগ করা পাসকে "ডায়নামিক" API লিঙ্ক করা পাসে পরিবর্তন করার জন্য এই ফিচার প্রয়োগ করা আবশ্যক। এই নির্দেশিকা থেকে আপনি সুবিধাগুলির একটি ওভারভিউ এবং এনরোলমেন্ট, সাইন-ইন এবং পাস আপগ্রেডের জন্য আপনার লয়ালটি প্রোগ্রাম চালু করার জন্য প্রয়োজনীয় বাস্তবায়নের ধাপগুলি পাবেন।
এক নজরে
শুরু করার জন্য, আপনার প্রোজেক্ট আগে থেকে সেট-আপ করা আছে কিনা এবং Google Wallet API-তে অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন।
ফিচারটি প্রয়োগ করতে আপনাকে অবশ্যই এই চারটি ধাপ অনুসরণ করতে হবে:
- টেস্ট ক্লাস সেট-আপ করুন: আপনার ফ্লো টেস্ট করার জন্য Google Wallet কনফিগার করুন।
- পৃষ্ঠা ডেভেলপ করা: Google Wallet
SharedDataTypeব্যবহার করে এনরোলমেন্ট/সাইন-ইন পৃষ্ঠা তৈরি করুন। - পুশ ব্যাক প্রয়োগ করুন: অ্যাকশন নেওয়ার পরে লয়ালটি কার্ড Google Wallet-এ পাঠান।
- যাচাইকরণের অনুরোধ: পর্যালোচনার জন্য জমা দিন এবং আপগ্রেড অ্যাক্টিভেশনের অনুরোধ করুন।
লয়ালটি এনরোলমেন্ট কেন প্রয়োগ করবেন?
এই ইন্টিগ্রেশনের গুরুত্ব বুঝতে, Google Wallet-এ উপলভ্য দুই ধরনের পাসের মধ্যে পার্থক্য বোঝা জরুরি: L1 (ব্যবহারকারীর যোগ করা) এবং L2 (পার্টনারের ইস্যু করা)।
L1 এবং L2-এর মধ্যে পার্থক্য
| ফিচার | L1 পাস (ব্যবহারকারীর যোগ করা) | L2 পাস (পার্টনার-ইস্যু করা) |
|---|---|---|
| উৎপত্তি | ব্যবহারকারী ম্যানুয়ালি ফিজিক্যাল কার্ড স্ক্যান করলে বা নম্বর টাইপ করলে তৈরি হয়। | আপনার ফ্লো ব্যবহার করে কোনও ব্যবহারকারী সাইন-আপ বা সাইন-ইন করার পরে Wallet API ব্যবহার করে তৈরি ও পুশ করা হয়। |
| কন্ট্রোল | স্ট্যাটিক। এই পাসের উপর পার্টনারের কোনও দৃশ্যমানতা বা নিয়ন্ত্রণ নেই। | ডায়নামিক। API ব্যবহার করে পার্টনারের সম্পূর্ণ কন্ট্রোল আছে। |
| কার্যকারিতা | বারকোডের স্ট্যাটিক ছবি। আপডেট করা যাবে না। | পয়েন্ট ব্যালেন্স, টিয়ার স্ট্যাটাস আপডেট করতে, পছন্দমতো অফার দেখাতে এবং বিজ্ঞপ্তি পেতে পারে। |
আপগ্রেড করার পথ: আপনার প্রোগ্রামের "ব্রিজ"
লয়ালটি এনরোলমেন্ট ফ্লো ("গন্তব্য") তৈরি করার মাধ্যমে, আপনি Google-কে এমন একটি "সেতু" তৈরি করার অনুমতি দেন যা ব্যবহারকারীদের স্ট্যাটিক L1 পাস থেকে আপনার অফিসিয়াল L2 পাসে আপগ্রেড করে। আপগ্রেড করার দুটি প্রাথমিক ট্রিগার আছে:
- L1-থেকে-L2 পাস আপগ্রেড: কোনও ব্যবহারকারী আগে ম্যানুয়ালি আপনার কার্ড (L1) যোগ করে থাকলে, Google Wallet তাকে অফিসিয়াল, ডায়নামিক পাসে (L2) আপগ্রেড করার জন্য আপনার নতুন সাইন-ইন ফ্লোতে যাওয়ার প্রম্পট দেখাতে পারে।
- Gmail থেকে ইমপোর্ট করা পাস আপগ্রেড: Google Wallet যদি কোনও ব্যবহারকারীর Gmail ব্যবহার করে লয়ালটি কার্ড শনাক্ত করে, তাহলে এটি ব্যবহারকারীকে আপনার ফ্লোতে যেতে এবং অফিসিয়াল L2 পাস পেতে যাচাই করতে প্রম্পট করতে পারে।
ধাপ ১: Google Wallet-এ টেস্ট ক্লাস সেট-আপ করা
এনরোলমেন্ট ও সাইন-ইন URL, আপনার প্রোগ্রামের লোগো এবং বেছে নেওয়া ব্যবহারকারীর ফিল্ড
নির্ধারণ করুন। তারপর, সঠিক ভ্যালু সেট করতে
loyaltyclass-এ
discoverableProgram নেস্টেড ফিল্ড ব্যবহার করুন।
আপনার এনরোলমেন্ট/সাইন-ইন চালু থাকা লয়ালটি প্রোগ্রামের ড্রাফ্ট ভার্সন তৈরি করতে discoverableProgram-এ ভ্যালু সেট করুন। এটি যাতে পরীক্ষকরা দেখতে পান তা নিশ্চিত করতে, পরীক্ষকদের আপনার Google Pay এবং Wallet Console-এ অ্যাক্সেস আছে কিনা তা যাচাই করুন। অন্যান্য লোকজনের সাথে আপনার Google Pay এবং Wallet Console-এর অ্যাক্সেস কীভাবে শেয়ার করবেন সেই সম্পর্কে বিস্তারিত জানতে, ব্যবহারকারী পৃষ্ঠা সম্পর্কে জানুন।
ডেভেলপমেন্ট প্রসেস চলাকালীন আপনার ইমপ্লিমেন্টেশনের কার্যকারিতা যাচাইকরণ সম্পূর্ণ করতে, Google Pay এবং Wallet Console-এ কন্ট্যাক্ট সাপোর্ট উইজেট ব্যবহার করে আমাদের সাথে যোগাযোগ করুন। কনসোলে থাকাকালীন, বিষয়ে Google Wallet API এবং উপবিষয়ে লয়ালটি সাইন-ইন/এনরোলমেন্ট বেছে নিন।
ধাপ ২: এনরোলমেন্ট ও সাইন-ইন পৃষ্ঠা ডেভেলপ করা
কোনও ব্যবহারকারী আপনার লয়ালটি প্রোগ্রামে সাইন-ইন বা এনরোল করার সিদ্ধান্ত নিলে, এনরোলমেন্ট বা সাইন-ইন প্রসেস সম্পূর্ণ করার জন্য তাকে আপনার ওয়েবসাইটের একটি কাস্টমাইজ করা পৃষ্ঠায় রিডাইরেক্ট করা হয়। ব্যবহারকারী এনরোল করার সিদ্ধান্ত নিলে, Google Wallet ব্যবহারকারীকে আপনার সাথে তার ব্যবহারকারীর ডেটা শেয়ার করার অনুমতি দিতে বলবে।
আপনাকে দুটি পৃষ্ঠার মধ্যে একটি বা দুটিই প্রদান করতে হবে, যা ব্যবহারকারীদের এইসব অ্যাকশন সম্পূর্ণ করার অনুমতি দেয়:
- একটি সাইন-ইন URL যেখানে ব্যবহারকারী আগে থেকে থাকা অ্যাকাউন্টে সাইন-ইন করতে পারবেন।
- একটি এনরোলমেন্ট URL যেখানে কোনও ব্যবহারকারী একটি নতুন অ্যাকাউন্ট তৈরি করতে পারেন।
আপনার সাইন-ইন ও এনরোলমেন্ট পৃষ্ঠাকে নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:
- মোবাইল-ফ্রেন্ডলি ব্যবহারকারীর অভিজ্ঞতা প্রদান করুন।
- এনরোলমেন্ট প্রসেস চলাকালীন প্রয়োজনীয় ফিল্ডের সংখ্যা কমান।
- ব্যবহারকারীকে একটি পৃষ্ঠার মধ্যেই সাইন-ইন বা এনরোলমেন্ট সম্পূর্ণ করার অনুমতি দিন।
- ব্যবহারকারীর ডেটা যাতে নিরাপদে ট্রান্সমিট করা যায় তা নিশ্চিত করতে বৈধ সার্টিফিকেট সহ
HTTPSএনক্রিপশন ব্যবহার করুন। - আপনার সাইন-ইন ও এনরোলমেন্ট পৃষ্ঠার আপটাইম যেন অন্তত ৯৯.৯% হয় তা নিশ্চিত করুন।
এইসব প্রয়োজনীয়তা ছাড়াও, আমরা সাজেস্ট করি যে আপনি ব্যবহারকারীদের কোনও ফর্ম পূরণ না করেই আপনার লয়ালটি প্রোগ্রামে এনরোল করার অনুমতি দিন অথবা পৃষ্ঠাটি শুধুমাত্র আপনার পরিষেবার শর্তাবলী মেনে নেওয়ার জন্য রাখুন।
SharedDataType-এ দেওয়া ব্যবহারকারীর ডেটা ব্যবহার করে, আপনি একটি অ্যাকাউন্ট তৈরি করতে এবং অবিলম্বে তার লয়ালটি কার্ড পুশ ব্যাক করতে পারবেন।- আপনি পরে ব্যবহারকারীকে একবার ব্যবহারের পাসওয়ার্ড বা তার পাসওয়ার্ড ও ঐচ্ছিক অ্যাকাউন্টের বিবরণ কনফিগার করার জন্য একটি লিঙ্ক ইমেল করতে পারেন।
- এর ফলে ব্যবহারকারীদের এনরোলমেন্ট প্রসেস মাঝপথে ছেড়ে দেওয়ার সম্ভাবনা কমে যায়, কারণ প্রতিটি অতিরিক্ত ধাপের জন্য অতিরিক্ত ড্রপ-আউট হতে পারে।
সাইন-ইন বা এনরোলমেন্ট পৃষ্ঠা দেখানোর সময়, Google Wallet একটি Android WebView তৈরি করবে এবং আপনার দেওয়া URL-এ একটি POST অনুরোধ করা হবে। ব্যবহারকারীর ডেটা
SharedDataType প্যারামিটারে দেওয়া হয় যা POST
অনুরোধে অন্তর্ভুক্ত থাকে এবং এতে Content-Type হিসেবে application/x-www-form-urlencoded ও UTF-8 এনকোডিং থাকে।
SharedDataType প্যারামিটারের ভ্যালু হল Base64 এনকোড করা JSON অবজেক্ট।
ব্যবহারকারীর বেছে নেওয়া অ্যাকশন এবং ব্যবহারকারীর কাছে অনুরোধ করার জন্য আপনার উল্লেখ করা ফিল্ডের উপর নির্ভর করে, JSON অবজেক্টে নিম্নলিখিত ফিল্ড থাকতে পারে।
| ফিল্ড | এনরোলমেন্ট |
|---|---|
| ইমেল | ✓ |
| firstName | ✓ |
| lastName | ✓ |
| ঠিকানা লাইন [১-৩] | ✓ |
| শহর | ✓ |
| রাজ্য | ✓ |
| পিনকোড | ✓ |
| দেশ | ✓ |
| ফোন | ✓ |
SharedDataType-এ থাকা ডিকোড করা স্যাম্পেল JSON অবজেক্টের জন্য নিম্নলিখিত তথ্য দেখুন।
রিসোর্স
{
"firstName": "Jane",
"lastName": "Doe",
"addressLine1": "1600 Amphitheatre Pkwy",
"addressLine2": "Apt 123",
"addressLine3": "Attn:Jane",
"city": "Mountain View",
"state": "CA",
"zipcode": "94043",
"country": "US",
"email": "jane.doe@example.com",
"phone": "555-555-5555"
}
ধাপ ৩: Google Wallet-এ অবিলম্বে পুশ ব্যাক করার সুবিধা প্রয়োগ করা
যাচাইকরণ (সাইন-ইন) বা অ্যাকাউন্ট তৈরি (নথিভুক্তকরণ) হয়ে গেলে, আপনার পৃষ্ঠা থেকে ব্যবহারকারীর লয়ালটি কার্ড অবিলম্বে Google Wallet-এ পুশ ব্যাক করতে হবে।
আপনি লয়ালটি কার্ডটি Google Wallet-এ পুশ ব্যাক করতে পারেন, এর জন্য আপনাকে এমন একটি লিঙ্কে রিডাইরেক্ট করতে হবে যা নিম্নলিখিত স্ট্রাকচার অনুসরণ করে।
https://pay.google.com/gp/v/save/{jwt_generated}
URL-এর জন্য নিরাপদ দৈর্ঘ্য হল ২০০০ অক্ষর। আপনার লিঙ্ক এই সীমা অতিক্রম করা উচিত নয়। JWT-তে এনকোড করা অবজেক্ট ছোট হতে হবে, যাতে শুধুমাত্র ব্যবহারকারীর জন্য নির্দিষ্ট ডেটা থাকে। JWT তৈরি করার আগে অবজেক্টের ক্লাসে বেশিরভাগ ডেটা রাখার চেষ্টা করুন। সীমা অতিক্রম করে এমন বড় অবজেক্টের জন্য, প্রথমে Google Wallet API-এ অবজেক্ট তৈরি করার কথা বিবেচনা করুন এবং JWT-তে শুধুমাত্র অবজেক্ট আইডি পাঠান।
সাধারণ কমিউনিকেশন ফ্লো
ব্যবহারকারীর এনরোলমেন্ট বা সাইন-ইন সম্পূর্ণ করার জন্য কমিউনিকেশন ফ্লো নিম্নলিখিত ছবিতে দেখানো হয়েছে। "আপনার সার্ভার" সংক্রান্ত সব অ্যাকশন প্রয়োগ করার দায়িত্ব আপনার।

ধাপ ৪: যাচাইকরণ ও অ্যাক্টিভেশনের জন্য অনুরোধ করা
ডেভেলপমেন্টের কাজ সম্পূর্ণ করার পরে এবং আপনার এনরোলমেন্ট/সাইন-ইন ফ্লো টেস্ট করার পরে, আপনার ইমপ্লিমেন্টেশন পর্যালোচনা এবং সম্পূর্ণভাবে অ্যাক্টিভেট করার জন্য আপনাকে অবশ্যই একটি অনুরোধ জমা দিতে হবে।
- Google Pay ও Wallet Console-এ যান।
- সহায়তা টিমের সাথে যোগাযোগ করুন উইজেট ব্যবহার করুন।
- সহায়তা টিমকে জানান যে আপনি লয়ালটি এনরোলমেন্ট ইন্টিগ্রেশন সম্পূর্ণ করেছেন।
আপনার ইমপ্লিমেন্টেশন সম্পূর্ণভাবে পর্যালোচনা করার পরে, Google Wallet অ্যাপের সাথে সঠিক কার্যকারিতা কনফার্ম করা হলে, আপনার লয়ালটি প্রোগ্রামের জন্য লয়ালটি এনরোলমেন্ট/সাইন-ইন ফিচার সর্বজনীনভাবে লঞ্চ করা হবে।
ব্যবহারকারীর অভিজ্ঞতা যাতে সবচেয়ে ভালো হয় তা নিশ্চিত করতে, আপনার এনরোলমেন্ট/সাইন-ইন প্রয়োগের বিষয়টি বারবার চেক করা হবে যাতে ফিচারের প্রয়োজনীয়তা মেনে চলা হচ্ছে কিনা তা নিশ্চিত করা যায়। কোনও অমিল থাকলে আপনাকে জানানো হবে এবং সমস্যা সমাধান না হওয়া পর্যন্ত সাইন-ইন/এনরোলমেন্ট ফাংশনালিটি বন্ধ করে দেওয়া হতে পারে।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
আমার লয়ালটি প্রোগ্রামে ব্যবহৃত ছবির জন্য কি কোনও প্রয়োজনীয়তা আছে? হ্যাঁ, আপনার ছবি
HTTPSলোকেশনে হোস্ট করতে হবে, তা না হলে Google Wallet-এ দেখা যাবে না।JWT প্রয়োগ ও ডিবাগ করার কাজ সহজ করে তোলে এমন কোনও টুল আছে কি? হ্যাঁ, www.jwt.io-এর মতো প্ল্যাটফর্ম আপনাকে ডেভেলপমেন্ট প্রসেস চলাকালীন টোকেন ডিকোড ও ডিবাগ করার অনুমতি দেয়, যার ফলে আপনি যে কন্টেন্ট জমা দিচ্ছেন তা যাচাই করতে পারেন। মনে রাখবেন, Google-এর সাথে এই ধরনের থার্ড-পার্টির কোনও অ্যাফিলিয়েশন নেই এবং Google বিশেষভাবে এদের কোনওটিরই সাজেশন দেয় না।
Base64 এনকোড করা
SharedDataTypeডেটা আমরা কীভাবে সঠিকভাবে ম্যানেজ করব? পুরো প্রসেস জুড়ে আপনি UTF-8 এনকোডিং ব্যবহার করছেন কিনা তা নিশ্চিত করুন। JSON স্ট্রিং প্রথমে UTF-8 এনকোড করা হয় এবং পরে NO_WRAP ও URL_SAFE বিকল্প সহ android.util.Base64 ব্যবহার করে এনকোড করা হয়। এটি RFC 3548-এর ৪ নম্বর বিভাগ অনুযায়ী কাজ করে।