ডেভেলপার পে-লোড

ডেভেলপার পেলোড আগে বিভিন্ন উদ্দেশ্যে ব্যবহার করা হয়েছে, যার মধ্যে রয়েছে প্রতারণা প্রতিরোধ করা এবং সঠিক ব্যবহারকারীর সাথে কেনাকাটা অ্যাট্রিবিউট করা। Google Play Billing Library-এর ২.২ ও তার পরবর্তী ভার্সনে, আগে ডেভেলপার পেলোডের উপর নির্ভর করত এমন সম্ভাব্য পরিস্থিতি এখন লাইব্রেরির অন্যান্য অংশে সম্পূর্ণভাবে কাজ করে।

এই সহায়তা উপলভ্য হওয়ার সাথে সাথে, আমরা Google Play Billing Library-র ভার্সন ২.২ থেকে শুরু করে ডেভেলপার পেলোড বন্ধ করে দিয়েছি। ডেভেলপার পেলোডের সাথে যুক্ত পদ্ধতিগুলি ভার্সন ২.২-এ বন্ধ করা হয়েছে এবং ভার্সন ৩.০-এ সরিয়ে দেওয়া হয়েছে। মনে রাখবেন যে আপনার অ্যাপ, লাইব্রেরির আগের ভার্সন বা AIDL-এর মাধ্যমে করা কেনাকাটার জন্য ডেভেলপার পেলোড উদ্ধার করা চালিয়ে যেতে পারে।

পরিবর্তনের বিস্তারিত তালিকার জন্য, Google Play Billing Library 2.2 রিলিজ নোট এবং Google Play Billing Library 3.0 রিলিজ নোট দেখুন।

কেনাকাটা যাচাইকরণ

কেনাকাটা যে আসল এবং জাল বা রিপ্লে করা নয় তা নিশ্চিত করতে, Google, getPurchaseToken() পদ্ধতি থেকে প্রাপ্ত (Purchase অবজেক্টে) কেনাকাটার টোকেন ব্যবহার করার সাজেশন দেয়, এর সাথে Google Play Developer API ব্যবহার করে কেনাকাটা আসল কিনা তা যাচাই করা হয়। আরও তথ্যের জন্য, প্রতারণা ও অপব্যবহারের বিরুদ্ধে লড়াই করুন দেখুন।

কেনাকাটার অ্যাট্রিবিউশন

অনেক অ্যাপ, বিশেষ করে গেমের ক্ষেত্রে, এটি নিশ্চিত করতে হয় যে কেনাকাটাটি সঠিকভাবে গেমের মধ্যে থাকা সেই চরিত্র/অ্যাভাটার বা অ্যাপ-মধ্যস্থ ব্যবহারকারীর প্রোফাইলের সাথে অ্যাট্রিবিউট করা হয়েছে, যে কেনাকাটাটি শুরু করেছে। Google Play Billing Library 2.2 থেকে শুরু করে, আপনার অ্যাপ Google-এ অস্পষ্ট অ্যাকাউন্ট এবং প্রোফাইল শনাক্তকারী পাস করতে পারে কেনাকাটার ডায়ালগ চালু করার সময় এবং কেনাকাটা পুনরুদ্ধার করার সময় সেগুলি ফেরত পেতে পারে।

BillingFlowParams-এ setObfuscatedAccountId() এবং setObfuscatedProfileId() প্যারামিটার ব্যবহার করুন এবং Purchase অবজেক্টে getAccountIdentifiers() পদ্ধতি ব্যবহার করে সেগুলি ফিরিয়ে আনুন।

কেনাকাটার সাথে মেটাডেটা অ্যাসোসিয়েট করা

Google আপনার ম্যানেজ করা একটি সুরক্ষিত ব্যাকএন্ড সার্ভারে কেনাকাটা সংক্রান্ত মেটাডেটা স্টোর করার সাজেশন দেয়। এই কেনাকাটার মেটাডেটা, Purchase অবজেক্টে getPurchaseToken পদ্ধতি ব্যবহার করে পাওয়া কেনাকাটার টোকেনের সাথে যুক্ত থাকতে হবে। কেনাকাটা সম্পূর্ণ হওয়ার পরে আপনার PurchasesUpdatedListener কল করা হলে, আপনার ব্যাকএন্ডে কেনাকাটার টোকেন ও মেটাডেটা পাস করার মাধ্যমে এই ডেটা সেভ করা যেতে পারে।

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

আপনার PurchasesUpdatedListener কল করার আগে পারচেজ ফ্লোতে বাধা সৃষ্টি হলে, আপনার অ্যাপ আবার চালু হলে এবং BillingClient.queryPurchasesAsync() কল করলে, আপনার অ্যাপ কেনাকাটা শনাক্ত করবে। তারপর আপনি Purchase অবজেক্টের getPurchaseTime(), getSku(), এবং getPurchaseToken() পদ্ধতি থেকে পাওয়া ভ্যালু আপনার ব্যাকএন্ড সার্ভারে পাঠাতে পারবেন যাতে মেটাডেটা খোঁজা, মেটাডেটা পারচেজ টোকেনের সাথে যুক্ত করা এবং কেনাকাটা প্রসেস করা চালিয়ে যাওয়া যায়। মনে রাখবেন যে, আপনি প্রথমে যে টাইমস্ট্যাম্প স্টোর করেছেন তা Purchase অবজেক্টের getPurchaseTime()-এর ভ্যালুর সাথে হুবহু মিলবে না, তাই আপনাকে আনুমানিক উপায়ে সেগুলি তুলনা করতে হবে। যেমন, আপনি চেক করে দেখতে পারেন যে ভ্যালুগুলি একে অপরের থেকে নির্দিষ্ট সময়সীমার মধ্যে আছে কিনা।