এককালীন কেনাকাটার লাইফ-সাইকেল

সাবস্ক্রিপশন প্রোডাক্টের তুলনায় এক-বার ক্রয় প্রোডাক্টের লাইফসাইকেল অনেক সহজ, তবে এখনও বেশ কিছু স্ট্যাটাস ও ট্রানজিশন ইভেন্ট আছে যা আপনার ব্যাকএন্ডকে সঠিকভাবে ম্যানেজ করতে হবে।

এক-বার কেনাকাটার জন্য লাইফসাইকেল স্ট্যাটাস ও ট্রানজিশন ইভেন্ট।
ছবি ১ এক-কালীন কেনাকাটার জন্য লাইফসাইকেল স্টেট ও ট্রানজিশন ইভেন্ট।

নতুন এককালীন প্রোডাক্ট কেনাকাটা

ব্যবহারকারী বিলিং ফ্লো সম্পূর্ণ করার পরে, আপনার অ্যাপ নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটিতে নতুন কেনাকাটা সম্পর্কে তথ্য দেখতে পাবে:

  • Real-time developer notifications সেট-আপ করুন এবং কেনাকাটার স্ট্যাটাস সম্পর্কে আপডেট পেতে Get all notifications for subscriptions and one-time products চালু করুন।
  • PurchasesUpdatedListener ইন্টারফেস থেকে BillingClient প্রয়োগ করে কেনাকাটা সংক্রান্ত আপডেট অটোমেটিক পান।
  • BillingClient.queryPurchasesAsync() মেথড কল করুন।

নতুন কেনাকাটা পাওয়ার পরে, getPurchaseState পদ্ধতি ব্যবহার করুন অথবা purchases.productsv2.getproductpurchasev2 in Play Developer API

নতুন কেনাকাটার পেমেন্ট স্ট্যাটাস নির্ধারণ করতে।

রিয়েল-টাইম ডেভেলপার সম্পর্কিত বিজ্ঞপ্তি

ব্যবহারকারী এককালীন প্রোডাক্ট কিনলে বা কেনাকাটা বাতিল করলে, Google Play একটি OneTimeProductNotification মেসেজ পাঠায়। আপনার ব্যাকএন্ড কেনাকাটার স্ট্যাটাস আপডেট করতে, purchases.productsv2.getproductpurchasev2 মেথড কল করার জন্য OneTimeProductNotification অবজেক্টে দেওয়া কেনাকাটার টোকেন ব্যবহার করুন। এই পদ্ধতিটি একটি কেনাকাটার টোকেন প্রদান করে লেটেস্ট কেনাকাটা এবং ব্যবহারের স্ট্যাটাস প্রদান করে।

প্রি-অর্ডার সম্পূর্ণ হলে এবং এর কেনাকাটার স্ট্যাটাস 'কেনা হয়েছে' হিসেবে পরিবর্তিত হলে, আপনার ক্লায়েন্টকে RTDN পাঠানো হয়। RTDN পাওয়ার পরে, আপনার ব্যাকএন্ডে এককালীন প্রোডাক্ট কেনার প্রসেস লিঙ্কে দেওয়া বিবরণ অনুযায়ী প্রি-অর্ডার কেনাকাটা প্রসেস করুন।

আপনাকে সুরক্ষিত ব্যাকএন্ডে ট্রানজ্যাকশন সম্পর্কিত RTDN ম্যানেজ করতে হবে।

সম্পূর্ণ হওয়া ট্রানজ্যাকশন ম্যানেজ করা

ব্যবহারকারী একবারের জন্য প্রোডাক্ট কেনাকাটা সম্পূর্ণ করলে, Google Play ONE_TIME_PRODUCT_PURCHASED টাইপ সহ একটি OneTimeProductNotification মেসেজ পাঠায়। আপনি এই RTDN পেলে, আপনার ব্যাকএন্ডে এককালীন প্রোডাক্ট কেনাকাটা প্রসেস করুন-এ যেভাবে বর্ণনা করা হয়েছে সেইভাবে কেনাকাটা প্রসেস করুন।

বাতিল করা ট্রানজ্যাকশন ম্যানেজ করা

একবার পেমেন্ট করতে হয় এমন প্রোডাক্টের কেনাকাটা বাতিল করা হলে, আপনি রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি পাওয়ার জন্য কনফিগার করে থাকলে, Google Play OneTimeProductNotificationONE_TIME_PRODUCT_CANCELED টাইপ সহ একটি মেসেজ পাঠায়। যেমন, ব্যবহারকারী নির্ধারিত সময়ের মধ্যে পেমেন্ট সম্পূর্ণ না করলে অথবা ডেভেলপার বা গ্রাহকের অনুরোধে কেনাকাটা বাতিল করা হলে এটি হতে পারে। আপনার ব্যাকএন্ড সার্ভার এই বিজ্ঞপ্তি পেলে, লেটেস্ট কেনাকাটার স্ট্যাটাস পেতে purchases.productsv2.getproductpurchasev2 মেথড কল করুন, তারপর ব্যবহারকারীর এনটাইটেলমেন্ট সহ, সেই অনুযায়ী আপনার ব্যাকএন্ড আপডেট করুন।

Purchased স্টেটে কোনও এককালীন প্রোডাক্ট কেনার জন্য রিফান্ড করা হলে, আপনাকেও Voided Purchases API ব্যবহার করে জানানো হবে।

আপনার ব্যাকএন্ডে এককালীন প্রোডাক্ট কেনাকাটা প্রসেস করুন

আপনি ONE_TIME_PRODUCT_PURCHASED RTDN ব্যবহার করে নতুন কেনাকাটা শনাক্ত করেছেন অথবা PurchasesUpdatedListener বা আপনার অ্যাপের onResume() পদ্ধতিতে ম্যানুয়ালি কেনাকাটা ফেচ করার মাধ্যমে অ্যাপ-মধ্যস্থ কেনাকাটা সম্পর্কে সচেতন হয়েছেন, আপনাকে নতুন কেনাকাটা প্রসেস করতে হবে। আরও ভালো নিরাপত্তার জন্য আপনার ব্যাকএন্ডে কেনাকাটা প্রসেস করার বিষয়টি ম্যানেজ করলে ভালো হয়।

নতুন এককালীন কেনাকাটা প্রসেস করতে এইসব ধাপ অনুসরণ করুন:

  1. লেটেস্ট এককালীন প্রোডাক্ট কেনার স্ট্যাটাস পেতে purchases.productsv2.getproductpurchasev2 এন্ডপয়েন্ট কোয়েরি করুন। কেনাকাটার জন্য এই পদ্ধতি কল করতে, আপনার অ্যাপ বা ONE_TIME_PRODUCT_PURCHASED RTDN থেকে সংশ্লিষ্ট purchaseToken থাকতে হবে।
  2. getPurchaseState() নম্বরে কল করে নিশ্চিত করুন যে কেনাকাটার স্ট্যাটাস PURCHASED আছে।
  3. কেনাকাটা যাচাই করুন।
  4. ব্যবহারকারীকে কন্টেন্ট অ্যাক্সেস করার সুবিধা দিন। কেনাকাটার সাথে যুক্ত ব্যবহারকারীর অ্যাকাউন্ট purchases.productsv2.getproductpurchasev2-এর obfuscatedExternalAccountId ফিল্ড থেকে শনাক্ত করা যেতে পারে, যদি কেনাকাটা করার সময় setObfuscatedAccountId() ব্যবহার করে একটি সেট করা হয়ে থাকে।
    1. নন-কনজিউমেবল প্রোডাক্ট কেনার ক্ষেত্রে, purchases.products.acknowledge পদ্ধতি কল করে কন্টেন্ট ডেলিভারি স্বীকার করুন। acknowledgementState ফিল্ড চেক করে দেখে নিন যে কেনাকাটা আগে স্বীকার করা হয়েছে কিনা।
    2. প্রোডাক্টটি ব্যবহারযোগ্য হলে, purchases.products.consume পদ্ধতিতে কল করে আইটেমটি ব্যবহার করা হয়েছে হিসেবে চিহ্নিত করুন যাতে ব্যবহারকারী এটি ব্যবহার করার পরে আবার কিনতে পারেন। এই পদ্ধতি কেনাকাটার স্বীকৃতিও দেয়।

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