Google Play বিলিং ব্যবহার করুন

প্রকাশিত: 2 ডিসেম্বর, 2020

আপনার অ্যাপকে প্লে স্টোরে ডিজিটাল পণ্য এবং সদস্যতা বিক্রি করার অনুমতি দেওয়ার পাশাপাশি, Google Play বিলিং আপনার ক্যাটালগ, মূল্য এবং সদস্যতা, দরকারী প্রতিবেদন এবং Play Store দ্বারা চালিত একটি চেকআউট ফ্লো পরিচালনা করার জন্য টুল অফার করে যা আপনার ব্যবহারকারীদের কাছে ইতিমধ্যেই পরিচিত৷ প্লে স্টোরে প্রকাশিত অ্যাপ্লিকেশনগুলির জন্য এটি একটি প্রয়োজনীয়তা যা ডিজিটাল পণ্য বিক্রি করে৷

Google Play বিলিং API এর নিজস্ব পরিভাষা রয়েছে এবং এতে ক্লায়েন্ট এবং ব্যাকএন্ড উপাদান অন্তর্ভুক্ত রয়েছে। এই বিভাগটি API এর শুধুমাত্র একটি ছোট অংশ কভার করে যা ডিজিটাল গুডস API এবং বিশ্বস্ত ওয়েব কার্যকলাপ ব্যবহার করার জন্য নির্দিষ্ট। প্রোডাকশন অ্যাপ্লিকেশানে একীভূত করার আগে Google Play বিলিং ডকুমেন্টেশন পড়তে এবং এর ধারণাগুলি বুঝতে ভুলবেন না৷

মৌলিক প্রবাহ

প্লে স্টোরের সাথে ডিজিটাল পণ্য সরবরাহ করতে, প্লে স্টোরে আপনার ক্যাটালগ কনফিগার করুন এবং আপনার PWA থেকে একটি অর্থপ্রদানের পদ্ধতি হিসাবে প্লে স্টোরকে সংযুক্ত করুন।

আপনি প্লে স্টোর ইন্টারফেসে এটি করতে পারেন:

  1. প্লে কনসোল মেনুতে পণ্যগুলিতে ক্লিক করুন। আপনার বিদ্যমান ইন-অ্যাপ পণ্য এবং সদস্যতা দেখুন। ধাপ 1: পণ্য বিভাগ খুঁজুন।
  2. একটি নতুন পণ্য যোগ করতে পণ্য তৈরি করুন ক্লিক করুন. ধাপ 2: নতুন পণ্য যোগ করতে পণ্য ইন্টারফেসে যান।
  3. একটি পণ্য আইডি, নাম, বিবরণ, এবং একটি মূল্য যোগ করুন. অর্থপূর্ণ এবং সহজে মনে রাখার মতো পণ্য আইডি তৈরি করুন, যেমনটি আপনার পরে প্রয়োজন। একবার তৈরি হলে আইডি পরিবর্তন করা যাবে না। প্রতিটি পণ্যের জন্য অসংখ্য খালি ক্ষেত্র।
  4. সাবস্ক্রিপশন তৈরি করলে, আপনাকে একটি বিলিং সময়কালও উল্লেখ করতে হবে। আপনি আপনার সাবস্ক্রিপশন সুবিধাগুলি তালিকাভুক্ত করতে পারেন এবং বৈশিষ্ট্যগুলি যোগ করতে পারেন, যেমন বিনামূল্যে ট্রায়াল, প্রাথমিক মূল্য, একটি গ্রেস পিরিয়ড এবং একটি পুনঃসাবস্ক্রাইব বিকল্প৷
  5. পণ্য উপলব্ধ করতে সক্রিয় ক্লিক করুন.

আপনি যদি পছন্দ করেন, আপনি Play Developers API এর সাথে আপনার পণ্য যোগ করতে পারেন।

একবার আপনার ক্যাটালগ কনফিগার হয়ে গেলে, পরবর্তী ধাপ হল PWA থেকে চেকআউট ফ্লো কনফিগার করা। ডিজিটাল গুডস এপিআই এবং পেমেন্ট রিকোয়েস্ট এপিআই এর সমন্বয় ব্যবহার করুন।

ডিজিটাল গুডস এপিআই দিয়ে পণ্যের মূল্য আনুন

Google Play বিলিং ব্যবহার করার সময়, নিশ্চিত করুন যে ব্যবহারকারীদের কাছে প্রদর্শিত মূল্য স্টোর তালিকা থেকে পাওয়া মূল্যের সাথে মেলে। ম্যানুয়ালি এই দামগুলিকে সিঙ্কে রাখা অসম্ভব হবে, তাই ডিজিটাল গুডস API মূল্যগুলির জন্য অন্তর্নিহিত অর্থ প্রদানকারীকে জিজ্ঞাসা করার জন্য ওয়েব অ্যাপ্লিকেশনের জন্য একটি উপায় সরবরাহ করে:

// The SKU for the product, as defined in the Play Store interface
async function populatePrice(sku) {
  try {
    // Check if the Digital Goods API is supported by the browser.
    if (window.getDigitalGoodsService) {
      // The Digital Goods API can be supported by other Payments provider.
      // In this case, we're retrieving the Google Play Billing provider.
      const service =
          await window.getDigitalGoodsService("https://play.google.com/billing");

      // Fetch product details using the `getDetails()` method.
      const details = await service.getDetails([sku]);

      if (details.length === 0) {
        console.log(`Could not get SKU: "${sku}".`);
        return false;
      }

      // The details contain both the price and the currenncy.
      item = details[0];
      const value = item.price.value;
      const currency = item.price.currency;

      const formattedPrice = new Intl.NumberFormat(navigator.language, {
        style: 'currency', currency: currency }).format(value);

      // Display the price to the user.
      document.getElementById("price").innerHTML = formattedPrice;
    } else {
      console.error("Could not get price for SKU \"" + sku + "\".");
    }
  } catch (error) {
    console.log(error);
  }
  return false;
}

getDigitalGoodsService() window অবজেক্টে উপলব্ধ কিনা তা পরীক্ষা করে আপনি ডিজিটাল গুডস API-এর জন্য সমর্থন সনাক্ত করতে পারেন।

তারপর একটি প্যারামিটার হিসাবে Google Play বিলিং শনাক্তকারীর সাথে window.getDigitalGoodsService() কল করুন। এটি Google Play বিলিং-এর জন্য একটি পরিষেবার দৃষ্টান্ত প্রদান করে এবং অন্যান্য বিক্রেতারা ডিজিটাল গুডস এপিআই-এর জন্য সমর্থন প্রয়োগ করতে পারে এবং বিভিন্ন শনাক্তকারী থাকতে পারে।

অবশেষে, একটি প্যারামিটার হিসাবে আইটেমের জন্য SKU পাস করার Google Play বিলিং অবজেক্টের রেফারেন্সে getDetails() কল করুন। পদ্ধতিটি ব্যবহারকারীর কাছে প্রদর্শিত হতে পারে এমন আইটেমের মূল্য এবং মুদ্রা উভয়ই সমন্বিত একটি বিশদ বস্তু প্রদান করে।

ক্রয় প্রবাহ শুরু করুন

পেমেন্ট রিকোয়েস্ট API ওয়েবে ক্রয় প্রবাহকে সক্ষম করে এবং এটি Google Play বিলিং ইন্টিগ্রেশনের জন্যও ব্যবহৃত হয়। আপনি যদি পেমেন্ট রিকোয়েস্ট এপিআই-এ নতুন হন তাহলে আরও জানতে কীভাবে পেমেন্ট রিকোয়েস্ট এপিআই কাজ করে তা দেখুন।

Google Play বিলিং-এর সাথে API ব্যবহার করতে, আপনাকে একটি অর্থপ্রদানের উপকরণ যোগ করতে হবে, যেটিতে https://play.google.com/billing নামে একটি সমর্থিত পদ্ধতি রয়েছে। যন্ত্রের জন্য ডেটার অংশ হিসাবে SKU যোগ করুন:

const supportedInstruments = [{
  supportedMethods: "https://play.google.com/billing",
  data: {
    sku: sku
  }
}];

তারপরে, যথারীতি একটি PaymentRequest অবজেক্ট তৈরি করুন এবং যথারীতি API ব্যবহার করুন

const request = new PaymentRequest(supportedInstruments, details);

ক্রয় স্বীকার করুন

একবার লেনদেন সম্পূর্ণ হলে, পেমেন্ট স্বীকার করতে ডিজিটাল গুডস API ব্যবহার করুন। PaymentRequest থেকে প্রতিক্রিয়া বস্তুতে একটি টোকেন রয়েছে যা আপনি লেনদেন স্বীকার করতে ব্যবহার করতে পারেন:

const response = await request.show();
const token = response.details.token;
const service = await window.getDigitalGoodsService("https://play.google.com/billing");
await service.acknowledge(token, 'onetime');

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

বিদ্যমান এনটাইটেলমেন্ট চেক করুন

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

const purchases = await itemService.listPurchases();
for (p of purchases) {
  if (!p.acknowledged) {
    await itemService.acknowledge(p.purchaseToken, 'onetime');
  }
}