Google Play Billing Library v7 আপডেট এবং স্থাপন করার সম্পূর্ণ নির্দেশিকা

  • পূর্ববর্তী ইন্টিগ্রেশনগুলির সাথে সামঞ্জস্য বজায় রেখে, Google Play Billing Library v7-এর জন্য ডিপেন্ডেন্সি আপডেট করা, অপ্রচলিত API প্রতিস্থাপন করা এবং ত্রুটি পরিচালনা ব্যবস্থা অভিযোজিত করা প্রয়োজন।
  • Google Cloud Pub/Sub সহ RTDN-গুলি purchaseToken এবং obfuscatedAccountId সঠিকভাবে পরিচালনা করার মাধ্যমে আপনাকে প্রায় রিয়েল টাইমে ব্যাকএন্ড সিঙ্ক্রোনাইজ করতে, কেনাকাটা যাচাই করতে এবং জালিয়াতি কমাতে সাহায্য করে।
  • প্রিপেইড প্ল্যানে ভার্চুয়াল কিস্তি এবং অপেক্ষমান কেনাকাটার মতো নতুন ঐচ্ছিক বৈশিষ্ট্যগুলো সাবস্ক্রিপশনের নমনীয়তা বাড়ায়, যা বিভিন্ন বাজারকে প্রভাবিত করছে।
  • PBL 5 এবং 6-এর অপ্রচলিত হওয়ার সময়সীমার কারণে এখনই মাইগ্রেশনের পরিকল্পনা করা আবশ্যক, বিশেষ করে .NET MAUI-এর মতো ইকোসিস্টেমে, যেখানে আনুষ্ঠানিক সমর্থন এখনও সীমিত।

গুগল প্লে বিলিং লাইব্রেরি v7

আপনি যদি অ্যান্ড্রয়েডে ইন-অ্যাপ পারচেজ নিয়ে কাজ করেন, তাহলে আজ হোক বা কাল হোক আপনাকে এই সমস্যার সম্মুখীন হতেই হবে। গুগল প্লে বিলিং লাইব্রেরি v7এটি শুধু আরেকটি আপডেট নয়: এর সাথে থাকছে এপিআই পরিবর্তন, নতুন সাবস্ক্রিপশন ফিচার, কনসোলের জন্য প্রয়োজনীয়তা এবং গুগলের পক্ষ থেকে সুনির্দিষ্ট সময়সীমা। কোনো অপ্রত্যাশিত সমস্যা ছাড়াই গুগল প্লে-তে আপনার অ্যাপ প্রকাশ বা আপডেট করা চালিয়ে যেতে চাইলে, এটিকে উপেক্ষা করার আর কোনো সুযোগ নেই।

এই প্রবন্ধ জুড়ে আপনি দেখতে পাবেন কিভাবে Google Play বিলিং লাইব্রেরি v7 আপডেট এবং বাস্তবায়ন করুন ধাপে ধাপে: PBL 5 এবং 6 এর মধ্যে পার্থক্য কী, কীভাবে সাবস্ক্রিপশন, এককালীন কেনাকাটা, RTDN একীভূত করতে হয়, প্লে বিলিং ল্যাব দিয়ে পরীক্ষা করা, এবং .NET MAUI-এর মতো ইকোসিস্টেমে কীভাবে টিকে থাকতে হয়, যেখানে অফিশিয়াল সাপোর্ট অনেক পিছিয়ে। মূল উদ্দেশ্য হলো, এটি পড়া শেষ করার পর আপনি যেন আত্মবিশ্বাসের সাথে এবং একটি পয়সাও খরচ না করে আপনার মাইগ্রেশনের প্রস্তুতি নিতে পারেন।

গুগল প্লে বিলিং লাইব্রেরি v7 এর সংক্ষিপ্ত বিবরণ

গুগল প্লে বিলিং লাইব্রেরি ৭ বিল ব্যবস্থাপনার পদ্ধতিতে উল্লেখযোগ্য উন্নতি এনেছে। পেমেন্ট, সাবস্ক্রিপশন এবং বিশেষ প্ল্যানতবে, মাইগ্রেশন প্রক্রিয়াটি তুলনামূলকভাবে মসৃণ করার জন্যই এটি ডিজাইন করা হয়েছে। সুখবর হলো, অনেক নতুন এপিআই-ই ঐচ্ছিক: আপনি ডিপেন্ডেন্সি আপডেট করে ও কয়েকটি রেফারেন্সে সামান্য পরিবর্তন করে নিলেই আপনার বেসিক ইন্টিগ্রেশনটি ঠিকঠাক কাজ করবে।

এই সংস্করণটি তিনটি মূল ক্ষেত্রের উপর আলোকপাত করে: নতুন সাবস্ক্রিপশন বিকল্পগুলি (যেমন ভার্চুয়াল কোটা), এর জন্য আরও ভালো সমর্থন প্রিপেইড প্ল্যানে অপেক্ষমান কেনাকাটাএবং এপিআই-তে এমন কিছু পরিবর্তন আনা হয়েছে যা পূর্ববর্তী সংস্করণগুলিতে (পিবিএল ৫ এবং ৬) ইতিমধ্যেই অপ্রচলিত হয়ে পড়া বিষয়গুলোকে পরিমার্জন করে। এছাড়াও, অসঙ্গতি এড়ানোর জন্য গুগল কিছু ত্রুটি পরিচালনা পদ্ধতি এবং মুলতুবি থাকা লেনদেনগুলো কীভাবে পরিচালনা করা উচিত, তাতেও পরিবর্তন এনেছে।

শুরু করার জন্য, আপনার অ্যাপ মডিউলের ফাইলে ডিপেন্ডেন্সিটি আপডেট করতে হবে। build.gradle:

dependencies {
    def billingVersion = "7.0.0"
    implementation "com.android.billingclient:billing:$billingVersion"
}

এটি সম্পন্ন হয়ে গেলে, লিগ্যাসি এপিআই ব্যবহারকারী কোড পর্যালোচনা করার সময় এসেছে। সম্পর্কিত অনেক কল সাবস্ক্রিপশন প্রোরেশন এবং বিকল্প বিলিং এগুলোর নাম পরিবর্তন করা হয়েছে বা সরিয়ে ফেলা হয়েছে, তাই প্লে কনসোলে কিছু কম্পাইল ও আপলোড করার আগে BillingClient এবং BillingFlowParams-এর সমস্ত রেফারেন্স ভালোভাবে দেখে নেওয়া ভালো।

এককালীন ক্রয় এবং সাবস্ক্রিপশনের মাধ্যমে অর্থ উপার্জনের কৌশল

যখন আপনি আপনার অ্যাপের মধ্যে ডিজিটাল পণ্য বিক্রি করেন, তখন শুধু ক্রয়ের ডায়ালগটি পেস্ট করে দিলেই যথেষ্ট নয়: একটি ডিজাইন করা সম্পূর্ণ ক্রয় প্রক্রিয়া জুড়ে নির্বিঘ্ন ব্যবহারকারীর অভিজ্ঞতাএটি একক পণ্য (ব্যবহারযোগ্য বা ব্যবহার-অযোগ্য) এবং সাবস্ক্রিপশন, উভয়ের ক্ষেত্রেই প্রযোজ্য। প্রক্রিয়াটি যত বেশি স্বাভাবিক ও বাধাহীন হবে, কনভার্সন তত বেশি হবে এবং বাতিলের হার তত কম হবে।

প্লে বিলিং-এর মাধ্যমে একটি সাবস্ক্রিপশন বা একক আইটেমের জন্য কেনাকাটার সাধারণ প্রক্রিয়াটি সাধারণত এই সুনির্দিষ্ট ধাপগুলো অনুসরণ করে, যেগুলো সম্পর্কে আপনার ব্যাকএন্ডেরও অবগত থাকা উচিত:

  • ব্যবহারকারী উপলব্ধ পণ্যগুলো দেখে এবং একটি নির্বাচন করে।
  • পেমেন্ট সম্পন্ন করার জন্য অ্যাপটি গুগল প্লে বিলিং প্রক্রিয়া শুরু করে।
  • ক্রয় সম্পন্ন হয়েছে এবং আপনার অ্যাপ ফলাফলটি পেয়েছে।
  • আপনার সার্ভার গুগল প্লে ডেভেলপার এপিআই-এর মাধ্যমে ক্রয়টি যাচাই করে।
  • আপনার সিস্টেমে ব্যবহারকারীকে সংশ্লিষ্ট বিষয়বস্তু বা অধিকার প্রদান করা হয়।
  • গুগলকে জানানো হয়েছে যে ক্রয়টি প্রক্রিয়া করা হয়েছে (সম্পন্ন বা স্বীকার করা হয়েছে)।

ব্যবহার্য পণ্যের ক্ষেত্রে, এটি অত্যাবশ্যক যে সঠিক সময়ে টোকেনটি ব্যবহার করুন নির্বিঘ্ন পুনঃক্রয় এবং সহায়তার অনুমতি দিতে গুগল প্লে-তে ভুলবশত কেনাকাটা ব্লক করুনসাবস্ক্রিপশনের ক্ষেত্রে আপনাকে নবায়ন, অতিরিক্ত সময়, স্থগিতকরণ এবং বাতিলকরণ এমনভাবে নিয়ন্ত্রণ করতে হবে, যাতে ব্যবহারকারী ঠিক ততটুকুই পায় যতটুকুর জন্য সে অর্থ প্রদান করেছে, একদিনও কম নয়।

অ্যাপের সাথে একীভূত করাটা কাজের অর্ধেক মাত্র: আপনার সার্ভারকে অবশ্যই একটি বজায় রাখতে হবে অধিকার এবং ক্রয় স্থিতির নির্ভরযোগ্য রেকর্ডআপনি যদি ক্রস-প্ল্যাটফর্ম অ্যাক্সেস অফার করেন অথবা রাজস্ব, রিটেনশন এবং চর্ন-এর উপর বিস্তারিত পরিসংখ্যানের প্রয়োজন হয়, তবে এটি বিশেষভাবে গুরুত্বপূর্ণ। এখানেই রিয়েল-টাইম ডেভেলপার নোটিফিকেশন (RTDN) কাজে আসে, যা ক্রয় জীবনচক্রের 'ব্ল্যাক বক্স' হিসেবে কাজ করে।

RTDN-এর মাধ্যমে আপনি গুরুত্বপূর্ণ ঘটনাগুলোতে প্রায় রিয়েল-টাইমে প্রতিক্রিয়া জানাতে পারেন: যেমন একটি নতুন কেনাকাটা, নবায়নে ব্যর্থতা, সাবস্ক্রিপশনের গ্রেস পিরিয়ডে প্রবেশ, বা একটি কেনাকাটা বাতিল হওয়া। এটি আপনাকে কৌশল তৈরি করতে সাহায্য করে। গ্রাহক পুনরুদ্ধার এবং প্রতারনা প্রতিরোধযেমন, পেমেন্ট ব্যর্থ হলে স্বয়ংক্রিয়ভাবে ইমেল পাঠানো অথবা নেটওয়ার্ক সমস্যার কারণে গ্রাহক বার্তা না পেলে অধিকার সমন্বয় করা।

রিয়েল-টাইম ডেভেলপার নোটিফিকেশন (RTDN) এবং গুগল ক্লাউড পাব/সাব

RTDN ব্যবহার করে Google ক্লাউড পাব/সাব গুগল প্লে এবং আপনার ব্যাকএন্ডের মধ্যে একটি রিয়েল-টাইম মেসেজিং সিস্টেম হিসেবে। গুগল প্লে একটি পাব/সাব টপিক সম্পর্কে ইভেন্ট প্রকাশ করে, এবং কোনো কেনাকাটা বা সাবস্ক্রিপশনের স্ট্যাটাস পরিবর্তিত হলেই মেসেজ পাওয়ার জন্য আপনি সেই টপিকটি সাবস্ক্রাইব করেন।

মূল প্রক্রিয়াটি সহজ: গুগল প্লে পাব/সাব টপিকে একটি বেস৬৪-এনকোডেড বার্তা পাঠায়, আপনার সাবস্ক্রাইবার সেটি গ্রহণ করে, ডিকোড করে এবং নোটিফিকেশনটি প্রসেস করে। ফিল্ডের মধ্যে data মেসেজটির মধ্যে আপনি একটি JSON অবজেক্ট পাবেন। ডেভেলপার বিজ্ঞপ্তিযার মধ্যে মেসেজ ভার্সন, প্যাকেজের নাম, ইভেন্টের সময় এবং এককালীন কেনাকাটা, সাবস্ক্রিপশন, বাতিল করা কেনাকাটা বা ট্রায়াল সম্পর্কিত নির্দিষ্ট তথ্যের মতো বিবরণ অন্তর্ভুক্ত থাকে।

{
  "version": string,
  "packageName": string,
  "eventTimeMillis": long,
  "oneTimeProductNotification": OneTimeProductNotification,
  "subscriptionNotification": SubscriptionNotification,
  "voidedPurchaseNotification": VoidedPurchaseNotification,
  "testNotification": TestNotification
}

এই বার্তাগুলির জন্য ধন্যবাদ আপনি পারেন ব্যবহারকারীর ডিভাইস বিকল হয়ে গেলেও আপনার ব্যাকএন্ড সিঙ্ক্রোনাইজড রাখুন।ধরুন, একজন ব্যবহারকারী সফলভাবে একটি কেনাকাটা করলেন, গুগল প্লে তা নিশ্চিত করল, কিন্তু আপনার অ্যাপ বিলিং লাইব্রেরি থেকে কলব্যাক পাওয়ার আগেই মোবাইল ডিভাইসটির সংযোগ বিচ্ছিন্ন হয়ে গেল। RTDN ছাড়া, আপনি হয়তো কখনোই বিষয়টি জানতে পারবেন না। Pub/Sub-এর মাধ্যমে, আপনার সার্ভার একটি পৃথক নোটিফিকেশন পায় এবং ক্লায়েন্ট থেকে স্বাধীনভাবে এনটাইটেলমেন্টটি প্রদান করতে পারে।

RTDN-এর জন্য ক্লাউড পাব/সাব কনফিগারেশন

Google Play কনসোলে RTDN সক্রিয় করার আগে, আপনাকে একটি প্রজেক্ট প্রস্তুত করতে হবে। গুগল ক্লাউড প্ল্যাটফর্ম (জিএসপি) এবং সেখানেই পাব/সাব কনফিগার করুন। প্রক্রিয়াটি তুলনামূলকভাবে সহজ, কিন্তু পারমিশন বা রিসোর্সের নাম নিয়ে কোনো অপ্রত্যাশিত সমস্যা এড়াতে এটি সাবধানে অনুসরণ করাই ভালো।

বিষয়টি তৈরি করা

প্রথমে আপনাকে একটি তৈরি করতে হবে পাব/সাব টপিক যা আপনার গুগল প্লে পাবলিশিং পয়েন্ট হিসেবে কাজ করবে। গুগল ক্লাউড কনসোল থেকে, আপনার প্রজেক্টটি সিলেক্ট করুন, পাব/সাব (Pub/Sub) সেকশনে যান এবং অফিশিয়াল 'ক্রিয়েট টপিক' গাইড অনুসরণ করে একটি নতুন টপিক তৈরি করুন। ফলাফলটির নাম নিম্নলিখিত ফরম্যাটে থাকবে:

projects/{project_id}/topics/{topic_name}

নোটিফিকেশন চালু করার সময় ওই পুরো নামটিই আপনাকে প্লে কনসোলে পেস্ট করতে হবে।

সাবস্ক্রিপশন তৈরি

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

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

আপনার থিমে প্রকাশ করার জন্য গুগল প্লে-কে অনুমতি।

আপনার সুস্পষ্ট অনুমতি ছাড়া Pub/Sub গুগল প্লে-কে কোনো কিছুই প্রকাশ করতে দেবে না। পরিষেবা অ্যাকাউন্টগুগল ক্লাউড কনসোলে, আপনাকে টপিক পারমিশন সেটিংসে গিয়ে মূলটি যোগ করতে হবে:

[email protected]

এই অ্যাকাউন্টকে ভূমিকা প্রদান করুন পাব/সাব প্রকাশক (প্রকাশক) পরিবর্তনগুলি সংরক্ষণ করুন এবং সেই মুহূর্ত থেকে, গুগল প্লে কোনো অনুমোদন সমস্যা ছাড়াই আপনার থিমে RTDN পাঠাতে পারবে।

গুগল প্লে কনসোলে RTDN সক্রিয় করুন

গুগল প্লে বিলিং লাইব্রেরি v7

একবার পাব/সাব কনফিগার করা হয়ে গেলে, আপনাকে প্লে কনসোলকে জানাতে হবে কোথায় নোটিফিকেশন পাঠাতে হবে। গুগল প্লে কনসোলে আপনার অ্যাপের মধ্যে, এখানে যান প্লে-এর মাধ্যমে আয় করুন > নগদীকরণ সেটিংস এবং রিয়েল-টাইম ডেভেলপার নোটিফিকেশন বিভাগটি খুঁজুন।

সেখানে আপনাকে যা করতে হবে:

  • রিয়েল-টাইম নোটিফিকেশন চালু করতে বক্সটিতে টিক দিন।
  • নির্দিষ্ট ফরম্যাট মেনে সংশ্লিষ্ট ফিল্ডে পাব/সাব টপিকের সম্পূর্ণ নামটি লিখুন। projects/{project_id}/topics/{topic_name}.
  • টেস্ট বাটনটি ব্যবহার করে একটি পরীক্ষামূলক বার্তা পাঠান।

পরীক্ষার বার্তাটি যাচাই করার জন্য অপরিহার্য যে সমন্বয়টি ভালোভাবে বাস্তবায়িত হয়েছে।আপনার যদি একটি পুল সাবস্ক্রিপশন থাকে, তাহলে আপনি ক্লাউড কনসোলে গিয়ে সাবস্ক্রিপশনটি নির্বাচন করে, "View messages"-এ ক্লিক করে টেস্ট মেসেজটি এক্সট্র্যাক্ট করতে পারেন। এটি করতে ভুলবেন না। ACK বারবার বার্তা গ্রহণ এড়ানোর জন্য আপনার পড়া যেকোনো বার্তা।

পুশ সাবস্ক্রিপশনের ক্ষেত্রে, যাচাই করুন যে আপনার এন্ডপয়েন্টটি মেসেজটি গ্রহণ করছে এবং একটি বৈধ HTTP কোড দিয়ে সাড়া দিচ্ছে। যদি কোনো সমস্যা হয়, তাহলে টেস্টটি পাবলিশ করার সময় কনসোলে একটি এরর দেখা যাবে, যা সাধারণত টপিকের নাম বা সার্ভিস অ্যাকাউন্টের অনুমতির সাথে সম্পর্কিত থাকে।

গুগল প্লে স্টোরে অ্যাপ ট্রায়ালের জন্য সাবস্ক্রাইব করুন
সম্পর্কিত নিবন্ধ:
গুগল প্লে স্টোরে অ্যাপ ট্রায়ালের জন্য সাইন আপ করার এবং বিটা ভার্সন, প্রারম্ভিক অ্যাক্সেস এবং বিনামূল্যে ট্রায়াল অ্যাক্সেস করার সম্পূর্ণ নির্দেশিকা।

অবশেষে, আপনি কোন ধরনের নোটিফিকেশন পেতে চান তা কনফিগার করতে পারেন: শুধুমাত্র সাবস্ক্রিপশন এবং বাতিল হওয়া কেনাকাটার জন্য, অথবা এককালীন কেনাকাটা সহ সমস্ত বিজ্ঞপ্তি (যেমন ONE_TIME_PRODUCT_PURCHASED এবং ONE_TIME_PRODUCT_CANCELED-এর মতো ইভেন্ট)। আপনি যদি স্বতন্ত্র পণ্যও ব্যবহার করেন, তবে সবকিছুর উপর নজর রাখতে পুরো সেটটি সক্রিয় করা একটি প্রচলিত অভ্যাস।

আপনার ব্যাকএন্ডে একটি পাব/সাব সাবস্ক্রাইবার তৈরি করুন

থিম এবং সাবস্ক্রিপশন প্রস্তুত হয়ে গেলে, এখন একটি বাস্তবায়ন করার সময়। গ্রাহক যিনি RTDN পড়েন এবং প্রক্রিয়া করেনগুগল বিভিন্ন ভাষায় উদাহরণ প্রদান করে; জাভার একটি সাধারণ ক্ষেত্রে ক্লাউড পাব/সাব ক্লায়েন্ট লাইব্রেরি ব্যবহার করে একটি শুরু করা হয়। Subscriber যে বার্তা শোনে এবং ডাকে MessageReceiver.

সাধারণ পদ্ধতিটি সবসময় একই থাকে: আপনি বার্তাটি পুনরুদ্ধার করেন, আপনি ক্ষেত্রটি ডিকোড করেন। data আপনি base64 কে টেক্সটে রূপান্তর করেন, JSON পার্স করেন এবং প্রাসঙ্গিক ফিল্ডগুলি (যেমন packageName, oneTimeProductNotification o subscriptionNotificationএবং আপনার সিস্টেমে কী করতে হবে তা স্থির করুন। বিজ্ঞপ্তিটি সফলভাবে প্রক্রিয়া করার পরে, আপনাকে অবশ্যই একটি স্বীকৃতি দিয়ে বার্তাটি নিশ্চিত করুন। যাতে পাব/সাব এটি আবার না পাঠায়।

উদাহরণ কোডটিতে দেখানো হয়েছে কিভাবে রিসিভার ভার্সন এবং প্যাকেজের নাম প্রিন্ট করে, কিন্তু বাস্তব প্রয়োগে আপনি আরও এক ধাপ এগিয়ে যাবেন: আপনি ক্রয়টি যাচাই করবেন এবং সঠিক ব্যবহারকারীকে অধিকার প্রদান করবেন।আপনি আপনার ডেটাবেস আপডেট করবেন এবং প্রয়োজনে, ক্রয়টি গ্রহণ বা শনাক্ত করার জন্য প্লে ডেভেলপার এপিআই (Play Developer API)-কে কল করবেন।

ব্যবহারকারীকে নোটিফিকেশন লিঙ্ক করুন: obfuscatedAccountId ব্যবহার করে

সার্ভার থেকে কেনাকাটা পরিচালনা করার সময় একটি সাধারণ সমস্যা হলো, একটি নির্দিষ্ট RTDN নোটিফিকেশন কোন ব্যবহারকারীর তা জানা। এর জন্য, বিলিং ক্লায়েন্ট এপিআই আপনাকে একটি সংযুক্ত করার সুযোগ দেয়। অস্পষ্ট অ্যাকাউন্ট শনাক্তকারী যখন আপনি ক্রয় প্রক্রিয়াটি চালু করেন: obfuscatedAccountId.

মূল ধারণাটি হলো যে আপনি আপনার সিস্টেম থেকে একটি স্থিতিশীল শনাক্তকারী ব্যবহার করবেন (উদাহরণস্বরূপ, ব্যবহারকারীর অভ্যন্তরীণ আইডি) কিন্তু গোপনীয়তা এবং নিরাপত্তার কারণে অস্পষ্ট করা হয়েছেএই মানটি ক্রয়ের সাথে যুক্ত থাকে এবং পরবর্তীতে গুগল প্লে ডেভেলপার এপিআই থেকে প্রাপ্ত তথ্যে প্রদর্শিত হয়, ফলে যখন আপনি আরটিডিএন (RTDN) গ্রহণ করে টোকেনটি যাচাই করবেন, তখন আপনি দ্ব্যর্থহীনভাবে জানতে পারবেন যে আপনার ডাটাবেসের কোন অ্যাকাউন্টটিকে এই অধিকারটি প্রদান করতে হবে।

গ্রাহকের দিক থেকে, প্রস্তুতি নেওয়ার সময় BillingFlowParamsআপনাকে শুধু তালিকাটি তৈরি করতে হবে। ProductDetailsParams এবং কল setObfuscatedAccountId(obfuscatedAccountId) ফ্লোটি চালু করার আগে। এটি ব্যবহারকারীর দৃশ্যমান অভিজ্ঞতায় কোনো পরিবর্তন আনে না, কিন্তু প্রক্রিয়াটিকে অনেক সহজ করে তোলে। ব্যাকএন্ড ক্রয় বরাদ্দ যুক্তি এবং গুগলকে জালিয়াতি শনাক্ত করতে সাহায্য করে।

গুগল প্লে ডেভেলপার এপিআই ব্যবহার করে কেনাকাটা যাচাই করুন

আপনার সার্ভারে কোনো অধিকার দেওয়ার আগে, ফোন করে ক্রয়টি বৈধ কিনা তা যাচাই করা বাধ্যতামূলক। গুগল প্লে ডেভেলপার এপিআইক্লায়েন্ট বা এমনকি RTDN যা বলে তার উপর নির্ভর করা যথেষ্ট নয়: আপনাকে অবশ্যই যাচাই করতে হবে purchaseToken সরাসরি অফিসিয়াল এন্ডপয়েন্টগুলোর বিপরীতে, এবং প্রয়োজনে ফেরত পরিচালনা করুন.

স্বতন্ত্র পণ্যের ক্ষেত্রে, আপনি এন্ডপয়েন্ট ব্যবহার করবেন purchases.products:getসাবস্ক্রিপশনের জন্য, পথটি নিয়ে যায় purchases.subscriptionsv2:getপ্রস্তাবিত প্রবাহ হল:

  • এক্সট্রাক্ট purchaseToken পাব/সাব বার্তা থেকে।
  • আপনার ডাটাবেস পরীক্ষা করে দেখুন আপনি এটি ইতিমধ্যেই প্রসেস করেছেন কিনা; প্রতিটি টোকেন হলো বিশ্বব্যাপী অনন্যতাই ডুপ্লিকেট এড়ানোর জন্য এটি প্রাইমারি কী হিসেবে একদম উপযুক্ত।
  • যদি এটি নতুন হয়, তাহলে প্যাকেজ, SKU এবং আইডি সহ Google Play Developer API-কে কল করুন। purchaseToken.
  • প্রতিক্রিয়াটি ক্রয়ের অবস্থা নির্দেশ করে কিনা তা যাচাই করুন। ক্রয় করা হয়েছে (অপেক্ষমাণ বা বাতিল নয়)।
  • সবকিছু মিলে গেলে, টোকেনটি নিবন্ধন করুন এবং সংশ্লিষ্ট ব্যবহারকারীকে যথাযথ অধিকার প্রদান করুন।

জাভা থেকে প্লে ডেভেলপার এপিআই-এর সাথে যোগাযোগ করতে আপনি ব্যবহার করতে পারেন অ্যান্ড্রয়েড পাবলিশারসার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়াল JSON ফরম্যাটে দিয়ে ইনিশিয়ালাইজ করা হয়। আপনি স্কোপটি কনফিগার করেন। AndroidPublisherScopes.ANDROIDPUBLISHERআপনি ক্লায়েন্ট তৈরি করুন এবং মেথডটি কল করুন। purchases().products().get(...)যদি সাময়িক নেটওয়ার্ক বা পরিষেবা সমস্যার কারণে কলটি ব্যর্থ হয়, তবে এটি সুপারিশ করা হয় এক্সপোনেনশিয়াল ব্যাকঅফ সহ রিট্রাই বাস্তবায়ন করুন যাতে অনুষ্ঠানটি বাদ না যায়।

সার্ভার থেকে ক্রয়টি নিশ্চিত বা সম্পন্ন করুন

একবার আপনি আপনার সিস্টেমে ক্রয়টি যাচাই করে অনুমোদন দিয়ে দিলে, পরবর্তী পদক্ষেপ হলো Google-কে জানানো যে লেনদেনটি সফলভাবে সম্পন্ন হয়েছে। একক-আইটেমের পণ্যের জন্য, আপনার কাছে দুটি বিকল্প রয়েছে: ক্রয়টি গ্রহণ করুন বা সহজভাবে তাকে চিনতে.

ব্যবহারযোগ্য পণ্য (যেমন, ভার্চুয়াল মুদ্রা, জীবন, ইত্যাদি) অবশ্যই শেষবিন্দুর মধ্য দিয়ে যেতে হবে। purchases.products:consumeএটি টোকেনটিকে ব্যবহৃত হিসাবে চিহ্নিত করে এবং ব্যবহারকারীকে কোনো বিরোধ ছাড়াই একই আইটেমটি পুনরায় কেনার অনুমতি দেয়। অ-ব্যবহারযোগ্য পণ্যগুলির জন্য (যেমন আজীবনের জন্য প্রিমিয়াম সংস্করণ আনলক করা), আপনাকে অবশ্যই কল করতে হবে। purchases.products:acknowledgeযা গুগলকে জানায় যে ব্যবহারকারীর সংশ্লিষ্ট অধিকারটি ইতিমধ্যেই রয়েছে।

সাবস্ক্রিপশন ব্যবহার করা হয় purchases.subscriptions:acknowledgeযা নির্দেশ করে যে সাবস্ক্রিপশনটি সফলভাবে প্রক্রিয়া করা হয়েছে এবং ব্যবহারকারীকে বরাদ্দ করা হয়েছে। আপনি যদি একটি যুক্তিসঙ্গত সময়ের মধ্যে কোনো কেনাকাটা স্বীকার না করেন, তাহলে Google ধরে নিতে পারে যে কোনো সমস্যা হয়েছে এবং লেনদেনটি বাতিল করে দিতে পারে, তাই এটি গুরুত্বপূর্ণ যে আপনি অধিকার মঞ্জুর করার ঠিক পরেই ফিরে আসাটা সঠিকভাবে করা হয়।.

আপনার AndroidPublisher হেল্পারে আপনি এই ধরনের মেথড যোগ করতে পারেন executeProductPurchasesConsume y executeProductPurchasesAcknowledge যেগুলো সংশ্লিষ্ট এন্ডপয়েন্টগুলোকে কল করে। আবার, মাঝেমধ্যে ব্যর্থতার ক্ষেত্রে রিট্রাই (পুনরায় চেষ্টা) প্রয়োগ করার পরামর্শ দেওয়া হয়, যাতে কোনো টোকেন বিপজ্জনক মধ্যবর্তী অবস্থায় থেকে না যায়।

প্লে বিলিং ল্যাবের মাধ্যমে উন্নত পরীক্ষা

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

প্লে বিলিং ল্যাবে অন্তর্ভুক্ত রয়েছে একটি উত্তর সিমুলেটর যা বিভিন্নকে বাধ্য করার সুযোগ দেয় BillingResponseCode আপনার অ্যাপের বিলিং লাইব্রেরিতে করা কলগুলোতে। এইভাবে, আপনি এমন পরিস্থিতিগুলো পুনরায় তৈরি করতে পারবেন যেখানে, উদাহরণস্বরূপ, গ্রাহক নেটওয়ার্ক সমস্যার কারণে কেনাকাটাটি সম্পন্ন করতে পারছেন না, কিন্তু আপনার ব্যাকএন্ড সঠিকভাবে RTDN প্রসেস করে এবং শেষ পর্যন্ত ব্যবহারকারীর হস্তক্ষেপ ছাড়াই এনটাইটেলমেন্টটি মঞ্জুর করে।

আপনার অ্যাপকে সিমুলেটরের সাথে যোগাযোগ করানোর জন্য, আপনাকে মেটাডেটা ব্যবহার করে 'বিলিং ওভাররাইড' টেস্টিং সক্ষম করতে হবে। AndroidManifest.xml:

<manifest ... >
  <application ... >
    ...
    <meta-data
        android:name="com.google.android.play.largest_release_audience.NONPRODUCTION"
        android:value="" />
    <meta-data
        android:name="com.google.android.play.billingclient.enableBillingOverridesTesting"
        android:value="true" />
  </application>
</manifest>

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

একবার কনফিগার করা হয়ে গেলে, প্লে বিলিং ল্যাব অ্যাপ থেকে একটি লাইসেন্স টেস্টার অ্যাকাউন্ট দিয়ে লগ ইন করুন, "সিমুলেট প্লে বিলিং লাইব্রেরি রেসপন্স" অপশনটি সক্রিয় করুন, এবং প্রতিটি API-এর জন্য আপনি কোন এরর কোডগুলো ফেরত পেতে চান তা নির্বাচন করুন (উদাহরণস্বরূপ, একটি নির্দিষ্ট এরর consumeAsyncএরপর আপনি শুধু আপনার অ্যাপটি খুলুন এবং যে ফ্লোটি পরীক্ষা করতে চান তা চালান: সিমুলেটরটি কনফিগার করা রেসপন্সগুলো ফেরত দেবে এবং আপনি যাচাই করতে পারবেন যে আপনার রিট্রাই লজিক, এরর হ্যান্ডলিং এবং RTDN প্রত্যাশা অনুযায়ী কাজ করছে কিনা।

প্লে বিলিং লাইব্রেরি ৭-এ স্থানান্তরের সময় প্রধান এপিআই পরিবর্তনসমূহ

RTDN এবং টেস্টিং ছাড়াও, PBL 7-এ মাইগ্রেট করার জন্য কিছু নির্দিষ্ট API বিষয় সমাধান করতে হয়। যারা PBL 5 বা 6 থেকে আসছেন, তাদের জন্য সবচেয়ে প্রাসঙ্গিক পরিবর্তনগুলো পর্যালোচনা করা জরুরি, যাতে প্রজেক্টটি নির্বিঘ্নে কম্পাইল হয় এবং বিজনেস লজিক সামঞ্জস্যপূর্ণ থাকে।

প্রথমত, সম্পর্কিত এপিআইগুলি প্রোরেশন মোড সাবস্ক্রিপশন পরিবর্তনের বিকল্পগুলো সরিয়ে ফেলা হয়েছে। এখন নিম্নলিখিতটি ব্যবহৃত হয়: প্রতিস্থাপন মোড পরিকল্পনার পরিবর্তন (আপগ্রেড, ডাউনগ্রেড, ইত্যাদি) পরিচালনা করতে। আপনি যদি এখনও এই ধরনের পদ্ধতি ব্যবহার করে থাকেন setReplaceProrationMode o setReplaceSkusProrationModeআপনাকে তাদেরকে নতুন ভ্যারিয়েন্টগুলোতে স্থানান্তর করতে হবে setSubscriptionReplacementMode এবং হালনাগাদকৃত ডকুমেন্টেশন অনুযায়ী লজিকটি সমন্বয় করুন।

এপিআইটিও সরিয়ে ফেলা হয়েছে। launchPriceConfirmationFlowযা ইতিমধ্যেই অপ্রচলিত হিসেবে চিহ্নিত করা হয়েছিল। সাবস্ক্রিপশনের মূল্য পরিবর্তন পরিচালনা করার জন্য, আপনার মূল্য পরিবর্তন নির্দেশিকায় থাকা নতুন কার্যপ্রবাহ এবং সুপারিশগুলো দেখা উচিত, যেখানে ব্যবহারকারীকে কীভাবে সঠিকভাবে অবহিত করতে হবে এবং সম্মতি কীভাবে পরিচালনা করতে হবে তার বিস্তারিত বিবরণ রয়েছে।

আরেকটি গুরুত্বপূর্ণ বিষয় হলো বিকল্প বিলিং এপিআইপদ্ধতিগুলো BillingClient.Builder.enableAlternativeBilling, AlternativeBillingListener y AlternativeChoiceDetails আরও সামঞ্জস্যপূর্ণ নামকরণের প্রচলনের জন্য বিলুপ্ত হয়ে গেছে: এখন আপনাকে অবশ্যই ব্যবহার করতে হবে BillingClient.Builder.enableUserChoiceBilling() পরবর্তী UserChoiceBillingListener y UserChoiceDetailsগুগলের নিজের মতে, এটি মূলত আচরণের কোনো পরিবর্তন ছাড়াই একটি নাম পরিবর্তন, যা এমন একটি প্রেক্ষাপটে ঘটে যেখানে কিছু চুক্তি দ্বারা চিহ্নিত করা হয়, যেমন গুগল ও এপিক গেমস অ্যান্ড্রয়েড উন্মুক্ত করতে সম্মত হয়েছে।.

অবশেষে, একটি নতুন ত্রুটি কোড প্রবেশ করানো হয়। নেটওয়ার্ক ত্রুটি en BillingResultএবং এর অর্থ ও শর্তাবলী পরিষেবা_সময়সীমা_অতিক্রম এবং পরিষেবা_অনুপলব্ধআপনার যদি নিজস্ব ত্রুটি পরিচালনা করার লজিক থাকে (যেমন, ব্যবহারকারীকে কখন বার্তা দেখানো হবে, কখন নীরবে পুনরায় চেষ্টা করা হবে, ইত্যাদি), তবে এই নতুন সূক্ষ্ম বিষয়গুলো বিবেচনায় নেওয়ার জন্য তা পর্যালোচনা করে নেওয়া বাঞ্ছনীয়।

ক্রয় না হওয়া পর্যন্ত লেনদেন অমীমাংসিত থাকবে এবং অর্ডার আইডি অনুপস্থিত থাকবে।

PBL 7-এর একটি সূক্ষ্ম পরিবর্তন হলো যে লাইব্রেরিটি আর একটি তৈরি করে না অপেক্ষমান ক্রয়ের জন্য অর্ডার আইডি. এই ক্ষেত্রে, orderId ক্রয়টি 'ক্রয়কৃত' (PURCHASED) অবস্থায় পৌঁছালেই এটি উপলব্ধ হবে। এটি বিশেষ করে সেইসব ওয়ার্কফ্লোকে প্রভাবিত করে, যেখানে আপনি শুরু থেকেই অর্ডার আইডিকে প্রাথমিক রেফারেন্স হিসেবে ব্যবহার করেছেন।

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

আপনি যদি এখনও বকেয়া ব্যালেন্স নিয়ে কাজ না করে থাকেন, তাহলে বিলিং লাইব্রেরি ইন্টিগ্রেশন গাইড এবং ডকুমেন্টেশন পর্যালোচনা করুন। ক্রয় জীবনচক্র ব্যবস্থাপনাসেখানে আপনি বিভিন্ন অবস্থা, প্রতিটিতে কীভাবে প্রতিক্রিয়া জানাতে হবে এবং এই জটিল প্রক্রিয়ায় RTDN-এর ভূমিকা সম্পর্কে জানতে পারবেন।

PBL 7-এর নতুন ঐচ্ছিক সুবিধাসমূহ: ভার্চুয়াল কিস্তি এবং অগ্রিম পরিশোধ

PBL 7-এর চমৎকার নতুন বৈশিষ্ট্যগুলোর মধ্যে রয়েছে ভার্চুয়াল ফি সাবস্ক্রিপশন (ভার্চুয়াল কিস্তি সাবস্ক্রিপশন) এবং প্রিপেইড সাবস্ক্রিপশনের জন্য অপেক্ষমান কেনাকাটার ক্ষেত্রে বর্ধিত সমর্থন। এই বৈশিষ্ট্যগুলি বাধ্যতামূলক নয়, তবে বিভিন্ন বাজারের সাথে আপনার ব্যবসায়িক মডেলকে খাপ খাইয়ে নেওয়ার ক্ষেত্রে এগুলি আপনাকে আরও নমনীয়তা দিতে পারে।

ভার্চুয়াল কিস্তি ব্যবহারকারীকে দীর্ঘমেয়াদী সাবস্ক্রিপশনের জন্য অর্থ পরিশোধ করার সুযোগ দেয়। অল্প পরিমাণে পর্যায়ক্রমিক পেমেন্টএককালীন বড় অঙ্কের পেমেন্টের পরিবর্তে, গুগল ব্যাখ্যা করে যে ডেভেলপার বিলিংয়ের উদ্দেশ্যে, আপনি একটি বার্ষিক প্ল্যানের অধীনে মাসিক কিস্তিতে পেমেন্ট পেতে থাকবেন। যদি কোনো ব্যবহারকারী পেমেন্ট করতে ব্যর্থ হন, তবে আপনি বা গুগল কেউই পূর্ববর্তী কিস্তিগুলো আদায়ের চেষ্টা করবেন না। এর ফলে, অন্তত প্রাথমিকভাবে, এর ব্যবহারিক প্রয়োগ একটি সাধারণ মাসিক সাবস্ক্রিপশনের মতোই হয়ে যায়।

আপাতত, এই সাবস্ক্রিপশন ফিগুলো শুধুমাত্র এখানে উপলব্ধ ব্রাজিল, ফ্রান্স, ইতালি এবং স্পেননতুন সমর্থিত দেশগুলোর জন্য প্লে কনসোলে নজর রাখার পরামর্শ দিচ্ছে গুগল। কনফিগারেশন করা হয় এর মাধ্যমে। ProductDetails.InstallmentPlanDetails এবং সেগুলোকে আপনার অ্যাপে সংহত করার জন্য নির্দিষ্ট নির্দেশিকা অনুসরণ করুন।

এর পাশাপাশি, সহায়তাও সম্প্রসারিত করা হচ্ছে। প্রিপেইড সাবস্ক্রিপশনের জন্য অপেক্ষমান ক্রয়এখন আপনি এমন মডেল অফার করতে পারেন যেখানে ব্যবহারকারী অ্যাপে কেনাকাটা শুরু করে এবং পরে অন্য উপায়ে পেমেন্ট সম্পন্ন করে, এবং বিলিং লাইব্রেরি জানে কীভাবে সেই প্রক্রিয়াটি সঠিকভাবে পরিচালনা করতে হয়। কল করার মাধ্যমে অ্যাক্টিভেশন করা হয়। enablePendingPurchases() BillingClient চালু করার সময় এবং, বিশেষত প্রিপেইড প্ল্যানগুলির জন্য, ব্যবহার করে PendingPurchasesParams.Builder.enablePrepaidPlans().

প্লে বিলিং লাইব্রেরি ৫ এবং ৬ এর অবচয়কাল

পিবিএল ৭ শুরু হওয়ায় গুগল সুস্পষ্ট তারিখ নির্ধারণ করেছে। সংস্করণ ৫ এবং ৬-এর জন্য সমর্থন প্রত্যাহারআপনি যদি এখনও সেগুলোর কোনোটির মধ্যে থাকেন, তবে আপনাকে অবশ্যই ক্যালেন্ডারটি লাল কালি দিয়ে চিহ্নিত করতে হবে:

  • নতুন অ্যাপ এবং আপডেটের জন্য গুগল প্লে বিলিং লাইব্রেরি ৫ আনুষ্ঠানিকভাবে ৩১ আগস্ট, ২০২৪-এ বন্ধ করে দেওয়া হবে। ১ নভেম্বর, ২০২৪ পর্যন্ত এর মেয়াদ বাড়ানোর জন্য অনুরোধ করা সম্ভব, কিন্তু দীর্ঘমেয়াদে এর উপর নির্ভর করা উচিত নয়।
  • গুগল প্লে বিলিং লাইব্রেরি ৬ ব্যবহার করে ১ আগস্ট, ২০২৫ পর্যন্ত নতুন অ্যাপ প্রকাশ করা যাবে এবং ১ নভেম্বর, ২০২৫ পর্যন্ত বিদ্যমান অ্যাপ আপডেট করা যাবে।

উক্ত তারিখের পর, যদি আপনি অন্তত সংস্করণ ৬ অথবা আদর্শগতভাবে সংস্করণ ৭-এ স্থানান্তরিত না হয়ে থাকেন, তাহলে আপনাকে সর্বশেষ সংস্করণে আপডেট করতে হবে। 7 সংস্করণপ্লে কনসোলে আপনার আপডেটগুলি ব্লক করে দেওয়া হবে। যদিও আপনার অ্যাপটি ব্যবহারকারীদের ডিভাইসে কাজ করতে থাকবে, আপনার অ্যাপটি অচল হয়ে যাবে এবং আপনি বাগ ঠিক করতে বা স্টোরে প্রকাশের উপর নির্ভরশীল নতুন ফিচার যোগ করতে পারবেন না।

.NET MAUI এর ক্ষেত্রে এবং বর্তমান সীমাবদ্ধতাসমূহ

আপনি যদি অ্যান্ড্রয়েডে .NET MAUI এবং সাবস্ক্রিপশন নিয়ে কাজ করে থাকেন, তাহলে সম্ভবত আপনি ইতিমধ্যেই পড়েছেন বা অভিজ্ঞতা লাভ করেছেন যে বিষয়টি ততটা সহজ নয়। অনেক প্রকল্পে ব্যবহৃত হয় প্লাগইন.ইনঅ্যাপবিলিং জেমস মন্টেম্যাগনোর তৈরি, কিন্তু প্লাগইনটি আর্কাইভ করা হয়েছে এবং রক্ষণাবেক্ষণ করা হয় না, তাই বিলিং লাইব্রেরি ৭ সমর্থন করার জন্য এটি আপডেট করা হবে না। একই সময়ে, অফিসিয়াল প্যাকেজটি Xamarin.Android.Google.BillingClient এটি Xamarin.Android ইকোসিস্টেমের সাথে আবদ্ধ রয়েছে এবং .NET MAUI-এর সাথে সরাসরি সামঞ্জস্যপূর্ণ নয়।

এর বাস্তব ফল হল যে প্লে কনসোল সতর্ক করে আপনার অ্যাপটি বিলিং লাইব্রেরি ৭.০.০ বা তার উচ্চতর সংস্করণ ব্যবহার করে না, যা পুরোনো লাইব্রেরি ব্যবহার করতে থাকলে আপডেট আটকে দেয়। কিছু ডেভেলপার একটি সংস্করণ আপলোড করার জন্য সাবস্ক্রিপশন সাময়িকভাবে নিষ্ক্রিয় করার মতো কঠোর সমাধান বেছে নিয়েছেন, কিন্তু আপনার ব্যবসায়িক মডেল যদি সেই অর্থায়নের উপর নির্ভরশীল হয়, তবে এটি স্পষ্টতই টেকসই নয়।

এই প্রেক্ষাপটে, অনেক দল বিকল্প বিবেচনা করছে যেমন তৃতীয় পক্ষের SDK গুলি এই পরিষেবাগুলি ইতিমধ্যেই অভ্যন্তরীণভাবে পিবিএল ৭ সমর্থন করে এবং একটি আরও স্থিতিশীল, ক্রস-প্ল্যাটফর্ম এপিআই প্রদান করে (উদাহরণস্বরূপ, অ্যান্ড্রয়েড, আইওএস এবং অন্যান্য প্ল্যাটফর্মের জন্য এসডিকে সহ সাবস্ক্রিপশন ব্যাকএন্ড সলিউশন)। এই পরিষেবাগুলি সাধারণত বিলিং লাইব্রেরির সংস্করণ মাইগ্রেশন পরিচালনা করে এবং একটি স্থিতিশীল র‍্যাপার প্রদান করে, যা গুগলের প্রতিটি নতুন ডেপ্রিকেশনের সাথে চাপ উল্লেখযোগ্যভাবে হ্রাস করে।

যতক্ষণ না মাইক্রোসফট এবং MAUI টিম একটি প্রস্তাব দেয় অফিসিয়াল প্যাকেজ আপডেট করা হয়েছে এবং সম্পূর্ণ সামঞ্জস্যপূর্ণ বিলিং লাইব্রেরি ৭-এর সাথে, বিকল্পগুলোর মধ্যে রয়েছে: নেটিভ বিলিং লাইব্রেরিতে আপনার নিজস্ব বাইন্ডিং প্রয়োগ করা, কোনো থার্ড-পার্টি পরিষেবা ব্যবহার করা, অথবা আপনার MAUI প্রোজেক্টে কেনাকাটা একীভূত করার পদ্ধতি পুনর্বিবেচনা করা। যাই হোক, সিদ্ধান্তটি শেষ মুহূর্তের জন্য ফেলে না রাখাই ভালো, কারণ Play-এর ডেডলাইন নির্দিষ্ট থাকে।

গুগল প্লে বিলিং লাইব্রেরি v7
সম্পর্কিত নিবন্ধ:
গুগল প্লেতে ধাপে ধাপে কেনাকাটার জন্য কীভাবে ফেরতের অনুরোধ করবেন

সামগ্রিকভাবে, গুগল প্লে বিলিং লাইব্রেরি v7-এর আপডেটে নির্ভরতা পর্যালোচনা, অপ্রচলিত এপিআই (API) পরিমার্জন, ক্রয় যাচাইকরণ ও আরটিডিএন (RTDN) দ্বারা ব্যাকএন্ড লজিক শক্তিশালীকরণ এবং লাইভ হওয়ার আগে সমস্ত বাগ খুঁজে বের করতে প্লে বিলিং ল্যাবের মতো টেস্টিং টুল ব্যবহার করা অন্তর্ভুক্ত রয়েছে। যারা এই মাইগ্রেশনটি নিখুঁতভাবে সম্পন্ন করতে সময় দেবেন, তারা প্রিপেইড প্ল্যান, ভার্চুয়াল ফি, নেটওয়ার্ক ত্রুটি এবং সাবস্ক্রিপশন লাইফসাইকেল পরিবর্তনগুলো আরও ভালোভাবে সামলাতে পারবেন এবং গুগল প্লে-তে স্থিতিশীল রাজস্ব ও একটি পরিমার্জিত ব্যবহারকারী অভিজ্ঞতা বজায় রাখার ক্ষেত্রে তাদের সম্ভাবনা অনেক বেড়ে যাবে। তথ্যটি শেয়ার করুন যাতে আরও বেশি ব্যবহারকারী বিষয়টি সম্পর্কে জানতে পারেন।


পছন্দের উৎস হিসেবে যোগ করুন