এককালীন ক্রয় জীবনচক্র

সাবস্ক্রিপশন পণ্যগুলির চেয়ে এক-কালীন ক্রয় পণ্যগুলির একটি সহজ জীবনচক্র রয়েছে, তবে এখনও বেশ কয়েকটি রাজ্য এবং ট্রানজিশন ইভেন্ট রয়েছে যা আপনার ব্যাকএন্ডকে সঠিকভাবে পরিচালনা করতে সক্ষম হতে হবে।

চিত্র 1 এককালীন কেনাকাটার জন্য জীবনচক্রের অবস্থা এবং ট্রানজিশন ইভেন্ট।

নতুন এককালীন পণ্য ক্রয়

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

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

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

নতুন ক্রয়ের অর্থপ্রদানের অবস্থা নির্ধারণ করতে।

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

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

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

আপনার নিরাপদ ব্যাকএন্ডে আপনার লেনদেন-সম্পর্কিত RTDNগুলি পরিচালনা করা উচিত।

সম্পূর্ণ লেনদেন পরিচালনা করুন

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

বাতিল লেনদেন হ্যান্ডেল

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

যদি Purchased অবস্থায় একটি এককালীন পণ্য ক্রয় করা অর্থ ফেরত দেওয়া হয়, তাহলে আপনাকে অকার্যকর কেনাকাটা 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 পদ্ধতিতে কল করে আইটেমটিকে গ্রাস করা হয়েছে বলে চিহ্নিত করুন যাতে ব্যবহারকারী এটি খাওয়ার পরে আইটেমটি আবার কিনতে পারে। এই পদ্ধতিটি ক্রয়কেও স্বীকার করে।

এছাড়াও প্লে বিলিং লাইব্রেরিতে ক্রয় স্বীকৃতি এবং ব্যবহার পদ্ধতি উপলব্ধ রয়েছে যা আপনাকে আপনার অ্যাপ থেকে কেনাকাটা প্রক্রিয়া করার অনুমতি দেয়, তবে আমরা সুপারিশ করি যে আপনি যদি আরও নিরাপদ বাস্তবায়নের জন্য আপনার ব্যাকএন্ডে প্রক্রিয়াকরণ পরিচালনা করেন।