এককালীন প্রোডাক্টের জন্য মাল্টি-প্রোডাক্ট

এই ডকুমেন্টে বর্ণনা করা হয়েছে যে কীভাবে আপনি Play Billing Library (PBL)-এর মাল্টি-প্রোডাক্ট ফিচারের সাথে আপনার অ্যাপ ইন্টিগ্রেট করতে পারবেন।

একবার ব্যবহারের প্রোডাক্টের (OTP) জন্য মাল্টি-প্রোডাক্ট ফিচার আপনাকে একাধিকবার ব্যবহারের প্রোডাক্টকে একটি ইউনিটে একত্রিত করতে দেয়। এইসব বান্ডেল করা প্রোডাক্ট একসাথে কেনা, বিল করা ও ম্যানেজ করা যাবে। এছাড়াও, প্রোডাক্ট কেনার জন্য গ্রাহকদের উৎসাহিত করতে, আপনি এইসব বান্ডেল করা OTP-র জন্য ছাড়ের অফার তৈরি করতে পারেন।

বিবেচ্য বিষয়

এককালীন প্রোডাক্ট বান্ডেল তৈরি করার সময়, নিম্নলিখিত বিষয়গুলি বিবেচনা করে দেখুন:

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

Play Billing Library-র সাথে ইন্টিগ্রেট করা

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

কেনাকাটার ফ্লো চালু করা

একাধিক প্রোডাক্টের জন্য এককালীন প্রোডাক্টের পারচেজ ফ্লো লঞ্চ করতে, এইসব ধাপ অনুসরণ করুন:

  1. QueryProductDetailsParams.Builder.setProductList পদ্ধতি ব্যবহার করে এককালীন প্রোডাক্টের একটি তালিকা তৈরি করুন।

  2. BillingClient.queryProductDetailsAsync পদ্ধতি ব্যবহার করে আপনার সব এককালীন প্রোডাক্ট পান।

    আপনার সব এককালীন প্রোডাক্ট কীভাবে পাবেন তা নিম্নলিখিত নমুনা থেকে দেখুন:

    জাভা

    billingClient.queryProductDetailsAsync(
    queryProductDetailsParams,
    new ProductDetailsResponseListener() {
      public void onProductDetailsResponse(
          BillingResult billingResult, QueryProductDetailsResult productDetailsResult) {
        // check billingResult
        // …
        // process productDetailsList returned by QueryProductDetailsResult
        ImmutableList productDetailsList = productDetailsResult.getProductDetailsList();
        for (ProductDetails productDetails : productDetailsList) {
          for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
              productDetails.getOneTimePurchaseOfferDetailsList()) {
                 // …
          }
        }
      }
    });
  3. প্রতিটি একবার কেনা যাবে এমন প্রোডাক্টের জন্য ProductDetails অবজেক্ট সেট করুন।

  4. BillingFlowParams.Builder.setProductDetailsParamsList পদ্ধতিতে এককালীন প্রোডাক্টের বিবরণ নির্দিষ্ট করুন। The BillingFlowParams ক্লাস কেনাকাটার ফ্লোয়ের বিবরণ নির্দিষ্ট করে।

    নিচের নমুনা থেকে বোঝা যায় যে কীভাবে একাধিক প্রোডাক্টের জন্য ওটিপি ব্যবহার করে কেনার ক্ষেত্রে বিলিং ফ্লো চালু করতে হয়:

    জাভা

    BillingClient billingClient =
       BillingClient.newBuilder()
        // set other options
        .build();
    // ProductDetails obtained from queryProductDetailsAsync().
    ProductDetails productDetails1 = ...;
    ProductDetails productDetails2 = ...;
    ArrayList productDetailsList = new ArrayList<>();
    productDetailsList.add(productDetails1);
    productDetailsList.add(productDetails2);
    BillingFlowParams billingFlowParams =
    BillingFlowParams.newBuilder()
        .setProductDetailsParamsList(productDetailsList)
        .build();
    billingClient.launchBillingFlow(billingFlowParams);

কেনাকাটা প্রসেস করা

একাধিক প্রোডাক্টের জন্য OTP ব্যবহার করে কেনাকাটা প্রসেস করার পদ্ধতি, আগে থেকে থাকা সিঙ্গেল আইটেম কেনাকাটার মতোই। এটি আপনার অ্যাপে Google Play Billing লাইব্রেরি ইন্টিগ্রেট করুন নিবন্ধে বর্ণনা করা হয়েছে। একমাত্র পার্থক্য হল, একাধিক প্রোডাক্টের জন্য OTP ব্যবহার করে কেনাকাটার ক্ষেত্রে আপনাকে শুধু একটি প্রোডাক্টের পরিবর্তে সব প্রোডাক্টের জন্য এনটাইটেলমেন্ট দিতে হবে, যাতে ব্যবহারকারী একটি কেনাকাটার মাধ্যমে একাধিক এনটাইটেলমেন্ট পেতে পারেন। একাধিক প্রোডাক্টের জন্য OTP ব্যবহার করে কেনাকাটা করলে একাধিক আইটেম ফেরত আসে, সেগুলি Google Play Billing লাইব্রেরিতে Purchase.getProducts() ব্যবহার করে রিট্রিভ করা যায় এবং তারপর Google Play Developer API-এর purchases.products.get-এ lineItems তালিকাভুক্ত করা হয়।

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

একাধিক প্রোডাক্টের জন্য OTP কেনাকাটার ক্ষেত্রে RTDN-এ sku ফিল্ড প্রদান করা হয় না। মাল্টি-প্রোডাক্ট ওটিপি কেনাকাটা একাধিক প্রোডাক্টের প্রতিনিধিত্ব করে। তাই, আপনি কেনাকাটা সংক্রান্ত ডেটা পেতে Play Developer API ব্যবহার করতে পারেন এবং এতে থাকা সব আইটেম দেখতে পারেন।

রিফান্ড

একাধিক প্রোডাক্টের জন্য ওটিপি ব্যবহার করে কেনাকাটা করা হলে, ব্যবহারকারী আলাদা আলাদা আইটেমের জন্য রিফান্ডের অনুরোধ করতে পারবেন না এবং আপনিও আলাদা আলাদা আইটেমের জন্য রিফান্ড ইস্যু করতে পারবেন না। তবে, মাল্টি-প্রোডাক্ট ওটিপি কেনার জন্য রিফান্ডের অনুরোধ ও ইস্যু করা যায়। আপনি যদি কোনও ব্যবহারকারীর জন্য একাধিক প্রোডাক্টের OTP কেনাকাটা বাতিল করেন, তাহলে কেনাকাটার সাথে যুক্ত সমস্ত এনটাইটেলমেন্ট বাতিল হয়ে যাবে।

ফাইন্যান্সিয়াল রিপোর্টিং ও রিকনসিলিয়েশন

Play-তে Google Payoffs ও ট্রানজ্যাকশনের সাথে আপনার চালু থাকা মাল্টি-প্রোডাক্ট OTP কেনাকাটা মিলিয়ে নিতে উপার্জন রিপোর্ট ব্যবহার করুন। প্রতিটি ট্রানজ্যাকশন লাইন আইটেমের একটি অর্ডার আইডি থাকে। একাধিক প্রোডাক্টের জন্য ওটিপি কেনার ক্ষেত্রে, উপার্জন ও আনুমানিক সেলস রিপোর্টে প্রতিটি ট্রানজ্যাকশনের জন্য আলাদা আলাদা সারি (একই অর্ডার আইডি সহ) অন্তর্ভুক্ত থাকবে, যেমন, চার্জ, ফি, ট্যাক্স ও রিফান্ড।

Play Console-এ ড্যাশবোর্ডের জন্য:

  • কনসোলের আর্থিক রিপোর্ট বিভাগে প্রদর্শিত উপার্জনের পরিসংখ্যান আলাদা আলাদা প্রোডাক্ট অনুযায়ী ভাগ করা থাকে।

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