এককালীন পণ্যের জন্য প্রি-অর্ডার অফার যোগ করুন

1. ভূমিকা

এই কোডল্যাবে আপনি একটি এককালীন পণ্য (OTP) তৈরির উপর মনোযোগ দেবেন এবং পণ্যটির জন্য একটি প্রি-অর্ডার অফার যোগ করবেন।

দ্রষ্টব্য : এই কোডল্যাবটি শুরু করার আগে, আপনাকে ওয়ান-টাইম পণ্য EAP ইন্টারেস্ট ফর্ম পূরণ করে প্রি-অর্ডার বৈশিষ্ট্যের জন্য অ্যাক্সেসের অনুরোধ করতে হবে।

পাঠকবর্গ

এই কোডল্যাবটি অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের জন্য তৈরি যারা এককালীন পণ্যের সাথে পরিচিত এবং তাদের এককালীন পণ্যগুলিতে প্রি-অর্ডার অফার কীভাবে যুক্ত করবেন তা বুঝতে চান।

পূর্বশর্ত

আপনি যদি এককালীন পণ্যের ক্ষেত্রে নতুন হন, তাহলে আঞ্চলিক পণ্য মূল্য নির্ধারণের কোডল্যাবের মাধ্যমে নতুন বাজার আনলক করুন সম্পূর্ণ করার পরামর্শ দেওয়া হচ্ছে।

তুমি যা শিখবে...

  • আপনার এককালীন পণ্যের জন্য প্রি-অর্ডার অফার তৈরি করতে গুগল প্লে কনসোল কীভাবে ব্যবহার করবেন।
  • এককালীন পণ্য এবং সংশ্লিষ্ট প্রি-অর্ডার অফারের বিবরণের জন্য Play Billing Library API কীভাবে ব্যবহার করবেন।

তোমার যা লাগবে...

২. নমুনা অ্যাপ তৈরি করুন

এই কোডল্যাবটি আপনাকে এককালীন পণ্য পরিচালনা করার পদ্ধতি শেখাতে একটি নমুনা অ্যান্ড্রয়েড অ্যাপ ব্যবহার করে। নমুনা অ্যাপটি সম্পূর্ণরূপে কার্যকরী একটি অ্যান্ড্রয়েড অ্যাপ হিসেবে ডিজাইন করা হয়েছে যার সম্পূর্ণ সোর্স কোড রয়েছে যা নিম্নলিখিত দিকগুলি দেখায়:

  • অ্যাপটিকে PBL এর সাথে একীভূত করা।
  • এককালীন পণ্য এবং সংশ্লিষ্ট প্রি-অর্ডার অফার আনা।
  • আঞ্চলিক মূল্য নির্ধারণের জন্য ক্রয় প্রবাহ কার্যকর করুন।

নিচের ডেমো ভিডিওটিতে দেখানো হয়েছে যে নমুনা অ্যাপটি স্থাপন এবং চালানোর পরে কেমন দেখাবে এবং আচরণ করবে।

আপনি যদি ইতিমধ্যেই এককালীন পণ্য এবং প্লে বিলিং লাইব্রেরি (PBL) এর সাথে পরিচিত হন, তাহলে আপনি নমুনা অ্যাপটি ডাউনলোড করে এটি দিয়ে খেলতে পারেন।

পূর্বশর্ত

নমুনা অ্যাপ তৈরি এবং স্থাপন করার আগে, নিম্নলিখিতগুলি করুন:

নির্মাণ করুন

এই বিল্ড ধাপের উদ্দেশ্য হল নমুনা অ্যাপের একটি স্বাক্ষরিত অ্যান্ড্রয়েড অ্যাপ বান্ডেল ফাইল তৈরি করা।

অ্যান্ড্রয়েড অ্যাপ বান্ডেল তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

  1. GitHub থেকে নমুনা অ্যাপটি ডাউনলোড করুন।
  2. নমুনা অ্যাপ তৈরি করুন । তৈরি করার আগে, নমুনা অ্যাপের প্যাকেজ নাম পরিবর্তন করুন এবং তারপর তৈরি করুন। যদি আপনার Play Console-এ অন্যান্য অ্যাপের প্যাকেজ থাকে, তাহলে নিশ্চিত করুন যে নমুনা অ্যাপের জন্য আপনি যে প্যাকেজ নামটি দিয়েছেন তা অনন্য।

    দ্রষ্টব্য : নমুনা অ্যাপ তৈরি করলে কেবল একটি APK ফাইল তৈরি হয় যা আপনি স্থানীয় পরীক্ষার জন্য ব্যবহার করতে পারেন। তবে, অ্যাপটি চালানোর ফলে পণ্য এবং দাম পাওয়া যায় না কারণ পণ্যগুলি Play Console-এ কনফিগার করা হয়নি।
  3. একটি স্বাক্ষরিত অ্যান্ড্রয়েড অ্যাপ বান্ডেল তৈরি করুন।
    1. একটি আপলোড কী এবং কীস্টোর তৈরি করুন
    2. আপনার আপলোড কী দিয়ে অ্যাপে সাইন ইন করুন
    3. প্লে অ্যাপ সাইনিং কনফিগার করুন

পরবর্তী ধাপ হল গুগল প্লে কনসোলে অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপলোড করা।

৩. প্লে কনসোলে প্রি-অর্ডার দিয়ে OTP তৈরি করুন

গুগল প্লে কনসোলে এককালীন পণ্য (OTP) তৈরি করতে, আপনার প্লে কনসোলে একটি অ্যাপ থাকা দরকার। প্লে কনসোলে একটি অ্যাপ তৈরি করুন এবং তারপরে পূর্বে তৈরি স্বাক্ষরিত অ্যাপ বান্ডেলটি আপলোড করুন।

একটি অ্যাপ তৈরি করুন

একটি অ্যাপ তৈরি করতে:

  1. আপনার ডেভেলপার অ্যাকাউন্ট ব্যবহার করে গুগল প্লে কনসোলে লগ-ইন করুন।
  2. "অ্যাপ তৈরি করুন" এ ক্লিক করুন। এটি "অ্যাপ তৈরি করুন" পৃষ্ঠাটি খুলবে।
  3. একটি অ্যাপের নাম লিখুন, ডিফল্ট ভাষা নির্বাচন করুন এবং অ্যাপ সম্পর্কিত অন্যান্য বিবরণ দিন।
  4. অ্যাপ তৈরি করুন এ ক্লিক করুন। এটি গুগল প্লে কনসোলে একটি অ্যাপ তৈরি করে।

এখন আপনি নমুনা অ্যাপের স্বাক্ষরিত অ্যাপ বান্ডিলটি আপলোড করতে পারেন।

স্বাক্ষরিত অ্যাপ বান্ডেলটি আপলোড করুন

  1. স্বাক্ষরিত অ্যাপ বান্ডেলটি Google Play-এর কনসোলের অভ্যন্তরীণ পরীক্ষামূলক ট্র্যাকে আপলোড করুন । আপলোড করার পরেই, আপনি Play Console-এ নগদীকরণ সম্পর্কিত বৈশিষ্ট্যগুলি কনফিগার করতে পারবেন।
    1. পরীক্ষা এবং প্রকাশ > পরীক্ষা > অভ্যন্তরীণ প্রকাশ > নতুন প্রকাশ তৈরি করুন ক্লিক করুন।
    2. একটি রিলিজের নাম লিখুন এবং স্বাক্ষরিত APK ফাইলটি আপলোড করুন।
    3. পরবর্তী ক্লিক করুন, এবং তারপর সংরক্ষণ করুন এবং প্রকাশ করুন ক্লিক করুন।

এখন, আপনি এককালীন পণ্য তৈরি করতে পারেন।

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

এখন, ব্যবহারকারীদের কাছ থেকে আপনি যে এককালীন পণ্যটি কিনতে চান তা তৈরি করুন।

  1. Google Play Console- এ নমুনা অ্যাপটি খুলুন এবং Play > Products > One-time products দিয়ে Monetize এ নেভিগেট করুন।
  2. এককালীন পণ্য তৈরি করুন ক্লিক করুন।
  3. নিম্নলিখিত পণ্যের বিবরণ লিখুন:
    • পণ্য আইডি: একটি অনন্য আইডি লিখুন। উদাহরণস্বরূপ, upcoming_movie_1
    • (ঐচ্ছিক) ট্যাগ: প্রাসঙ্গিক ট্যাগ যোগ করুন।
    • নাম: একটি পণ্যের নাম লিখুন। উদাহরণস্বরূপ, Product Movie
    • বর্ণনা: একটি পণ্যের বিবরণ লিখুন। উদাহরণস্বরূপ, Product Description
    • (ঐচ্ছিক) একটি আইকন ছবি যোগ করুন: আপনার পণ্যের প্রতিনিধিত্ব করে এমন একটি আইকন আপলোড করুন।
    দ্রষ্টব্য: এই কোডল্যাবের উদ্দেশ্যে, আপনি ট্যাক্স, কমপ্লায়েন্স এবং প্রোগ্রাম বিভাগটি কনফিগার করা এড়িয়ে যেতে পারেন।
  4. পরবর্তী ক্লিক করুন।
  5. একটি ক্রয় বিকল্প যোগ করুন এবং এর আঞ্চলিক প্রাপ্যতা কনফিগার করুন। একটি এককালীন পণ্যের জন্য কমপক্ষে একটি ক্রয় বিকল্প প্রয়োজন, যা এনটাইটেলমেন্ট কীভাবে প্রদান করা হবে, এর দাম এবং আঞ্চলিক প্রাপ্যতা নির্ধারণ করে। এই কোডল্যাবের জন্য, আমরা পণ্যের জন্য স্ট্যান্ডার্ড ক্রয় বিকল্প যোগ করব। ক্রয় বিকল্প বিভাগে, নিম্নলিখিত বিবরণ লিখুন:
    • ক্রয় বিকল্প আইডি: একটি অনন্য আইডি লিখুন। উদাহরণস্বরূপ, buy-movie
    • ক্রয়ের ধরণ: কিনুন নির্বাচন করুন।
    • (ঐচ্ছিক) ট্যাগ: এই ক্রয় বিকল্পের জন্য নির্দিষ্ট ট্যাগ যোগ করুন।
    • (ঐচ্ছিক) উন্নত বিকল্পগুলি কনফিগার করতে উন্নত বিকল্পগুলিতে ক্লিক করুন। এই কোডল্যাবের উদ্দেশ্যে, আপনি উন্নত বিকল্পগুলি কনফিগারেশন এড়িয়ে যেতে পারেন।
  6. এরপর, আপনাকে ক্রয় বিকল্পের জন্য আঞ্চলিক প্রাপ্যতা এবং মূল্য কনফিগার করতে হবে। আঞ্চলিক প্রাপ্যতা বিভাগে, আপনি আপনার পণ্যটি কোথায় পাওয়া যাবে তা নির্দিষ্ট করবেন, যার মধ্যে এমন অঞ্চলগুলিও অন্তর্ভুক্ত থাকবে যেখানে আপনার অ্যাপটি এখনও প্রকাশিত হয়নি। ডিফল্টরূপে, সমস্ত অঞ্চলে একটি ক্রয় বিকল্প উপলব্ধ থাকবে । প্রাপ্যতা এবং মূল্য বিভাগে, প্রাপ্যতা সম্পাদনা করুন এবং অ্যাক্সেস করুন এ ক্লিক করুন।
    1. অনুপলব্ধ হিসেবে সেট করুন নির্বাচন করুন।
    লক্ষ্য করুন যে সমস্ত অঞ্চল স্বয়ংক্রিয়ভাবে নির্বাচিত হয়েছে এবং Available এ সেট করা আছে।
    1. শুধুমাত্র United States দেশটি নির্বাচন মুক্ত করুন, এবং তারপর Set to unavailable এ ক্লিক করুন। এখন এককালীন পণ্যটি শুধুমাত্র United States উপলব্ধ থাকবে।
    2. All regions ড্রপ-ডাউনে, Available countries and regions নির্বাচন করুন। আপনি শুধুমাত্র United States দেখতে পাবেন।
    3. মূল্য আইকনে ক্লিক করুন। এটি মূল্য নির্ধারণের জন্য একটি ডায়ালগ প্রদর্শন করে।
    4. ১০ মার্কিন ডলার লিখুন এবং তারপর সংরক্ষণ করুন এ ক্লিক করুন।
  7. খসড়া হিসেবে সংরক্ষণ করুন ক্লিক করুন।

দ্রষ্টব্য : ক্রয় বিকল্পটি এখনও সক্রিয় করবেন না। প্রি-অর্ডার অফারটি কনফিগার করার পরে আমরা এটি সক্রিয় করব। এর কারণ হল আপনি এমন একটি সক্রিয় ক্রয় বিকল্পে প্রি-অর্ডার অফার যোগ করতে পারবেন না যার আঞ্চলিক প্রাপ্যতা সেট করা আছে।

একটি প্রি-অর্ডার অফার যোগ করুন

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

একটি প্রি-অর্ডার অফার যোগ করার জন্য নিম্নলিখিত 2টি ধাপ জড়িত:

  1. প্রি-অর্ডার অফারের জন্য "কিনুন " বিকল্পটি প্রস্তুত করুন।
  2. ক্রয় বিকল্পের জন্য প্রি-অর্ডার অফার যোগ করুন।

প্রি-অর্ডার অফারের জন্য "কিনুন" বিকল্পটি প্রস্তুত করুন।

  1. Google Play Console- এ নমুনা অ্যাপটি খুলুন এবং Play > Products > One-time products দিয়ে Monetize এ নেভিগেট করুন।
  2. "এককালীন পণ্য" পৃষ্ঠায়, আপনার পণ্যের ডান তীর চিহ্নে ক্লিক করুন ( upcoming_movie_1 )। এটি "এককালীন পণ্য সম্পাদনা করুন" পৃষ্ঠাটি খুলবে।
  3. আপনার পূর্বে তৈরি করা buy-movie ক্রয় বিকল্পের ডান তীরটিতে ক্লিক করুন। এটি সম্পাদনা ক্রয় বিকল্প পৃষ্ঠাটি খুলবে।
  4. Edit availability and access- এ ক্লিক করুন এবং তারপর Set to available নির্বাচন করুন এবং ব্যবহারকারীদের প্রি-অর্ডার করার অনুমতি দিন
  5. All regions ড্রপ-ডাউন থেকে, Available countries and regions নির্বাচন করুন। এটি শুধুমাত্র United States দেখাবে যা আপনি আগে কনফিগার করেছিলেন।
  6. দেশটি নির্বাচন করুন, এবং তারপর "শুধুমাত্র প্রি-অর্ডারের জন্য উপলব্ধ" এ ক্লিক করুন।
  7. সংরক্ষণ করুন ক্লিক করুন।

মনে রাখবেন যে আপনি এখনও আপনার ক্রয় বিকল্পে কোনও প্রি-অর্ডার অফার যোগ করেননি। পরবর্তী ধাপ হল প্রি-অর্ডার অফার যোগ করা।

একটি প্রি-অর্ডার অফার যোগ করুন

  1. Google Play Console- এ নমুনা অ্যাপটি খুলুন এবং Play > Products > One-time products দিয়ে Monetize এ নেভিগেট করুন।
  2. "এককালীন পণ্য" পৃষ্ঠায়, "অফার যোগ করুন > আপনার পণ্যের জন্য প্রি-অর্ডার করুন" ( upcoming_movie_1 ) এ ক্লিক করুন। এটি "প্রি-অর্ডার যোগ করুন" পৃষ্ঠাটি খুলবে।
  3. প্রি-অর্ডারের বিবরণ লিখুন:
    • প্রি-অর্ডার আইডি: preorder-offer-1 লিখুন।
    • (ঐচ্ছিক) ছাড় যোগ করুন: আপনি None , Percentage , অথবা Absolute ছাড় নির্বাচন করতে পারেন। এই কোডল্যাবের উদ্দেশ্যে, None নির্বাচন করুন।
    • (ঐচ্ছিক) ট্যাগ: প্রাসঙ্গিক ট্যাগ যোগ করুন।
    • শুরুর তারিখ এবং সময়: ভবিষ্যতে কমপক্ষে ৩ দিন পরে একটি তারিখ নির্ধারণ করুন।
    • শেষ তারিখ এবং সময়: শুরুর তারিখের কমপক্ষে ২৪ ঘন্টা পরে একটি তারিখ সেট করুন।
    • প্রি-অর্ডারের পরে উপলব্ধতা: পণ্যটি প্রি-অর্ডারের সময়কালের সাথে সাথেই পাওয়া যাবে নাকি পরবর্তী কোনও নির্দিষ্ট তারিখ/সময়ে পাওয়া যাবে তা বেছে নিন।
    • (ঐচ্ছিক) কম দামের গ্যারান্টি: যদি আপনি চান যে ব্যবহারকারীরা তাদের প্রি-অর্ডার মূল্য এবং রিলিজের সময় মূল্যের মধ্যে সর্বনিম্ন মূল্য চার্জ করুক, তাহলে এই বিকল্পটি নির্বাচন করুন। এটি প্রাথমিক ক্রেতাদের জন্য একটি শক্তিশালী প্রণোদনা হতে পারে।
  4. সংরক্ষণ করুন ক্লিক করুন।
  5. আপনার এককালীন পণ্যের জন্য এককালীন পণ্য সম্পাদনা পৃষ্ঠাটি খুলুন (upcoming_movie_1)।
  6. বাই ক্রয় বিকল্পের জন্য ( buy-movie ) সক্রিয় করুন ক্লিক করুন।
  7. বাই ক্রয় বিকল্পের অধীনে প্রি-অর্ডার অফার ( preorder-offer-1 ) এর জন্য সক্রিয় করুন ক্লিক করুন। এটি প্রি-অর্ডার অফারটি সক্রিয় করে এবং প্রি-অর্ডারের বিবরণে পূর্বে কনফিগার করা তারিখে এটি লাইভ করে।

প্রি-অর্ডার অফার তৈরির ভিডিও

নিম্নলিখিত ভিডিওটিতে পূর্বে বর্ণিত প্রি-অর্ডার অফার তৈরির ধাপগুলি দেখানো হয়েছে।

৪. PBL এর সাথে একীভূত করুন

আপনার অ্যাপটি প্লে বিলিং লাইব্রেরি (PBL)- এর সাথে একীভূত করতে, নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:

  1. নমুনা অ্যাপে Play Billing Library নির্ভরতা যোগ করুন।
    dependencies {
    val billing_version = "8.1.0"
    
    implementation("com.android.billingclient:billing-ktx:$billing_version")
    }
    
  2. BillingClient আরম্ভ করুন। BillingClient হল ক্লায়েন্ট SDK যা আপনার অ্যাপে থাকে এবং Play Billing Library এর সাথে যোগাযোগ করে। নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে বিলিং ক্লায়েন্ট আরম্ভ করবেন।
    private BillingClient createBillingClient() {
    return BillingClient.newBuilder(activity)
        .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
        // For one-time products, add a listener to process and acknowledge the purchases. This will notify
        // Google the purchase was processed.
        // For client-only apps, use billingClient.acknowledgePurchase().
        // If you have a secure backend, you must acknowledge purchases on your server using the
        // server-side API.
        // See https://developer.android.com/google/play/billing/security#acknowledge
        // In this sample snippet purchases aren't processed. You must
        // implement your business logic to process and acknowledge the purchases.
        .setListener((billingResult, purchases) -> {})
        .enableAutoServiceReconnection()
        .build();
     }
    
  3. গুগল প্লেতে সংযোগ করুন। নিম্নলিখিত কোড স্নিপেটটি গুগল প্লেতে কীভাবে সংযোগ করবেন তা দেখায়।
    /**
    * Starts the billing connection with Google Play. This method should be called exactly once
    * before any other methods in this class.
    *
    * @param productList The list of products to query for after the connection is established.
    */
    public void startBillingConnection(List<Product> productList) {
        billingClient.startConnection(
            new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                Log.d(TAG, "Billing Client Connection Successful");
                queryProductDetails(productList);
                } else {
                Log.e(TAG, "Billing Client Connection Failed: " + billingResult.getDebugMessage());
                listener.onBillingSetupFailed(billingResult); // Propagate the error to the listener to show a message to the user.
                }
            }
    
            @Override
            public void onBillingServiceDisconnected() {
                Log.e(TAG, "Billing Client Connection Lost");
                listener.onBillingError("Billing Connection Lost");
            }
            });
    }
    
  4. এককালীন পণ্যের বিবরণ আনুন। আপনার অ্যাপটি PBL-এর সাথে একীভূত করার পরে, আপনাকে অবশ্যই আপনার অ্যাপে এককালীন পণ্যের বিবরণ আনতে হবে। নিম্নলিখিত কোড স্নিপেটটি দেখায় যে কীভাবে আপনার অ্যাপে এককালীন পণ্যের বিবরণ আনবেন।
    private void queryProductDetails(List<Product> productList) {
        QueryProductDetailsParams queryProductDetailsParams =
            QueryProductDetailsParams.newBuilder().setProductList(productList).build();
    
        billingClient.queryProductDetailsAsync(
            queryProductDetailsParams,
            new ProductDetailsResponseListener() {
            @Override
            public void onProductDetailsResponse(
                BillingResult billingResult, QueryProductDetailsResult productDetailsResponse) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                List<ProductDetails> productDetailsList =
                    productDetailsResponse.getProductDetailsList();
                    listener.onProductDetailsResponse(productDetailsList);
                } else {
                Log.e(TAG, "QueryProductDetailsAsync Failed: " + billingResult.getDebugMessage());
                listener.onBillingError("Query Products Failed: " + billingResult.getResponseCode());
                }
            }
            });
    }
    
    ProductDetails এ এককালীন পণ্য (এই উদাহরণে upcoming_movie_1 ) আনয়ন করলে, আপনাকে নিম্নলিখিতগুলির মতো একটি প্রতিক্রিয়া পাওয়া যাবে:
    {
        "productId": "upcoming_movie_1",
        "type": "inapp",
        "title": "Purrfect Mayhem: The Final Playback (Movies All Day | Play Samples)",
        "name": "Purrfect Mayhem: The Final Playback",
        "description": "Yolo and Thorne must reach the original broadcasting site to initiate the \"Final Playback\" and save the timeline. Follow them through their race against the Clockinators.",
        "skuDetailsToken": "<---skuDetailsToken--->",
        "oneTimePurchaseOfferDetails": {},
        "oneTimePurchaseOfferDetailsList": [
            {
                "priceAmountMicros": 8500000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$8.50",
                "offerIdToken": "<---offerIdToken--->",
                "offerId": "preorder",
                "purchaseOptionId": "buy-option",
                "offerTags": [],
                "validTimeWindow": {
                    "startTimeMillis": 1756771200000,
                    "endTimeMillis": 1785542400000
                },
                "preorderDetails": {
                    "preorderReleaseTimeMillis": 1785542400000,
                    "preorderPresaleEndTimeMillis": 1785542400000
                }
            }
        ]
    }
    
    লক্ষ্য করুন যে প্রি-অর্ডার অফারের বিবরণ oneTimePurchaseOfferDetailsList এ পাওয়া যাবে। এই তালিকায় ১টি ক্রয় বিকল্প ( buy-option ) আছে যার জন্য Play Console-এ প্রি-অর্ডার অফার কনফিগার করা হয়েছে। আপনি প্রতিটি ক্রয় বিকল্পকে তার offerIdToken দ্বারা স্বতন্ত্রভাবে সনাক্ত করতে পারেন।
  5. প্রি-অর্ডার অফারের বিবরণ সহ অফার টোকেনটি আনুন। ধাপ 6-এ বিলিং ফ্লো চালু করার জন্য আপনার অফার টোকেনটি প্রয়োজন।
    @Override
    public void onProductDetailsResponse(List<ProductDetails> productDetailsList) {
    
    if (productDetailsList != null && !productDetailsList.isEmpty()) {
    
    // Process productDetailsList returned by QueryProductDetailsResult
    for (ProductDetails productDetails : productDetailsResult.getProductDetailsList()) {
      for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
          productDetails.getOneTimePurchaseOfferDetailsList()) {
        // Checks if the offer is a preorder offer.
        if (oneTimePurchaseOfferDetails.getPreorderDetails() != null) {
          // Process the returned PreorderDetails
          OneTimePurchaseOfferDetails.PreorderDetails preorderDetails =
              oneTimePurchaseOfferDetails.getPreorderDetails();
          // Get preorder release time in millis.
          long preorderReleaseTimeMillis = preorderDetails.getPreorderReleaseTimeMillis();
          // Get preorder presale end time in millis.
          long preorderPresaleEndTimeMillis = preorderDetails.getPreorderPresaleEndTimeMillis();
          // Get offer ID
            String offerId = oneTimePurchaseOfferDetails.getOfferId();
          // Get the associated purchase option ID
          if (oneTimePurchaseOfferDetails.getPurchaseOptionId() != null) {
            String purchaseOptionId = oneTimePurchaseOfferDetails.getPurchaseOptionId();
          }
        }
      }
      }
      } else {
            Log.e(TAG, "No product details found for " + productId);
        }
    }
    
  6. বিলিং ফ্লো চালু করুন।
    /**
     * Launches the billing flow for the product with the given offer token.
    *
    * @param activity The activity instance from which the billing flow will be launched.
    * @param productDetails The product details of the product to purchase.
    * @param offerToken The offer token of the product to purchase.
    * @return The result of the billing flow.
    */
    public void launchPurchase(Activity activity, ProductDetails productDetails, String offerToken) {
        ImmutableList<BillingFlowParams.ProductDetailsParams> productDetailsParamsList =
            ImmutableList.of(
                BillingFlowParams.ProductDetailsParams.newBuilder()
                    .setProductDetails(productDetails)
                    .setOfferToken(offerToken)
                    .build());
        BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setProductDetailsParamsList(productDetailsParamsList)
            .build();
        billingClient.launchBillingFlow(activity, billingFlowParams);
    }
    

৫. ক্রয়ের বিকল্পগুলি পরীক্ষা করুন

আপনার লাইভ অ্যাপে আপনার এককালীন পণ্যগুলি উপলব্ধ করার আগে, আপনি লাইসেন্স পরীক্ষক এবং প্লে বিলিং ল্যাব ব্যবহার করে আপনার PBL ইন্টিগ্রেশন পরীক্ষা করতে পারেন।

প্লে বিলিং ল্যাব ব্যবহার করে আপনি কীভাবে আপনার ক্রয়ের বিকল্পগুলি পরীক্ষা করতে পারেন তা বুঝতে, আঞ্চলিক পণ্য মূল্য নির্ধারণের কোডল্যাব সহ নতুন বাজারগুলি আনলক করুন দেখুন।

৬. পরবর্তী পদক্ষেপ

রেফারেন্স ডক্স

৭. অভিনন্দন!

অভিনন্দন! আপনি সফলভাবে Google Play Console ব্যবহার করে এককালীন পণ্যের জন্য একটি প্রি-অর্ডার অফার তৈরি করেছেন। এখন আপনি একবারের কেনাকাটার জন্য Google Play-এর নমনীয় পণ্য ক্যাটালগ সম্পর্কে আরও গভীরভাবে বুঝতে পারবেন।

জরিপ

এই কোডল্যাব সম্পর্কে আপনার মতামত অত্যন্ত মূল্যবান। আমাদের জরিপটি সম্পূর্ণ করতে কয়েক মিনিট সময় নেওয়ার কথা বিবেচনা করুন।