Google Play বিলিং লাইব্রেরি রিলিজ নোট

এই নথিতে Google Play বিলিং লাইব্রেরির জন্য রিলিজ নোট রয়েছে৷

Google Play বিলিং লাইব্রেরি 7.1.1 রিলিজ (2024-10-03)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 7.1.1 এখন উপলব্ধ৷

বাগ ফিক্স

Google Play বিলিং লাইব্রেরি 7.1.0 রিলিজ (2024-09-19)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 7.1.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

  • সংযোগ স্থিতি এবং ব্যবস্থাপনা সম্পর্কিত উন্নত থ্রেড নিরাপত্তা.
  • BillingResult প্রতিক্রিয়া কোড পরীক্ষা করার জন্য আংশিক পরিবর্তন প্রবর্তন করা হয়েছে যা Play Billing Library 7.1.1-এ সম্পূর্ণরূপে প্রকাশিত হয়েছে। এই বৈশিষ্ট্যটি ব্যবহার করে আপনার ইন্টিগ্রেশন পরীক্ষা করতে, আপনাকে প্লে বিলিং লাইব্রেরি 7.1.1-এ আপগ্রেড করতে হবে। একটি বাগ বিদ্যমান যা শুধুমাত্র বিলিং ওভাররাইড টেস্টিং সক্ষম থাকা অ্যাপ্লিকেশনগুলিতে প্রভাব ফেলবে এবং নিয়মিত ব্যবহারকে প্রভাবিত করে না৷ আরও তথ্যের জন্য, Test BillingResult প্রতিক্রিয়া কোডগুলি দেখুন।

Google Play বিলিং লাইব্রেরি 7.0.0 রিলিজ (2024-05-14)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 7.0.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Google Play বিলিং লাইব্রেরি 6.2.1 রিলিজ (2024-04-16)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 6.2.1 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Google Play বিলিং লাইব্রেরি 6.2.0 রিলিজ (2024-03-06)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 6.2.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

  • বাহ্যিক অফার সমর্থন করার জন্য API যোগ করা হয়েছে
    • বাহ্যিক অফার প্রদান করার ক্ষমতা সক্ষম করতে BillingClient.Builder.enableExternalOffer() যোগ করা হয়েছে।
    • বাহ্যিক অফার কার্যকারিতা প্রদানের উপলব্ধতা পরীক্ষা করতে BillingClient.isExternalOfferAvailableAsync() যোগ করা হয়েছে।
    • যোগ করা হয়েছে BillingClient.showExternalOfferInformationDialog() অ্যাপের বাইরে ব্যবহারকারীদের নেতৃত্ব দেওয়ার আগে ব্যবহারকারীদের একটি তথ্য ডায়ালগ দেখানোর জন্য।
    • BillingClient.createExternalOfferReportingDetailsAsync() যোগ করা হয়েছে বহিরাগত অফারগুলির মাধ্যমে করা লেনদেনের রিপোর্ট করার জন্য একটি পেলোড তৈরি করতে।

Google Play বিলিং লাইব্রেরি 6.1.0 রিলিজ (2023-11-14)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 6.1.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Google Play বিলিং লাইব্রেরি 6.0.1 রিলিজ (2023-06-22)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 6.0.1 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Android 14 এর সাথে সামঞ্জস্যপূর্ণ হতে Play বিলিং লাইব্রেরি আপডেট করুন।

Google Play বিলিং লাইব্রেরি 6.0 রিলিজ (2023-05-10)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 6.0.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

  • ProrationMode প্রতিস্থাপন করতে নতুন ReplacementMode enum যোগ করা হয়েছে।

    অনুগ্রহ করে মনে রাখবেন যে ProrationMode এখনও পশ্চাদগামী সামঞ্জস্যতার কারণে উপলব্ধ।

  • PENDING ক্রয়ের জন্য অর্ডার আইডি সরানো হয়েছে।

    আগে, ক্রয় মুলতুবি থাকলেও অর্ডার আইডি সবসময় তৈরি করা হতো। সংস্করণ 6.0.0 থেকে শুরু করে, মুলতুবি কেনাকাটার জন্য একটি অর্ডার আইডি তৈরি করা হবে না এবং এই ক্রয়ের জন্য, ক্রয়টি PURCHASED অবস্থায় স্থানান্তরিত হওয়ার পরে অর্ডার আইডি তৈরি করা হবে।

  • সরানো হয়েছে queryPurchases এবং launchPriceConfirmationFlow পদ্ধতি।

    queryPurchases এবং launchPriceConfirmationFlow পদ্ধতিগুলি যেগুলি পূর্বে অপ্রত্যাশিত হিসাবে চিহ্নিত করা হয়েছিল সেগুলি এখন প্লে বিলিং লাইব্রেরি 6.0.0 থেকে সরানো হয়েছে৷ ডেভেলপারদের queryPurchases এর পরিবর্তে queryPurchasesAsync ব্যবহার করা উচিত। launchPriceConfirmationFlow বিকল্পের জন্য, মূল্য পরিবর্তনগুলি দেখুন।

  • নতুন নেটওয়ার্ক ত্রুটি প্রতিক্রিয়া কোড যোগ করা হয়েছে.

    একটি নতুন নেটওয়ার্ক ত্রুটি প্রতিক্রিয়া কোড, NETWORK_ERROR , PBL সংস্করণ 6.0.0 দিয়ে শুরু করে যোগ করা হয়েছে। নেটওয়ার্ক সংযোগ সমস্যার কারণে একটি ত্রুটি ঘটলে এই কোডটি ফেরত দেওয়া হয়। এই নেটওয়ার্ক সংযোগ ত্রুটিগুলি পূর্বে SERVICE_UNAVAILABLE হিসাবে রিপোর্ট করা হয়েছিল৷

  • SERVICE_UNAVAILABLE এবং SERVICE_TIMEOUT আপডেট করা হয়েছে।

    PBL সংস্করণ 6.0.0 থেকে শুরু করে, প্রক্রিয়াকরণের সময়সীমার কারণে ত্রুটিগুলি বর্তমান SERVICE_TIMEOUT পরিবর্তে SERVICE_UNAVAILABLE হিসাবে ফেরত দেওয়া হবে৷

    PBL এর আগের সংস্করণে আচরণ পরিবর্তন হয় না।

  • SERVICE_TIMEOUT সরানো হয়েছে।

    PBL সংস্করণ 6.0.0 দিয়ে শুরু করে, SERVICE_TIMEOUT আর ফেরত দেওয়া হবে না। PBL এর পূর্ববর্তী সংস্করণগুলি এখনও এই কোডটি ফেরত দেবে।

  • অতিরিক্ত লগিং যোগ করা হয়েছে.

    প্লে বিলিং লাইব্রেরি 6 রিলিজে অতিরিক্ত লগিং অন্তর্ভুক্ত রয়েছে, যা API ব্যবহার (যেমন সাফল্য এবং ব্যর্থতা) এবং পরিষেবা সংযোগ সংক্রান্ত সমস্যাগুলির অন্তর্দৃষ্টি প্রদান করে৷ এই তথ্যটি প্লে বিলিং লাইব্রেরির পারফরম্যান্স উন্নত করতে এবং ত্রুটিগুলির জন্য আরও ভাল সমর্থন প্রদান করতে ব্যবহার করা হবে৷

Google Play বিলিং লাইব্রেরি 5.2.1 রিলিজ (2023-06-22)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 5.2.1 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Android 14 এর সাথে সামঞ্জস্যপূর্ণ হতে Play বিলিং লাইব্রেরি আপডেট করুন।

Google Play বিলিং লাইব্রেরি 5.2 রিলিজ (2023-04-06)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 5.2.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

Google Play বিলিং লাইব্রেরি 5.1 রিলিজ (2022-10-31)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 5.1.0 এখন উপলব্ধ৷

এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

Google Play বিলিং লাইব্রেরি 5.0 রিলিজ (2022-05-11)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 5.0.0 এখন উপলব্ধ৷

এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

  • সাবস্ক্রিপশনের জন্য একটি নতুন মডেল প্রবর্তন করেছে, নতুন সত্তা সহ যা আপনাকে একটি সাবস্ক্রিপশন পণ্যের জন্য একাধিক অফার তৈরি করতে সক্ষম করে। আরও তথ্যের জন্য, মাইগ্রেশন গাইড দেখুন।
  • BillingClient.queryProductDetailsAsync() প্রতিস্থাপন করতে BillingClient.querySkuDetailsAsync() যোগ করা হয়েছে।
  • EU ব্যক্তিগতকৃত মূল্য প্রকাশের প্রয়োজনীয়তার জন্য setIsOfferPersonalized() পদ্ধতি যোগ করা হয়েছে। এই পদ্ধতিটি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, একটি ব্যক্তিগতকৃত মূল্য নির্দেশ করুন দেখুন।
  • সরানো হয়েছে queryPurchases() , যেটি আগে অবচ্যুত হয়েছিল এবং Google Play বিলিং লাইব্রেরি 4.0.0-এ চালু করা queryPurchasesAsync দ্বারা প্রতিস্থাপিত হয়েছিল৷
  • launchPriceChangeFlow বাতিল করা হয়েছে এবং ভবিষ্যতের রিলিজে সরিয়ে দেওয়া হবে। বিকল্প সম্পর্কে আরও জানতে, একটি মূল্য পরিবর্তন নিশ্চিতকরণ প্রবাহ চালু করুন দেখুন।
  • সরানো হয়েছে setVrPurchaseFlow() , যা পূর্বে একটি ক্রয় প্রবাহকে সূচনা করার সময় ব্যবহৃত হত। পূর্ববর্তী সংস্করণগুলিতে, এই পদ্ধতিটি ব্যবহারকারীকে তাদের Android ডিভাইসে কেনাকাটা সম্পূর্ণ করার জন্য পুনঃনির্দেশিত করেছে। একবার আপনি এই পদ্ধতিটি সরিয়ে ফেললে, ব্যবহারকারীরা স্ট্যান্ডার্ড ক্রয় প্রবাহের মাধ্যমে ক্রয়টি সম্পূর্ণ করবে।

Google Play বিলিং লাইব্রেরি 4.1 রিলিজ (2022-02-23)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 4.1.0 এখন উপলব্ধ৷

এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

  • সাবস্ক্রিপশন পেমেন্ট অস্বীকৃতি সামলাতে সাহায্য করতে BillingClient.showInAppMessages() যোগ করা হয়েছে। সাবস্ক্রিপশন পেমেন্ট ডিকলাইন্স হ্যান্ডলিং করার জন্য অ্যাপ-মধ্যস্থ মেসেজিং কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, পেমেন্ট ডিকলাইন্স হ্যান্ডলিং দেখুন।

Google Play বিলিং লাইব্রেরি 4.0 রিলিজ (2021-05-18)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 4.0.0 এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

  • BillingClient.queryPurchasesAsync() প্রতিস্থাপন করতে BillingClient.queryPurchases() যোগ করা হয়েছে যা ভবিষ্যতে রিলিজে সরানো হবে।

  • নতুন সদস্যতা প্রতিস্থাপন মোড IMMEDIATE_AND_CHARGE_FULL_PRICE যোগ করা হয়েছে।

  • Play বিলিং লাইব্রেরির সংযোগ অবস্থা পুনরুদ্ধার করতে BillingClient.getConnectionState() পদ্ধতি যোগ করা হয়েছে।

  • আপডেট করা Javadoc এবং বাস্তবায়ন নির্দেশ করতে কোন থ্রেডে কোন পদ্ধতি কল করা যেতে পারে এবং কোন থ্রেডের ফলাফল পোস্ট করা হবে।

  • সদস্যতা আপডেট শুরু করার একটি নতুন উপায় হিসাবে BillingFlowParams.Builder.setSubscriptionUpdateParams() যোগ করা হয়েছে। এটি প্রতিস্থাপন করে BillingFlowParams#getReplaceSkusProrationMode , BillingFlowParams#getOldSkuPurchaseToken , BillingFlowParams#getOldSku , BillingFlowParams.Builder#setReplaceSkusProrationMode , BillingFlowParams.Builder#setOldSku সরিয়ে দেওয়া হয়েছে।

  • Purchase.getQuantity() এবং PurchaseHistoryRecord.getQuantity() যোগ করা হয়েছে।

  • Purchase#getSkus() এবং PurchaseHistoryRecord#getSkus() যোগ করা হয়েছে। এইগুলি Purchase#getSku এবং PurchaseHistoryRecord#getSku প্রতিস্থাপন করে যা সরানো হয়েছে।

  • সরানো হয়েছে BillingFlowParams#getSku , BillingFlowParams#getSkuDetails এবং BillingFlowParams#getSkuType

Google Play বিলিং লাইব্রেরি 3.0.3 রিলিজ (2021-03-12)

Google Play বিলিং লাইব্রেরির সংস্করণ 3.0.3, Kotlin এক্সটেনশন এবং ইউনিটি প্লাগইন এখন উপলব্ধ৷

জাভা এবং কোটলিন বাগ ফিক্স

  • endConnection() কল করা হলে মেমরি লিক ঠিক করুন।
  • Google Play বিলিং লাইব্রেরি যখন একক টাস্ক লঞ্চ মোড ব্যবহার করে এমন অ্যাপ্লিকেশানগুলি দ্বারা ব্যবহার করা হয় তখন সমস্যার সমাধান করুন৷ একটি onPurchasesUpdated() কলব্যাক ট্রিগার হবে যখন Android লঞ্চার থেকে একটি অ্যাপ পুনরায় চালু করা হবে এবং স্থগিত হওয়ার আগে বিলিং ডায়ালগটি দৃশ্যমান ছিল৷

ইউনিটি বাগ ফিক্স

  • অ্যান্ড্রয়েড লঞ্চার থেকে একটি অ্যাপ পুনরায় চালু হলে মেমরি লিক ঠিক করতে জাভা সংস্করণ 3.0.3 আপডেট করুন এবং ক্রয় প্রতিরোধের সমস্যা সমাধান করুন এবং স্থগিত হওয়ার আগে বিলিং ডায়ালগটি দৃশ্যমান ছিল৷

Google Play বিলিং লাইব্রেরি 3.0.2 রিলিজ (2020-11-24)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 3.0.2 এখন উপলব্ধ৷

বাগ ফিক্স

  • কোটলিন এক্সটেনশনে একটি বাগ সংশোধন করা হয়েছে যেখানে "ইতিমধ্যে পুনরায় শুরু হয়েছে" ত্রুটির সাথে করটিন ব্যর্থ হয়৷
  • kotlinx.coroutines লাইব্রেরি সংস্করণ 1.4+ এর সাথে Kotlin এক্সটেনশন ব্যবহার করা হলে অমীমাংসিত রেফারেন্স স্থির করা হয়েছে।

Google Play বিলিং লাইব্রেরি 3.0.1 রিলিজ (2020-09-30)

Google Play বিলিং লাইব্রেরি এবং Kotlin এক্সটেনশনের সংস্করণ 3.0.1 এখন উপলব্ধ৷

বাগ ফিক্স

  • একটি বাগ সংশোধন করা হয়েছে যেখানে যদি অ্যাপটি বিলিং ফ্লো চলাকালীন মেরে ফেলা হয় এবং পুনরুদ্ধার করা হয় তবে ক্রয় ফলাফলের সাথে PurchasesUpdatedListener কল করা যাবে না।

Google Play বিলিং লাইব্রেরি 3.0 রিলিজ (2020-06-08)

Google Play বিলিং লাইব্রেরির সংস্করণ 3.0.0, Kotlin এক্সটেনশন, এবং ইউনিটি প্লাগইন এখন উপলব্ধ৷

পরিবর্তনের সারসংক্ষেপ

  • পুরস্কৃত SKU সমর্থন সরানো হয়েছে।
  • ChildDirected এবং UnderAgeOfConsent প্যারামিটারগুলি সরানো হয়েছে৷
  • অপসারিত বিকাশকারী পেলোড পদ্ধতিগুলি সরানো হয়েছে৷
  • অপসারিত পদ্ধতি BillingFlowParams.setAccountId() এবং BillingFlowParams.setDeveloperId()
  • অপসারিত পদ্ধতি BillingFlowParams.setOldSkus(String oldSku) এবং BillingFlowParams.addOldSku(String oldSku)
  • শূন্যতা টীকা যোগ করা হয়েছে।

বাগ ফিক্স

  • SkuDetails.getIntroductoryPriceCycles() এখন String এর পরিবর্তে int প্রদান করে।
  • একটি বাগ সংশোধন করা হয়েছে যেখানে বিলিং ফ্লোকে অতিরিক্ত প্যারাম হিসেবে গণ্য করা হবে এমনকি কোনো অতিরিক্ত প্যারাম সেট না থাকলেও।

Google Play বিলিং লাইব্রেরি 2.2.1 রিলিজ (2020-05-20)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.2.1 এখন উপলব্ধ৷

বাগ ফিক্স

  • জাভা প্লে বিলিং লাইব্রেরির ডিফল্ট সংস্করণ আপডেট করা হয়েছে যার উপর কোটলিন এক্সটেনশন নির্ভর করে।

Google Play বিলিং লাইব্রেরি 2.2.0 রিলিজ এবং ইউনিটি সমর্থন (2020-03-23)

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

একতার জন্য গুগল প্লে বিলিং বিলিং লাইব্রেরি 2

Google Play বিলিং লাইব্রেরি 2 এর বর্তমান জাভা এবং কোটলিন সংস্করণগুলি ছাড়াও, আমরা ইউনিটির সাথে ব্যবহারের জন্য লাইব্রেরির একটি সংস্করণ প্রকাশ করেছি৷ Unity ইন-অ্যাপ ক্রয় API ব্যবহার করে গেম ডেভেলপাররা Google Play বিলিং লাইব্রেরি 2 বৈশিষ্ট্যগুলির সুবিধা নিতে এবং Google Play বিলিং লাইব্রেরির ভবিষ্যত সংস্করণগুলিতে পরবর্তী আপগ্রেডগুলিকে আরও সহজ করতে এখনই আপগ্রেড করতে পারেন৷

আরও জানতে, ইউনিটির সাথে Google Play বিলিং ব্যবহার করুন দেখুন।

পরিবর্তনের সারসংক্ষেপ

গুগল প্লে বিলিং লাইব্রেরি 2.1.0 রিলিজ এবং কোটলিন এক্সটেনশন 2.1.0 রিলিজ (2019-12-10)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.1.0 এবং নতুন Kotlin এক্সটেনশন এখন উপলব্ধ৷ প্লে বিলিং লাইব্রেরি কোটলিন এক্সটেনশনটি কোটলিন ব্যবহারের জন্য বাহাদুরী API বিকল্পগুলি প্রদান করে, যেখানে আরও ভাল নাল-নিরাপত্তা এবং কোরোটিনগুলি রয়েছে৷ কোড উদাহরণের জন্য, Google Play বিলিং লাইব্রেরি ব্যবহার করুন দেখুন।

এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

  • BillingFlowParams এ, setOldSku(String oldSku) অবমূল্যায়িত করা হয়েছে এবং setOldSku(String oldSku, String purchaseToken) দিয়ে প্রতিস্থাপিত হয়েছে, যখন ডিভাইসে একাধিক অ্যাকাউন্ট একই স্কুর মালিক হয় তখন দ্ব্যর্থতা নিরসন করতে।

Google Play বিলিং লাইব্রেরি 2.0.3 রিলিজ (2019-08-05)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0.3 এখন উপলব্ধ৷

বাগ ফিক্স

  • একটি বাগ সংশোধন করা হয়েছে যেখানে querySkuDetailsAsync() মাঝে মাঝে একটি সফল ফলাফল ফেরত দেওয়ার পরিবর্তে DEVELOPER_ERROR কোডের সাথে ব্যর্থ হবে৷

Google Play বিলিং লাইব্রেরি 2.0.2 রিলিজ (2019-07-08)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0.2 এখন উপলব্ধ৷ এই রিলিজে রেফারেন্স ডকুমেন্টেশনের আপডেট রয়েছে এবং লাইব্রেরির কার্যকারিতা পরিবর্তন করে না।

Google Play বিলিং লাইব্রেরি 2.0.1 রিলিজ (2019-06-06)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0.1 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

বাগ ফিক্স

  • একটি বাগ সংশোধন করা হয়েছে যেখানে কিছু ক্ষেত্রে ডিবাগ বার্তা null হিসাবে ফেরত দেওয়া হচ্ছে।
  • একটি সম্ভাব্য মেমরি লিক সমস্যা সংশোধন করা হয়েছে.

Google Play বিলিং লাইব্রেরি 2.0 রিলিজ (2019-05-07)

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

ক্রয় তিন দিনের মধ্যে স্বীকার করতে হবে

Google Play আপনার অ্যাপের ভিতর থেকে (অ্যাপ-এর মধ্যে) বা আপনার অ্যাপের বাইরে (অ্যাপ-এর বাইরে) পণ্য কেনাকে সমর্থন করে। ব্যবহারকারী আপনার পণ্য যেখানেই ক্রয় করুক না কেন Google Play একটি ধারাবাহিক ক্রয়ের অভিজ্ঞতা নিশ্চিত করার জন্য, ব্যবহারকারীকে এনটাইটেলমেন্ট দেওয়ার পরে যত তাড়াতাড়ি সম্ভব Google Play বিলিং লাইব্রেরির মাধ্যমে প্রাপ্ত সমস্ত কেনাকাটা স্বীকার করতে হবে। আপনি যদি তিন দিনের মধ্যে একটি ক্রয় স্বীকার না করেন, তাহলে ব্যবহারকারী স্বয়ংক্রিয়ভাবে একটি অর্থ ফেরত পাবেন এবং Google Play ক্রয়টি প্রত্যাহার করে। মুলতুবি লেনদেনের জন্য (সংস্করণ 2.0 এ নতুন), তিন দিনের উইন্ডো শুরু হয় যখন ক্রয়টি PURCHASED অবস্থায় চলে যায় এবং ক্রয়টি PENDING থাকা অবস্থায় প্রযোজ্য হয় না।

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

Purchase বস্তুতে এখন একটি isAcknowledged() পদ্ধতি রয়েছে যা নির্দেশ করে যে একটি ক্রয় স্বীকার করা হয়েছে কিনা। এছাড়াও, Google Play বিকাশকারী API-এ Purchases.products এবং Purchases.subscriptions উভয়ের জন্য স্বীকৃতি বুলিয়ান মান অন্তর্ভুক্ত রয়েছে। ক্রয় স্বীকার করার আগে, ক্রয়টি ইতিমধ্যেই স্বীকার করা হয়েছে কিনা তা নির্ধারণ করতে এই পদ্ধতিগুলি ব্যবহার করতে ভুলবেন না।

আপনি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে একটি ক্রয় স্বীকার করতে পারেন:

  • ভোগ্য পণ্যের জন্য, ক্লায়েন্ট এপিআই-তে পাওয়া consumeAsync() ব্যবহার করুন।
  • যে পণ্যগুলি ব্যবহার করা হয় না তাদের জন্য, ক্লায়েন্ট API-এ পাওয়া acknowledgePurchase() ব্যবহার করুন।
  • সার্ভার API-এ একটি নতুন acknowledge() পদ্ধতিও উপলব্ধ।

BillingFlowParams.setSku() সরানো হয়েছে

এই রিলিজে পূর্বে-বঞ্চিত BillingFlowParams#setSku() পদ্ধতিটি সরানো হয়েছে। একটি ক্রয় প্রবাহে পণ্য রেন্ডার করার আগে, আপনাকে এখন BillingClient.querySkuDetailsAsync() কল করতে হবে, ফলে SkuDetails অবজেক্টটি BillingFlowParams.Builder.setSkuDetails() এ পাস করতে হবে।

কোড উদাহরণের জন্য, Google Play বিলিং লাইব্রেরি ব্যবহার করুন দেখুন।

বিকাশকারী পেলোড সমর্থিত

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0 ডেভেলপার পেলোডের জন্য সমর্থন যোগ করে — ইচ্ছামত স্ট্রিং যা ক্রয়ের সাথে সংযুক্ত করা যেতে পারে। আপনি একটি ক্রয়ের সাথে একটি বিকাশকারী পেলোড প্যারামিটার সংযুক্ত করতে পারেন, কিন্তু শুধুমাত্র যখন ক্রয় স্বীকার করা হয় বা ব্যবহার করা হয়। এটি AIDL-এ ডেভেলপার পেলোডের বিপরীতে, যেখানে ক্রয় প্রবাহ চালু করার সময় পেলোড নির্দিষ্ট করা যেতে পারে। যেহেতু কেনাকাটাগুলি এখন আপনার অ্যাপের বাইরে থেকে শুরু করা যেতে পারে, এই পরিবর্তনটি নিশ্চিত করে যে আপনার কাছে সর্বদা কেনাকাটায় একটি পেলোড যোগ করার সুযোগ রয়েছে৷

নতুন লাইব্রেরিতে পেলোড অ্যাক্সেস করতে, Purchase বস্তুতে এখন একটি getDeveloperPayload() পদ্ধতি অন্তর্ভুক্ত রয়েছে।

ধারাবাহিক অফার

আপনি যখন একটি ছাড়যুক্ত SKU অফার করেন, তখন Google Play এখন SKU-এর আসল মূল্য ফেরত দেয় যাতে আপনি ব্যবহারকারীদের দেখাতে পারেন যে তারা একটি ছাড় পাচ্ছেন।

SkuDetails মূল SKU মূল্য পুনরুদ্ধার করার জন্য দুটি নতুন পদ্ধতি রয়েছে:

  • getOriginalPriceAmountMicros() - ডিসকাউন্টের আগে SKU-এর বিন্যাসহীন মূল মূল্য ফেরত দেয়।
  • getOriginalPrice() - অতিরিক্ত মুদ্রা বিন্যাস সহ মূল মূল্য প্রদান করে।

মুলতুবি লেনদেন

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

মুলতুবি কেনাকাটা সক্ষম করতে, আপনার অ্যাপ শুরু করার অংশ হিসাবে enablePendingPurchases() কল করুন।

ক্রয় অবস্থা PURCHASED বা PENDING কিনা তা নির্ধারণ করতে Purchase.getPurchaseState() ব্যবহার করুন। মনে রাখবেন যে আপনি এনটাইটেলমেন্ট মঞ্জুর করা উচিত শুধুমাত্র যখন রাজ্য PURCHASED হয়। আপনাকে নিম্নলিখিতগুলি করে Purchase স্থিতি আপডেটগুলি পরীক্ষা করা উচিত:

  1. আপনার অ্যাপ শুরু করার সময়, ব্যবহারকারীর সাথে যুক্ত অব্যবহৃত পণ্যের তালিকা পুনরুদ্ধার করতে BillingClient.queryPurchases() এ কল করুন।
  2. প্রতিটি ফেরত Purchase বস্তুতে Purchase.getPurchaseState() কল করুন।
  3. Purchase বস্তুর পরিবর্তনের প্রতিক্রিয়া জানাতে onPurchasesUpdated() পদ্ধতিটি প্রয়োগ করুন।

এছাড়াও, Google Play Developer API-এ Purchases.products এর জন্য একটি PENDING অবস্থা অন্তর্ভুক্ত রয়েছে। মুলতুবি লেনদেন সাবস্ক্রিপশনের জন্য সমর্থিত নয়।

এই রিলিজটি একটি নতুন রিয়েল-টাইম ডেভেলপার বিজ্ঞপ্তি টাইপ, OneTimeProductNotification ও প্রবর্তন করে। এই বিজ্ঞপ্তি প্রকারে একটি একক বার্তা রয়েছে যার মান হয় ONE_TIME_PRODUCT_PURCHASED বা ONE_TIME_PRODUCT_CANCELED । এই বিজ্ঞপ্তি প্রকারটি শুধুমাত্র বিলম্বিত অর্থপ্রদানের ফর্মগুলির সাথে সম্পর্কিত কেনাকাটার জন্য পাঠানো হয়, যেমন নগদ৷

মুলতুবি কেনাকাটা স্বীকার করার সময়, শুধুমাত্র যখন ক্রয় অবস্থা PURCHASED হয় এবং PENDING না হয় তখনই স্বীকার করতে ভুলবেন না।

এপিআই পরিবর্তন

Google Play বিলিং লাইব্রেরির সংস্করণ 2.0-এ নতুন বৈশিষ্ট্য সমর্থন করতে এবং বিদ্যমান কার্যকারিতা স্পষ্ট করতে বেশ কয়েকটি API পরিবর্তন রয়েছে৷

consumeAsync

consumeAsync() এখন একটি purchaseToken এর পরিবর্তে একটি ConsumeParams অবজেক্ট নেয়। ConsumeParams purchaseToken পাশাপাশি একটি ঐচ্ছিক বিকাশকারী পেলোড রয়েছে৷

consumeAsync() এর আগের সংস্করণটি এই রিলিজে সরিয়ে দেওয়া হয়েছে।

queryPurchaseHistoryAsync

বিভ্রান্তি কমাতে, queryPurchaseHistoryAsync() এখন একটি Purchase বস্তুর পরিবর্তে একটি PurchaseHistoryRecord অবজেক্ট প্রদান করে। PurchaseHistoryRecord অবজেক্টটি একটি Purchase অবজেক্টের মতোই, এটি শুধুমাত্র queryPurchaseHistoryAsync() দ্বারা প্রত্যাবর্তিত মানগুলিকে প্রতিফলিত করে এবং এতে autoRenewing , orderId , এবং packageName ক্ষেত্রগুলি থাকে না৷ উল্লেখ্য যে প্রত্যাবর্তিত ডেটার সাথে কিছুই পরিবর্তিত হয়নি— queryPurchaseHistoryAsync() আগের মতো একই ডেটা প্রদান করে।

BillingResult ফেরত মান

যে APIগুলি পূর্বে একটি BillingResponse পূর্ণসংখ্যার মান প্রদান করেছিল এখন একটি BillingResult অবজেক্ট প্রদান করে। BillingResult BillingResponse পূর্ণসংখ্যার পাশাপাশি একটি ডিবাগ স্ট্রিং রয়েছে যা আপনি ত্রুটি নির্ণয় করতে ব্যবহার করতে পারেন। ডিবাগ স্ট্রিং একটি en-US লোকেল ব্যবহার করে এবং এটি শেষ ব্যবহারকারীদের দেখানোর জন্য নয়।

বাগ ফিক্স

Google Play বিলিং লাইব্রেরি 1.2.2 রিলিজ (2019-03-07)

Google Play বিলিং লাইব্রেরির সংস্করণ 1.2.2 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

বাগ ফিক্স

  • v1.2.1 এ প্রবর্তিত একটি থ্রেডিং সমস্যা সমাধান করা হয়েছে। ব্যাকগ্রাউন্ড কল আর মূল থ্রেড ব্লক করে না।

অন্যান্য পরিবর্তন

  • যদিও মূল থ্রেড ব্যবহার করার জন্য এখনও সুপারিশ করা হয়, আপনি এখন একটি ব্যাকগ্রাউন্ড থ্রেড থেকে Google Play বিলিং লাইব্রেরি চালু করতে পারেন।
  • ANR হওয়ার সম্ভাবনা কমাতে ইনস্ট্যান্টেশন সম্পূর্ণরূপে পটভূমির থ্রেডে স্থানান্তরিত হয়েছে।

প্লে বিলিং লাইব্রেরি 1.2.1 রিলিজ (2019-03-04)

Google Play বিলিং লাইব্রেরির সংস্করণ 1.2.1 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

প্রধান পরিবর্তন

অন্যান্য পরিবর্তন

  • পরীক্ষাকে সহজ করার জন্য PurchasesResult এবং SkuDetailsResult জন্য পাবলিক কনস্ট্রাক্টর যোগ করা হয়েছে।
  • SkuDetails অবজেক্ট একটি নতুন পদ্ধতি ব্যবহার করতে পারে, getOriginalJson()
  • সমস্ত AIDL পরিষেবা কল এখন ব্যাকগ্রাউন্ড থ্রেড দ্বারা পরিচালিত হয়৷

বাগ ফিক্স

  • নাল কলব্যাক শ্রোতাদের আর পাবলিক API-এ পাস করা হয় না।

Google Play বিলিং লাইব্রেরি 1.2 রিলিজ (2018-10-18)

Google Play বিলিং লাইব্রেরির সংস্করণ 1.2 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

  • Google Play বিলিং লাইব্রেরি এখন Android সফটওয়্যার ডেভেলপমেন্ট কিট লাইসেন্স চুক্তির অধীনে লাইসেন্সপ্রাপ্ত।
  • launchPriceChangeConfirmationFlow API যোগ করা হয়েছে, যা ব্যবহারকারীদের সাবস্ক্রিপশন মূল্যে একটি মুলতুবি পরিবর্তন পর্যালোচনা করতে অনুরোধ করে।
  • ব্যবহারকারীর সাবস্ক্রিপশন আপগ্রেড বা ডাউনগ্রেড করার সময় একটি নতুন প্রেশন মোডের জন্য সমর্থন যোগ করা হয়েছে, DEFERRED
  • BillingFlowParams ক্লাসে, setSku() এর পরিবর্তে setSkuDetails()
  • ছোটখাট বাগ ফিক্স এবং কোড অপ্টিমাইজেশান।

মূল্য পরিবর্তন নিশ্চিতকরণ

আপনি এখন Google Play Console-এ সাবস্ক্রিপশনের মূল্য পরিবর্তন করতে পারেন এবং ব্যবহারকারীরা যখন আপনার অ্যাপে প্রবেশ করেন তখন তাদের নতুন মূল্য পর্যালোচনা ও গ্রহণ করার জন্য অনুরোধ জানান।

এই API ব্যবহার করতে, সাবস্ক্রিপশন পণ্যের skuDetails ব্যবহার করে একটি PriceChangeFlowParams অবজেক্ট তৈরি করুন এবং তারপর launchPriceChangeConfirmationFlow() কল করুন। মূল্য পরিবর্তন নিশ্চিতকরণ প্রবাহ শেষ হলে ফলাফল পরিচালনা করতে PriceChangeConfirmationListener প্রয়োগ করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

কোটলিন

val priceChangeFlowParams = PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build()

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        object : PriceChangeConfirmationListener() {
            override fun onPriceChangeConfirmationResult(responseCode: Int) {
                // Handle the result.
            }
        })

জাভা

PriceChangeFlowParams priceChangeFlowParams =
        PriceChangeFlowParams.newBuilder()
    .setSkuDetails(skuDetailsOfThePriceChangedSubscription)
    .build();

billingClient.launchPriceChangeConfirmationFlow(activity,
        priceChangeFlowParams,
        new PriceChangeConfirmationListener() {
            @Override
            public void onPriceChangeConfirmationResult(int responseCode) {
                // Handle the result.
            }
        });

মূল্য পরিবর্তন নিশ্চিতকরণ প্রবাহ নতুন মূল্যের তথ্য সম্বলিত একটি ডায়ালগ প্রদর্শন করে, ব্যবহারকারীদের নতুন মূল্য গ্রহণ করতে বলে। এই প্রবাহটি BillingClient.BillingResponse ধরনের একটি প্রতিক্রিয়া কোড প্রদান করে।

নতুন প্রেশন মোড

একটি ব্যবহারকারীর সদস্যতা আপগ্রেড বা ডাউনগ্রেড করার সময়, আপনি একটি নতুন প্রেশন মোড ব্যবহার করতে পারেন, DEFERRED । এই মোড ব্যবহারকারীর সদস্যতা আপডেট করে যখন এটি পরবর্তী পুনর্নবীকরণ হয়। কিভাবে এই প্ররেশন মোড সেট করতে হয় সে সম্পর্কে আরও জানতে, সেট প্রেশন মোড দেখুন।

SKU বিবরণ সেট করার জন্য নতুন পদ্ধতি

BillingFlowParams ক্লাসে, setSku() পদ্ধতিটি অবমূল্যায়িত করা হয়েছে। এই পরিবর্তনটি Google Play বিলিং প্রবাহকে অপ্টিমাইজ করতে কাজ করে।

আপনার অ্যাপ-মধ্যস্থ বিলিং ক্লায়েন্টে BillingFlowParams এর একটি নতুন উদাহরণ তৈরি করার সময়, আমরা সুপারিশ করি যে আপনি JSON অবজেক্টের সাথে সরাসরি setSkuDetails() ব্যবহার করে কাজ করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

BillingFlowParams বিল্ডার ক্লাসে, setSku() পদ্ধতিটি বাতিল করা হয়েছে। পরিবর্তে, নিম্নলিখিত কোড স্নিপেটে দেখানো হিসাবে setSkuDetails() পদ্ধতি ব্যবহার করুন। setSkuDetails() অবজেক্টে পাস করা বস্তুটি querySkuDetailsAsync() পদ্ধতি থেকে আসে।

কোটলিন

private lateinit var mBillingClient: BillingClient
private val mSkuDetailsMap = HashMap<String, SkuDetails>()

private fun querySkuDetails() {
    val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder()
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build()
    ) { responseCode, skuDetailsList ->
        if (responseCode == 0) {
            for (skuDetails in skuDetailsList) {
                mSkuDetailsMap[skuDetails.sku] = skuDetails
            }
        }
    }
}

private fun startPurchase(skuId: String) {
    val billingFlowParams = BillingFlowParams.newBuilder()
    .setSkuDetails(mSkuDetailsMap[skuId])
    .build()
}

জাভা

private BillingClient mBillingClient;
private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>();

private void querySkuDetails() {
    SkuDetailsParams.Builder skuDetailsParamsBuilder
            = SkuDetailsParams.newBuilder();
    mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(),
            new SkuDetailsResponseListener() {
                @Override
                public void onSkuDetailsResponse(int responseCode,
                        List<SkuDetails> skuDetailsList) {
                    if (responseCode == 0) {
                        for (SkuDetails skuDetails : skuDetailsList) {
                            mSkuDetailsMap.put(skuDetails.getSku(), skuDetails);
                        }
                    }
                }
            });
}

private void startPurchase(String skuId) {
    BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setSkuDetails(mSkuDetailsMap.get(skuId))
            .build();
}

প্লে বিলিং লাইব্রেরি 1.1 রিলিজ (2018-05-07)

Google Play বিলিং লাইব্রেরির সংস্করণ 1.1 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

পরিবর্তনের সারসংক্ষেপ

  • একটি বিদ্যমান সাবস্ক্রিপশন আপগ্রেড/ডাউনগ্রেড করার সময় BillingFlowParams এ একটি proration মোড নির্দিষ্ট করতে সমর্থন যোগ করা হয়েছে।
  • BillingFlowParamsreplaceSkusProration বুলিয়ান পতাকা আর সমর্থিত নয়। পরিবর্তে replaceSkusProrationMode ব্যবহার করুন।
  • launchBillingFlow() এখন ব্যর্থ প্রতিক্রিয়াগুলির জন্য একটি কলব্যাক ট্রিগার করে।

আচরণ পরিবর্তন

Google Play বিলিং লাইব্রেরির সংস্করণ 1.1-এ নিম্নলিখিত আচরণ পরিবর্তনগুলি রয়েছে৷

বিকাশকারীরা BillingFlowParams ক্লাসে replaceSkusProrationMode সেট করতে পারেন

একটি ProrationMode একটি ব্যবহারকারীর সাবস্ক্রিপশন আপগ্রেড বা ডাউনগ্রেড করার সময় proration এর প্রকার সম্পর্কে আরও বিশদ প্রদান করে।

কোটলিন

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build()

জাভা

BillingFlowParams.newBuilder()
    .setSku(skuId)
    .setType(billingType)
    .setOldSku(oldSku)
    .setReplaceSkusProrationMode(replaceSkusProrationMode)
    .build();

বর্তমানে, Google Play নিম্নলিখিত প্রেশন মোড সমর্থন করে:

IMMEDIATE_WITH_TIME_PRORATION প্রতিস্থাপন অবিলম্বে কার্যকর হয়, এবং নতুন মেয়াদ শেষ হওয়ার সময় সমানুপাতিক এবং ক্রেডিট করা হবে বা ব্যবহারকারীকে চার্জ করা হবে। এটি বর্তমান ডিফল্ট আচরণ।
IMMEDIATE_AND_CHARGE_PRORATED_PRICE প্রতিস্থাপন অবিলম্বে কার্যকর হয়, এবং বিলিং চক্র একই থাকে। অবশিষ্ট সময়ের জন্য মূল্য চার্জ করা হবে.

দ্রষ্টব্য : এই বিকল্পটি শুধুমাত্র সাবস্ক্রিপশন আপগ্রেডের জন্য উপলব্ধ।

IMMEDIATE_WITHOUT_PRORATION প্রতিস্থাপন অবিলম্বে কার্যকর হয়, এবং নতুন মূল্য পরবর্তী পুনরাবৃত্তির সময় চার্জ করা হবে৷ বিলিং চক্র একই থাকে।

BillingFlowParams ক্লাসে replaceSkusProration আর সমর্থিত নয়

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

launchBillingFlow() এখন ব্যর্থ প্রতিক্রিয়াগুলির জন্য একটি কলব্যাক ট্রিগার করে

বিলিং লাইব্রেরি সর্বদা PurhcasesUpdatedListener কলব্যাক ট্রিগার করবে এবং অ্যাসিঙ্ক্রোনাসভাবে একটি BillingResponse ফেরত দেবে। BillingResponse এর সিঙ্ক্রোনাস রিটার্ন মানও রাখা হয়।

বাগ ফিক্স

  • যখন পরিষেবা সংযোগ বিচ্ছিন্ন হয় তখন সঠিকভাবে অ্যাসিঙ্ক পদ্ধতিতে প্রথম দিকে প্রস্থান করে।
  • Builder প্যারাম অবজেক্ট আর বিল্ট অবজেক্টকে পরিবর্তন করে না।
  • ইস্যু 68087141 : launchBillingFlow() এখন ব্যর্থ প্রতিক্রিয়ার জন্য কলব্যাক ট্রিগার করে।

Google Play বিলিং লাইব্রেরি 1.0 রিলিজ (2017-09-19, ঘোষণা )

Google Play বিলিং লাইব্রেরির সংস্করণ 1.0 এখন উপলব্ধ৷ এই সংস্করণে নিম্নলিখিত পরিবর্তনগুলি রয়েছে৷

গুরুত্বপূর্ণ পরিবর্তন

  • লাইব্রেরির ম্যানিফেস্টের ভিতরে এমবেডেড বিলিং অনুমতি। Android ম্যানিফেস্টের ভিতরে com.android.vending.BILLING অনুমতি যোগ করার আর প্রয়োজন নেই।
  • BillingClient.Builder ক্লাসে নতুন নির্মাতা যোগ করা হয়েছে।
  • SkuDetailsParams ক্লাসের জন্য বিল্ডার প্যাটার্ন প্রবর্তন করা হয়েছে যা SKU-গুলিকে জিজ্ঞাসা করার পদ্ধতিতে ব্যবহার করা হবে।
  • ধারাবাহিকতার জন্য বেশ কিছু API পদ্ধতি আপডেট করা হয়েছে (একই রিটার্ন আর্গুমেন্টের নাম এবং অর্ডার)।

আচরণ পরিবর্তন

Google Play বিলিং লাইব্রেরির সংস্করণ 1.0-এ নিম্নলিখিত আচরণ পরিবর্তনগুলি রয়েছে৷

BillingClient.Builder ক্লাস

BillingClient.Builder এখন newBuilder প্যাটার্নের মাধ্যমে আরম্ভ করা হয়েছে:

কোটলিন

billingClient = BillingClient.newBuilder(context).setListener(this).build()

জাভা

billingClient = BillingClient.newBuilder(context).setListener(this).build();

launchBillingFlow পদ্ধতি এখন একটি BillingFlowParams ক্লাস ব্যবহার করে বলা হয়

একটি ক্রয় বা সাবস্ক্রিপশনের জন্য বিলিং প্রবাহ শুরু করতে, launchBillingFlow() পদ্ধতিটি অনুরোধের নির্দিষ্ট পরামিতি সহ একটি BillingFlowParams ইনস্ট্যান্স গ্রহণ করে:

কোটলিন

BillingFlowParams.newBuilder().setSku(skuId)
        .setType(billingType)
        .setOldSku(oldSku)
        .build()

// Then, use the BillingFlowParams to start the purchase flow
val responseCode = billingClient.launchBillingFlow(builder.build())

জাভা

BillingFlowParams.newBuilder().setSku(skuId)
                              .setType(billingType)
                              .setOldSku(oldSku)
                              .build();

// Then, use the BillingFlowParams to start the purchase flow
int responseCode = billingClient.launchBillingFlow(builder.build());

উপলব্ধ পণ্য জিজ্ঞাসা করার নতুন উপায়

queryPurchaseHistoryAsync() এবং querySkuDetailsAsync() পদ্ধতির আর্গুমেন্টগুলি একটি বিল্ডার প্যাটার্নে মোড়ানো হয়েছিল:

কোটলিন

val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList)
        .setType(itemType)
billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() {
    ...
})

জাভা

SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList)
        .setType(itemType);
billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})

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

কোটলিন

fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)

জাভা

public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)

onConsumeResponse() পদ্ধতিতে প্যারামিটারের অর্ডার পরিবর্তিত হয়েছে

ConsumeResponseListener ইন্টারফেস থেকে onConsumeResponse এর জন্য আর্গুমেন্টের ক্রম আমাদের API জুড়ে সামঞ্জস্যপূর্ণ হতে পরিবর্তিত হয়েছে:

কোটলিন

fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)

জাভা

public void onConsumeResponse(@BillingResponse int responseCode, String outToken)

আনর্যাপড PurchaseResult অবজেক্ট

আমাদের API জুড়ে সামঞ্জস্যপূর্ণ হওয়ার জন্য PurchaseResult খুলে দেওয়া হয়েছে:

কোটলিন

fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)

জাভা

void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)

বাগ ফিক্স

বিকাশকারী পূর্বরূপ 1 রিলিজ (2017-06-12, ঘোষণা )

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

আপনার অ্যান্ড্রয়েড অ্যাপগুলিকে Google Play বিলিং API-এর সাথে একীভূত করার সময় আপনার ব্যবহার করার জন্য লাইব্রেরিতে বেশ কিছু সুবিধাজনক ক্লাস এবং বৈশিষ্ট্য রয়েছে। লাইব্রেরিটি অ্যান্ড্রয়েড ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL) পরিষেবার উপরে একটি বিমূর্ত স্তরও সরবরাহ করে, যা ডেভেলপারদের জন্য অ্যাপ এবং Google Play বিলিং API-এর মধ্যে ইন্টারফেস সংজ্ঞায়িত করা সহজ করে তোলে।