इस दस्तावेज़ में, Google Play Billing Library के लिए रिलीज़ नोट शामिल हैं.
Android स्किल
GitHub पर देखेंPlay Billing Library को अपग्रेड करना
android skills add play-billing-library-version-upgradeHelp me upgrade my Play Billing Library implementation.Google Play Billing Library 9.1.0 रिलीज़ (18-06-2026)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 9.1.0 अब उपलब्ध है.
बदलावों के बारे में खास जानकारी
- बिलिंग का विकल्प चुनने के लिए नए एपीआई:
BillingClient.getBillingChoiceInfoAsync()को जोड़ा गया, ताकि उपयोगकर्ता के लिए उपलब्ध बिलिंग के विकल्पों की जानकारी हासिल की जा सके.BillingChoiceInfoक्लास जोड़ी गई है. इसमें जवाब की जानकारी शामिल है. जैसे, इमेज के यूआरएल और लॉयल्टी की जानकारी.- अनुरोध को कॉन्फ़िगर करने के लिए,
GetBillingChoiceInfoParamsको जोड़ा गया. - कॉल बैक पाने के लिए,
BillingChoiceInfoResponseListenerको जोड़ा गया. - Kotlin एक्सटेंशन
BillingClient.getBillingChoiceInfo()का सस्पेंड फ़ंक्शन जोड़ा गया. - बिलिंग प्रोग्राम के लिए जानकारी वाला डायलॉग दिखाने के लिए,
BillingClient.showBillingProgramInformationDialog()को जोड़ा गया. - डायलॉग को कॉन्फ़िगर करने के लिए,
BillingProgramInformationDialogParamsको जोड़ा गया. - कॉल बैक पाने के लिए,
BillingProgramInformationDialogListenerको जोड़ा गया. - बिलिंग के विकल्प की उपलब्धता के बारे में जानकारी देने के लिए,
BillingProgramAvailabilityDetails.BillingChoiceAvailabilityDetailsको जोड़ा गया. - विकल्प वाली स्क्रीन के टाइप के बारे में बताने के लिए,
ChoiceScreenTypeको जोड़ा गया.
Google Play Billing Library 9.0.0 रिलीज़ (19-05-2026)
Google Play Billing Library का वर्शन 9.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं. अगर आपको पीबीएल के पिछले वर्शन से माइग्रेट करना है, तो पीबीएल 9 माइग्रेशन गाइड देखें.
बदलावों के बारे में खास जानकारी
Play Store पर ब्लॉक की गई गतिविधि के लिए गड़बड़ी के कोड अपडेट किए गए: Play Store पर ब्लॉक किए गए ऐप्लिकेशन के लिए गड़बड़ी के कोड अपडेट किए गए हैं. ऐसे मामलों में जहां सिस्टम ने Play Store ऐप्लिकेशन को ब्लॉक किया हो (उदाहरण के लिए, ओईएम के हिसाब से बनाए गए बच्चों वाले मोड में), रिस्पॉन्स कोड
ERRORसे बदलकरBILLING_UNAVAILABLEहो गया है. इसके अलावा, ऐसे मामलों के लिएBillingResultअब Play Store को ब्लॉक कर दिया गया है डीबग मैसेज उपलब्ध कराता है.डेवलपर की ओर से उपलब्ध कराए गए बिलिंग सिस्टम के लिए, शून्यता से जुड़ा अपडेट:
DeveloperProvidedBillingDetails.getLinkUri()तरीके को अपडेट करके,@Nullableकर दिया गया है. इस बदलाव से उन स्थितियों में मदद मिलती है जहां पेमेंट का तरीका चुनने के दौरान, बाहरी पेमेंट के लिए डायरेक्ट लिंक यूआरआई उपलब्ध नहीं होता.इस बदलाव को सुरक्षित तरीके से मैनेज करने के लिए, पक्का करें कि आपका इंटिग्रेशन कोड, ब्राउज़र इंटेंट को पार्स या लॉन्च करने से पहले,
DeveloperProvidedBillingDetails.getLinkUri()तरीके सेnullऔर खाली स्ट्रिंग (""), दोनों वैल्यू को मैनेज करता हो.targetSdkVersionको 35 पर अपडेट किया गया.अब इन-ऐप्लिकेशन मैसेजिंग का इस्तेमाल करके, उपयोगकर्ताओं को बढ़ी हुई कीमत के लिए मंज़ूरी देने की सूचना दी जा सकती है. इससे उपयोगकर्ता, ऐप्लिकेशन को छोड़े बिना ही कीमत में बढ़ोतरी की पुष्टि कर सकते हैं. बढ़ी हुई कीमत के लिए मंज़ूरी देने का मैसेज, उस दिन से दिखना शुरू हो जाता है जिस दिन से उपयोगकर्ता बढ़ी हुई कीमत को स्वीकार कर सकता है. यह मैसेज, हर सात दिन में ज़्यादा से ज़्यादा एक बार दिखता है.
Google Play Billing Library 8.3.0 रिलीज़ (23-12-2025)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 8.3.0 अब उपलब्ध है.
बदलावों के बारे में खास जानकारी
बाहरी बिलिंग सिस्टम के लिए नए एपीआई:
- पेमेंट के बाहरी तरीके इस्तेमाल करने की सुविधा देने के लिए, ये क्लास जोड़ी गई हैं:
- पेमेंट के बाहरी तरीके इस्तेमाल करने की सुविधा चालू करने के लिए,
enableBillingProgram(EnableBillingProgramParams)को जोड़ा गया. - पेमेंट के बाहरी तरीके इस्तेमाल करने की सुविधा लॉन्च करने के लिए,
BillingFlowParams.Builder.enableDeveloperBillingOptionको जोड़ा गया.
पेमेंट के बाहरी तरीके इस्तेमाल करने के दौरान होने वाली गड़बड़ियों को बेहतर तरीके से कैटगरी में बांटा गया है:
- अगर कोई उपयोगकर्ता किसी बाहरी ऐप्लिकेशन (जैसे, ई-वॉलेट) पर पेमेंट करने के लिए, खरीदारी के फ़्लो से बाहर निकल जाता है और लेन-देन पूरा किए बिना वापस नहीं आता है, तो क्लाइंट को अब
BillingResponseCode.USER_CANCELED(1) रिस्पॉन्स कोड के साथBILLING_ACTIVITY_PAUSEDडीबग मैसेज मिलता है. पहले, डिफ़ॉल्ट रूप सेBillingResponseCode.ERROR(6) रिस्पॉन्स कोड मिलता था.
- अगर कोई उपयोगकर्ता किसी बाहरी ऐप्लिकेशन (जैसे, ई-वॉलेट) पर पेमेंट करने के लिए, खरीदारी के फ़्लो से बाहर निकल जाता है और लेन-देन पूरा किए बिना वापस नहीं आता है, तो क्लाइंट को अब
Google Play Billing Library 8.2.1 रिलीज़ (15-12-2025)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 8.2.1 अब उपलब्ध है.
गड़बड़ियां ठीक की गईं
isBillingProgramAvailableAsyncऔरcreateBillingProgramReportingDetailsAsyncमें मौजूद गड़बड़ी को ठीक किया गया. वर्शन 8.2.0 में लॉन्च किए गए इन एपीआई का इस्तेमाल करने के लिए, वर्शन 8.2.1 पर अपडेट करें.
Google Play Billing Library 8.2.0 रिलीज़ (09-12-2025)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 8.2.0 अब उपलब्ध है.
बदलावों के बारे में खास जानकारी
बाहरी कॉन्टेंट के लिंक और बाहरी ऑफ़र के लिए नए एपीआई:
enableBillingProgramको जोड़ा गया, ताकि इन प्रोग्राम के लिएBillingClientको सेट अप किया जा सके.- उपयोगकर्ता की ज़रूरी शर्तें तय करने के लिए,
isBillingProgramAvailableAsyncको जोड़ा गया. - बाहरी लेन-देन का टोकन बनाने के लिए,
createBillingProgramReportingDetailsAsyncको जोड़ा गया. इस टोकन का इस्तेमाल, रिपोर्टिंग के लिए किया जाना चाहिए. - डिजिटल कॉन्टेंट के ऑफ़र या ऐप्लिकेशन डाउनलोड करने के लिए, बाहरी लिंक को शुरू करने के लिए
launchExternalLinkको जोड़ा गया.
ऐप्लिकेशन के बाहर ऑफ़र वगैरह प्रमोट करने के प्रोग्राम में हुए बदलाव:
- ऐप्लिकेशन के बाहर ऑफ़र वगैरह प्रमोट करने के प्रोग्राम की नीति में बदलाव किए गए हैं. ज़्यादा जानकारी के लिए, प्रोग्राम में हुए बदलाव देखें. नए एपीआई की मदद से, बाहरी ऑफ़र के फ़्लो लॉन्च करने का तरीका जानने के लिए, इंटिग्रेशन गाइड देखें.
BillingClient.Builder.enableExternalOfferएपीआई को बंद कर दिया गया है.isExternalOfferAvailableAsyncएपीआई को बंद कर दिया गया है.createExternalOfferReportingDetailsAsyncएपीआई को बंद कर दिया गया है.showExternalOfferInformationDialogएपीआई को बंद कर दिया गया है.
Google Play Billing Library 8.1.0 रिलीज़ (06-11-2025)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 8.1.0 अब उपलब्ध है.
बदलावों के बारे में खास जानकारी
निलंबित की गई सदस्यताएं
BillingClient.queryPurchasesAsync()तरीके में एक नया पैरामीटर जोड़ा गया है. इससे सदस्यताओं के बारे में क्वेरी करते समय, निलंबित की गई सदस्यताओं को शामिल किया जा सकता है. निलंबित की गई सदस्यताएं अब भी उपयोगकर्ता के खाते से जुड़ी होती हैं, लेकिन वे चालू नहीं होती हैं. ऐसा इसलिए होता है, क्योंकि उपयोगकर्ता ने सदस्यता को रोक दिया है या सदस्यता रिन्यू करने के लिए इस्तेमाल किया गया पेमेंट का तरीका अस्वीकार कर दिया गया है.लिसनर में दिखाया गया
Purchaseऑब्जेक्ट, निलंबित की गई किसी भी सदस्यता के लिएisSuspended() = trueदिखाएगा. इस मामले में, आपको खरीदी गई सदस्यता का ऐक्सेस नहीं देना चाहिए. इसके बजाय, उपयोगकर्ता को सदस्यता केंद्र पर जाने के लिए कहें. यहां उपयोगकर्ता, पेमेंट के तरीके मैनेज कर सकता है या सदस्यता को फिर से चालू करने के लिए, उसे कुछ समय के लिए रोक सकता है.सदस्यताओं से जुड़े अपडेट:
BillingFlowParams.ProductDetailsParamsऑब्जेक्ट में अबsetSubscriptionProductReplacementParams()तरीका मौजूद है. इसमें प्रॉडक्ट लेवल पर, प्रॉडक्ट बदलने की जानकारी दी जा सकती है.SubscriptionProductReplacementParamsऑब्जेक्ट में दो सेटर मेथड होते हैं:setOldProductId: वह पुराना प्रॉडक्ट जिसे मौजूदाProductDetailsमें मौजूद प्रॉडक्ट से बदलना है.setReplacementMode: यह आइटम लेवल का रिप्लेसमेंट मोड है. ये मोड, SubscriptionUpdateParams की तरह ही होते हैं. हालांकि, वैल्यू मैपिंग को अपडेट किया गया है. रिप्लेसमेंट का एक नया मोडKEEP_EXISTINGलॉन्च किया गया है. इसकी मदद से, किसी आइटम के लिए पैसे चुकाने के मौजूदा शेड्यूल को बदले बिना रखा जा सकता है.
SubscriptionUpdateParams setSubscriptionReplacementMode को बंद कर दिया जाएगा. इसके बजाय, आपको
SubscriptionProductReplacementParams.setReplacementModeका इस्तेमाल करना चाहिए.
minSdkVersionको 23 पर अपडेट किया गया.वन-टाइम प्रॉडक्ट के लिए, पहले से ऑर्डर करने की सुविधा देने वाले एपीआई चालू किए गए
पहले से ऑर्डर करने की जानकारी देने वाला
ProductDetails.oneTimePurchaseOfferDetails.getPreorderDetails()एपीआई, अब इस्तेमाल के लिए उपलब्ध है.Google Play Billing Library अब Kotlin के 2.2.0 वर्शन के साथ काम करती है.
Google Play Billing Library 8.0.0 रिलीज़ (30-06-2025)
Google Play Billing Library का वर्शन 8.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
ऐप्लिकेशन में खरीदने के लिए उपलब्ध आइटम को अब वन-टाइम प्रॉडक्ट कहा जाएगा.
वन-टाइम प्रॉडक्ट के लिए, खरीदारी के कई विकल्प और ऑफ़र.
अब वन-टाइम प्रॉडक्ट के लिए, खरीदारी के कई विकल्प और ऑफ़र उपलब्ध कराए जा सकते हैं. इससे आपको अपने प्रॉडक्ट बेचने के तरीके में ज़्यादा सहूलियत मिलती है. साथ ही, प्रॉडक्ट मैनेज करते समय आने वाली समस्याएं कम होती हैं.
queryProductDetailsAsync()तरीके को बेहतर बनाया गया.PBL 8.0.0 से पहले,
queryProductDetailsAsync()तरीके से उन प्रॉडक्ट की जानकारी नहीं मिलती थी जिन्हें फ़ेच नहीं किया जा सकता था. ऐसा कई वजहों से हो सकता है. जैसे, प्रॉडक्ट न मिलना या उपयोगकर्ता के लिए कोई ऑफ़र उपलब्ध न होना. PBL 8.0.0 में, फ़ेच नहीं किए गए प्रॉडक्ट, प्रॉडक्ट-लेवल के नए स्टेटस कोड के साथ दिखाए जाते हैं. इससे फ़ेच नहीं किए गए प्रॉडक्ट के बारे में जानकारी मिलती है. ध्यान दें किProductDetailsResponseListener.onProductDetailsResponse()के सिग्नेचर में बदलाव हुआ है. इस वजह से, आपको अपने ऐप्लिकेशन में बदलाव करने होंगे. ज़्यादा जानकारी के लिए, नतीजे को प्रोसेस करना लेख पढ़ें.सेवा के अपने-आप फिर से कनेक्ट होने की सुविधा.
नए
BillingClient.Builder.enableAutoServiceReconnection()बिल्डर पैरामीटर की मदद से, डेवलपर सेवा के अपने-आप फिर से कनेक्ट होने की सुविधा के लिए ऑप्ट-इन कर सकते हैं. इससे कनेक्शन को मैनेज करना आसान हो जाता है. ऐसा इसलिए, क्योंकि यह सुविधा Play Billing की सेवा से फिर से कनेक्शन को अपने-आप मैनेज करती है. साथ ही, सेवा के डिसकनेक्ट होने पर, मैन्युअल तरीके सेstartConnection()को कॉल करने की ज़रूरत नहीं पड़ती. ज़्यादा जानकारी के लिए, कनेक्शन अपने-आप फिर से चालू होना लेख पढ़ें.launchBillingFlow()तरीके के लिए सब-रिस्पॉन्स कोड.launchBillingFlow()से मिले BillingResult में अब सब-रिस्पॉन्स कोड फ़ील्ड शामिल होगा. यह फ़ील्ड सिर्फ़ कुछ मामलों में भरा जाएगा, ताकि गड़बड़ी की ज़्यादा सटीक वजह बताई जा सके. सब-रिस्पॉन्स फ़ील्ड में ये वैल्यू हो सकती हैं:PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS- यह तब दिखता है, जब उपयोगकर्ता के पास उस आइटम की कीमत से कम पैसे होते हैं जिसे वह खरीदने की कोशिश कर रहा है.USER_INELIGIBLE- यह तब दिखता है, जब उपयोगकर्ता सदस्यता के किसी ऑफ़र के लिए कॉन्फ़िगर की गई ज़रूरी शर्तें पूरी नहीं करता.NO_APPLICABLE_SUB_RESPONSE_CODE- यह डिफ़ॉल्ट वैल्यू है. यह तब दिखती है, जब कोई दूसरा सब-रिस्पॉन्स कोड लागू न हो.
queryPurchaseHistory()तरीका हटाया गया.queryPurchaseHistory()तरीका, जिसे पहले बंद के तौर पर मार्क किया गया था, अब हटा दिया गया है. इसके बजाय, कौनसे एपीआई इस्तेमाल करने हैं, इस बारे में जानने के लिए खरीदारी के इतिहास के बारे में क्वेरी करना लेख पढ़ें.querySkuDetailsAsync()तरीका हटाया गया.querySkuDetailsAsync()तरीका, जिसे पहले बंद के तौर पर मार्क किया गया था, अब हटा दिया गया है. इसके बजाय, आपको queryProductDetailsAsync का इस्तेमाल करना चाहिए.BillingClient.Builder.enablePendingPurchases()तरीका हटाया गया.बिना पैरामीटर वाले
enablePendingPurchases()तरीके को अब हटा दिया गया है. इसे पहले, बंद के तौर पर मार्क किया गया था. इसके बजाय, आपकोenablePendingPurchases(PendingPurchaseParams params)का इस्तेमाल करना चाहिए. ध्यान दें कि अब इस्तेमाल नहीं किया जा रहाenablePendingPurchases(), फ़ंक्शन के हिसाब सेenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())के बराबर है.skuType लेने वाले ओवरलोड किए गए
queryPurchasesAsync()तरीके को हटा दिया गया है.queryPurchasesAsync(String skuType, PurchasesResponseListener listener)तरीका, जिसे पहले बंद के तौर पर मार्क किया गया था, अब हटा दिया गया है. इसके अलावा,queryPurchasesAsync(QueryPurchasesParams queryPurchasesParams, PurchasesResponseListener listener)का इस्तेमाल करें.
Google Play Billing Library 7.1.1 रिलीज़ (03-10-2024)
Google Play Billing Library का वर्शन 7.1.1 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
गड़बड़ियां ठीक की गईं
- Play Billing Library 7.1.0 में,
BillingResultरिस्पॉन्स कोड की जांच करने से जुड़ी गड़बड़ी को ठीक किया गया.
Google Play Billing Library 7.1.0 रिलीज़ (19-09-2024)
Google Play Billing Library का वर्शन 7.1.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
- कनेक्शन की स्थिति और मैनेजमेंट से जुड़े थ्रेड की सुरक्षा को बेहतर बनाया गया है.
BillingResultरिस्पॉन्स कोड की जांच करने के लिए, कुछ बदलाव किए गए हैं. इन्हें Play Billing Library 7.1.1 में पूरी तरह से रिलीज़ किया गया है. इस सुविधा का इस्तेमाल करके अपने इंटिग्रेशन की जांच करने के लिए, आपको Play Billing Library 7.1.1 पर अपग्रेड करना होगा. एक गड़बड़ी मौजूद है, जो सिर्फ़ उन ऐप्लिकेशन पर असर डालेगी जिनमें बिलिंग ओवरराइड टेस्टिंग की सुविधा चालू है. इससे सामान्य इस्तेमाल पर कोई असर नहीं पड़ता. ज़्यादा जानकारी के लिए,BillingResultके रिस्पॉन्स कोड की जांच करना लेख पढ़ें.
Google Play Billing Library 7.0.0 रिलीज़ (14-05-2024)
Google Play Billing Library का वर्शन 7.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
किस्तों में पेमेंट करने की सुविधा वाली सदस्यताओं के लिए एपीआई जोड़े गए.
- किस्तों वाले उन बुनियादी प्लान के लिए
ProductDetails.InstallmentPlanDetailsजोड़ा गया है जिन्हें उपयोगकर्ता खरीद सकते हैं. इस एपीआई की मदद से, आपके ऐप्लिकेशन को किस्त वाले प्लान और उसके कमिटमेंट सेटअप की पहचान करने में मदद मिलती है. इससे उपयोगकर्ता को ज़रूरी जानकारी दी जा सकती है. ज़्यादा जानने के लिए, सदस्यता के लिए किस्तों में पेमेंट करने की सुविधा से जुड़ी हमारी गाइड देखें.
- किस्तों वाले उन बुनियादी प्लान के लिए
BillingClient.Builder.enablePendingPurchases()को बदलने के लिए,PendingPurchasesParamsऔरBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)को जोड़ा गया है. इस रिलीज़ में,BillingClient.Builder.enablePendingPurchases()को बंद कर दिया गया है.- अब इस्तेमाल नहीं किया जा सकने वाला
enablePendingPurchases(),enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())की तरह ही काम करता है.
- अब इस्तेमाल नहीं किया जा सकने वाला
सदस्यता के प्रीपेड प्लान के लिए, ऐसे लेन-देन जिन्हें मंज़ूरी नहीं मिली है उनके लिए एपीआई जोड़े गए हैं:
- सदस्यता के प्रीपेड प्लान के लिए, ऐसे लेन-देन चालू करें जिन्हें मंज़ूरी नहीं मिली है. इसके लिए,
BillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)के साथPendingPurchasesParams.Builder.enablePrepaidPlans()का इस्तेमाल करें. यह सुविधा जोड़ते समय, पक्का करें कि आपका ऐप्लिकेशन, सदस्यता के लाइफ़साइकल को भी सही तरीके से मैनेज करता हो. ज़्यादा जानने के लिए, अधूरी खरीदारी से जुड़ी हमारी गाइड देखें. - मौजूदा सदस्यता में टॉप-अप, अपग्रेड या डाउनग्रेड की मंज़ूरी बाकी होने पर, उसकी जानकारी पाने के लिए
Purchase.PendingPurchaseUpdateऔरPurchase.getPendingPurchaseUpdate()को जोड़ा गया.
- सदस्यता के प्रीपेड प्लान के लिए, ऐसे लेन-देन चालू करें जिन्हें मंज़ूरी नहीं मिली है. इसके लिए,
BillingClient.Builder.enableAlternativeBilling(),AlternativeBillingListener, औरAlternativeChoiceDetailsको हटाया गया.- इसके बजाय, डेवलपर को लिसनर कॉलबैक में
UserChoiceBillingListenerऔरUserChoiceDetailsके साथBillingClient.Builder.enableUserChoiceBilling()का इस्तेमाल करना चाहिए.
- इसके बजाय, डेवलपर को लिसनर कॉलबैक में
BillingFlowParams.ProrationMode,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode(), औरBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()को हटाया गया.- डेवलपर को
BillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)के साथBillingFlowParams.SubscriptionUpdateParams.ReplacementModeका इस्तेमाल करना चाहिए.
- डेवलपर को
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()को हटाया गया.- डेवलपर को इसके बजाय,
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)का इस्तेमाल करना चाहिए.
- डेवलपर को इसके बजाय,
BillingClient.queryPurchaseHistoryAsync()अब सेवा में नहीं है. इसे आने वाले वर्शन से हटा दिया जाएगा. डेवलपर को इसके बजाय, इन विकल्पों का इस्तेमाल करना चाहिए:- स्वीकार की गई और अधूरी खरीदारी: चालू खरीदारी की जानकारी फ़ेच करने के लिए,
BillingClient.queryPurchasesAsync()का इस्तेमाल करें. - इस्तेमाल की गई खरीदारी: डेवलपर को अपने सर्वर पर, इस्तेमाल की गई खरीदारी का ट्रैक रखना चाहिए.
- रद्द की गई खरीदारी: voided-purchases डेवलपर एपीआई का इस्तेमाल करें.
- ज़्यादा जानकारी के लिए, खरीदारी के इतिहास के बारे में क्वेरी करना लेख पढ़ें
- स्वीकार की गई और अधूरी खरीदारी: चालू खरीदारी की जानकारी फ़ेच करने के लिए,
BillingFlowParams.ProductDetailsParams.setOfferToken()अब डेवलपर के खालीofferTokenडालने पर, अपवाद दिखाता है.minSdkVersionको 21 औरtargetSdkVersionको 34 पर अपडेट किया गया.
Google Play Billing Library 6.2.1 रिलीज़ (16-04-2024)
Google Play Billing Library का वर्शन 6.2.1 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
BillingClient.showAlternativeBillingOnlyInformationDialog()में मौजूद एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, कुछ मामलों में डायलॉग पूरा होने पर,AlternativeBillingOnlyInformationDialogListenerको कॉल नहीं किया जा सकता था.
Google Play Billing Library 6.2.0 रिलीज़ (06-03-2024)
Google Play Billing Library का वर्शन 6.2.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
- बाहरी ऑफ़र के लिए एपीआई जोड़े गए हैं
BillingClient.Builder.enableExternalOffer()को जोड़ा गया, ताकि बाहरी ऑफ़र उपलब्ध कराए जा सकें.BillingClient.isExternalOfferAvailableAsync()को जोड़ा गया, ताकि यह पता लगाया जा सके कि बाहरी ऑफ़र उपलब्ध कराने की सुविधा उपलब्ध है या नहीं.BillingClient.showExternalOfferInformationDialog()को जोड़ा गया, ताकि उपयोगकर्ताओं को ऐप्लिकेशन से बाहर ले जाने से पहले, उन्हें जानकारी देने वाला डायलॉग बॉक्स दिखाया जा सके.BillingClient.createExternalOfferReportingDetailsAsync()को जोड़ा गया, ताकि बाहरी ऑफ़र के ज़रिए किए गए लेन-देन की रिपोर्ट करने के लिए ज़रूरी पेलोड बनाया जा सके.
Google Play Billing Library 6.1.0 रिलीज़ (14-11-2023)
Google Play Billing Library का वर्शन 6.1.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
- सिर्फ़ अन्य बिलिंग सिस्टम (बिना उपयोगकर्ता की पसंद के) की सुविधा देने के लिए एपीआई जोड़े गए
BillingClient.Builder.enableAlternativeBillingOnly()को जोड़ा गया, ताकि सिर्फ़ अन्य बिलिंग सिस्टम की सुविधा उपलब्ध कराई जा सके.BillingClient.isAlternativeBillingOnlyAvailableAsync()को जोड़ा गया, ताकि यह पता लगाया जा सके कि अन्य बिलिंग सिस्टम उपलब्ध कराने की सुविधा मौजूद है या नहीं.BillingClient.showAlternativeBillingOnlyInformationDialog()को जोड़ा गया है, ताकि उपयोगकर्ताओं को जानकारी देने वाला डायलॉग बॉक्स दिखाया जा सके. इससे उन्हें पता चलता है कि सिर्फ़ अन्य बिलिंग सिस्टम का इस्तेमाल किया जा रहा है.BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()को जोड़ा गया, ताकि सिर्फ़ अन्य बिलिंग सिस्टम से किए गए लेन-देन की जानकारी देने के लिए ज़रूरी पेलोड बनाया जा सके.
- उपयोगकर्ता की पसंद के बिलिंग सिस्टम वाले एपीआई अपडेट किए गए
UserChoiceBillingListenerको AlternativeBillingListener की जगह इस्तेमाल करने के लिए जोड़ा गया है. इसे अब बंद कर दिया गया है.AlternativeChoiceDetailsको बदलने के लिए,UserChoiceDetailsको जोड़ा गया है. इसे अब काम न करने वाले के तौर पर मार्क किया गया है.BillingClient.Builder.enableAlternativeBilling()को अब इस्तेमाल नहीं किया जा सकता. इसकी जगहBillingClient.Builder.enableUserChoiceBilling()को जोड़ा गया है.
- Google Play में देश का नाम वापस पाने के लिए,
BillingClient.getBillingConfigAsync()जोड़ा गया.
Google Play Billing Library 6.0.1 रिलीज़ (22-06-2023)
Google Play Billing Library का वर्शन 6.0.1 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
Play Billing Library को अपडेट करें, ताकि यह Android 14 के साथ काम कर सके.
Google Play Billing Library 6.0 रिलीज़ (10-05-2023)
Google Play Billing Library का वर्शन 6.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
ProrationModeको बदलने के लिए, नयाReplacementModeenum जोड़ा गया.ध्यान दें कि पुराने सिस्टम के साथ काम करने की सुविधा की वजह से,
ProrationModeअब भी उपलब्ध है.PENDINGकी खरीदारी के लिए ऑर्डर आईडी हटाया गया.पहले, खरीदारी की प्रोसेस पूरी न होने पर भी ऑर्डर आईडी हमेशा जनरेट होता था. वर्शन 6.0.0 से, अधूरी खरीदारी के लिए ऑर्डर आईडी नहीं बनाया जाएगा. इन खरीदारी के लिए, ऑर्डर आईडी तब जनरेट होगा, जब खरीदारी की स्थिति
PURCHASEDपर सेट हो जाएगी.queryPurchasesऔरlaunchPriceConfirmationFlowतरीके हटाए गए.queryPurchasesऔरlaunchPriceConfirmationFlowतरीके, जिन्हें पहले सेवा से बाहर के तौर पर मार्क किया गया था, उन्हें अब Play Billing Library 6.0.0 से हटा दिया गया है. डेवलपर कोqueryPurchasesके बजाय,queryPurchasesAsyncका इस्तेमाल करना चाहिए.launchPriceConfirmationFlowके विकल्पों के लिए, कीमत में बदलाव देखें.नेटवर्क की गड़बड़ी का नया रिस्पॉन्स कोड जोड़ा गया.
Play Billing Library के 6.0.0 वर्शन से, नेटवर्क की गड़बड़ी का एक नया रिस्पॉन्स कोड,
NETWORK_ERRORजोड़ा गया है. यह कोड तब दिखता है, जब इंटरनेट कनेक्शन की समस्या की वजह से कोई गड़बड़ी होती है. इंटरनेट कनेक्शन से जुड़ी इन गड़बड़ियों को पहलेSERVICE_UNAVAILABLEके तौर पर रिपोर्ट किया गया था.SERVICE_UNAVAILABLEऔरSERVICE_TIMEOUTको अपडेट किया गया.PBL के वर्शन 6.0.0 से, प्रोसेसिंग में टाइम आउट की वजह से होने वाली गड़बड़ियों को मौजूदा
SERVICE_TIMEOUTके बजायSERVICE_UNAVAILABLEके तौर पर दिखाया जाएगा.पीबीएल के पुराने वर्शन में, इस सुविधा के काम करने के तरीके में कोई बदलाव नहीं हुआ है.
SERVICE_TIMEOUTको हटाया गया.पीबीएल वर्शन 6.0.0 से,
SERVICE_TIMEOUTको वापस नहीं किया जाएगा. PBL के पिछले वर्शन अब भी यह कोड दिखाएंगे.अतिरिक्त लॉगिंग जोड़ी गई.
Play Billing Library 6 की रिलीज़ में, अतिरिक्त लॉगिंग की सुविधा शामिल है. इससे एपीआई के इस्तेमाल (जैसे, सफल और असफल) और सेवा कनेक्शन से जुड़ी समस्याओं के बारे में अहम जानकारी मिलती है. इस जानकारी का इस्तेमाल, Play Billing Library की परफ़ॉर्मेंस को बेहतर बनाने और गड़बड़ियों को ठीक करने के लिए किया जाएगा.
Google Play Billing Library 5.2.1 रिलीज़ (22-06-2023)
Google Play Billing Library का वर्शन 5.2.1 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
Play Billing Library को अपडेट करें, ताकि यह Android 14 के साथ काम कर सके.
Google Play Billing Library 5.2 रिलीज़ (06-04-2023)
Google Play Billing Library का वर्शन 5.2.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
- दक्षिण कोरिया में रहने वाले उपयोगकर्ताओं के लिए, मोबाइल/टैबलेट पर अन्य बिलिंग सिस्टम के बिलिंग फ़्लो की सुविधा देने के लिए क्लास जोड़ी गई हैं:
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()तरीका जोड़ा गया, ताकि ओरिजनल सदस्यता के बाहरी लेन-देन आईडी की जानकारी दी जा सके.- दक्षिण कोरिया में रहने वाले उपयोगकर्ताओं को अन्य बिलिंग सिस्टम चुनने की अनुमति देने के लिए,
BillingClient.Builder.enableAlternativeBilling()तरीका जोड़ा गया.
Google Play Billing Library 5.1 रिलीज़ (31-10-2022)
Google Play Billing Library का वर्शन 5.1.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
- ऑफ़र आईडी पाने के लिए,
ProductDetails.SubscriptionOfferDetails.getOfferId()तरीका जोड़ा गया. - बुनियादी प्लान का आईडी पाने के लिए,
ProductDetails.SubscriptionOfferDetails.getBasePlanId()तरीका जोड़ा गया. targetSdkVersionको 31 पर अपडेट किया गया.
Google Play Billing Library 5.0 रिलीज़ (11-05-2022)
Google Play Billing Library का वर्शन 5.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
- सदस्यताओं के लिए एक नया मॉडल लॉन्च किया गया है. इसमें नई इकाइयां शामिल हैं. इनकी मदद से, सदस्यता वाले किसी एक प्रॉडक्ट के लिए कई ऑफ़र बनाए जा सकते हैं. ज़्यादा जानकारी के लिए, माइग्रेट करने से जुड़ी गाइड देखें.
BillingClient.querySkuDetailsAsync()को बदलने के लिए,BillingClient.queryProductDetailsAsync()को जोड़ा गया.- ईयू में, लोगों की दिलचस्पी के हिसाब से तय की गई कीमत के बारे में जानकारी देने की ज़रूरी शर्तों के लिए,
setIsOfferPersonalized()तरीका जोड़ा गया. इस तरीके को इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, लोगों की दिलचस्पी के हिसाब से तय की गई कीमत दिखाना लेख पढ़ें. queryPurchases()को हटा दिया गया है. इसे पहले ही बंद कर दिया गया था और इसकी जगह queryPurchasesAsync को लाया गया था. इसे Google Play Billing Library 4.0.0 में पेश किया गया था.launchPriceChangeFlowके इस्तेमाल पर रोक लगा दी गई है और इसे आने वाले समय में हटा दिया जाएगा. अन्य विकल्पों के बारे में ज़्यादा जानने के लिए, कीमत में बदलाव की पुष्टि करने वाला फ़्लो लॉन्च करना लेख पढ़ें.setVrPurchaseFlow()को हटा दिया गया है. पहले, खरीदारी का फ़्लो शुरू करते समय इसका इस्तेमाल किया जाता था. पिछले वर्शन में, इस तरीके से उपयोगकर्ता को Android डिवाइस पर खरीदारी पूरी करने के लिए रीडायरेक्ट किया जाता था. इस तरीके को हटाने के बाद, उपयोगकर्ता खरीदारी के स्टैंडर्ड फ़्लो का इस्तेमाल करके खरीदारी पूरी करेंगे.
Google Play Billing Library 4.1 रिलीज़ (23-02-2022)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 4.1.0 अब उपलब्ध है.
इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
- सदस्यता के लिए किए गए पेमेंट के अस्वीकार होने की समस्या को हल करने के लिए,
BillingClient.showInAppMessages()को जोड़ा गया. सदस्यता के लिए पेमेंट अस्वीकार होने की समस्या को हल करने के लिए, इन-ऐप्लिकेशन मैसेजिंग का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, पेमेंट अस्वीकार होने की समस्या को हल करना लेख पढ़ें.
Google Play Billing Library 4.0 रिलीज़ (18-05-2021)
Google Play Billing Library का वर्शन 4.0.0 और Kotlin एक्सटेंशन अब उपलब्ध हैं.
बदलावों के बारे में खास जानकारी
BillingClient.queryPurchases()की जगहBillingClient.queryPurchasesAsync()को जोड़ा गया है. इसे आने वाले वर्शन से हटा दिया जाएगा.सदस्यता बदलने का नया मोड जोड़ा गया
IMMEDIATE_AND_CHARGE_FULL_PRICE.Play Billing Library के कनेक्शन की स्थिति जानने के लिए,
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 Billing Library 3.0.3 रिलीज़ (12-03-2021)
Google Play Billing Library, Kotlin एक्सटेंशन, और Unity प्लग इन का वर्शन 3.0.3 अब उपलब्ध है.
Java और Kotlin से जुड़ी गड़बड़ियां ठीक करना
endConnection()को कॉल करने पर, मेमोरी लीक की समस्या को ठीक किया गया.- उस समस्या को ठीक किया गया है जो Google Play Billing Library का इस्तेमाल करने वाले उन ऐप्लिकेशन में आती थी जो सिंगल टास्क लॉन्च मोड का इस्तेमाल करते हैं. जब किसी ऐप्लिकेशन को Android लॉन्चर से फिर से शुरू किया जाता है और निलंबित होने से पहले बिलिंग डायलॉग दिख रहा था, तो
onPurchasesUpdated()कॉलबैक ट्रिगर होगा.
Unity की गड़बड़ियां ठीक करना
- मेमोरी लीक की समस्या को ठीक करने के लिए, Java के 3.0.3 वर्शन पर अपडेट करें. साथ ही, उस समस्या को ठीक करें जिसकी वजह से खरीदारी नहीं की जा सकती. ऐसा तब होता है, जब Android लॉन्चर से किसी ऐप्लिकेशन को फिर से शुरू किया जाता है और निलंबित होने से पहले बिलिंग डायलॉग दिख रहा था.
Google Play Billing Library 3.0.2 रिलीज़ (24-11-2020)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 3.0.2 अब उपलब्ध है.
गड़बड़ियां ठीक की गईं
- Kotlin एक्सटेंशन में मौजूद एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, कोरूटीन "पहले ही फिर से शुरू हो गया" गड़बड़ी के साथ काम नहीं करता था.
- Kotlin एक्सटेंशन को kotlinx.coroutines लाइब्रेरी के वर्शन 1.4 और इसके बाद के वर्शन के साथ इस्तेमाल करने पर, उन रेफ़रंस को ठीक किया गया है जिन्हें रिज़ॉल्व नहीं किया जा सका.
Google Play Billing Library 3.0.1 रिलीज़ (30-09-2020)
Google Play Billing Library और Kotlin एक्सटेंशन का वर्शन 3.0.1 अब उपलब्ध है.
गड़बड़ियां ठीक की गईं
- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से, बिलिंग फ़्लो के दौरान ऐप्लिकेशन को बंद करने और फिर से चालू करने पर, खरीदारी के नतीजे के साथ
PurchasesUpdatedListenerको कॉल नहीं किया जा सकता था.
Google Play Billing Library 3.0 रिलीज़ (08-06-2020)
Google Play Billing Library, Kotlin एक्सटेंशन, और Unity प्लग इन का वर्शन 3.0.0 अब उपलब्ध है.
बदलावों के बारे में खास जानकारी
- इनाम वाले एसकेयू की सुविधा हटा दी गई है.
ChildDirectedऔरUnderAgeOfConsentपैरामीटर हटा दिए गए हैं.- डेवलपर पेलोड के बंद किए गए तरीकों को हटा दिया गया है.
- इस्तेमाल से बाहर हो चुके तरीके
BillingFlowParams.setAccountId()औरBillingFlowParams.setDeveloperId()हटा दिए गए हैं. - इस्तेमाल से बाहर हो चुके तरीके
BillingFlowParams.setOldSkus(String oldSku)औरBillingFlowParams.addOldSku(String oldSku)हटा दिए गए हैं. - शून्यता एनोटेशन जोड़े गए.
गड़बड़ियां ठीक की गईं
SkuDetails.getIntroductoryPriceCycles()अबStringके बजायintदिखाता है.- उस गड़बड़ी को ठीक किया गया है जिसकी वजह से बिलिंग फ़्लो को अतिरिक्त पैरामीटर वाला माना जाता था. भले ही, कोई अतिरिक्त पैरामीटर सेट न किया गया हो.
Google Play Billing Library 2.2.1 रिलीज़ (20-05-2020)
Google Play Billing Library का वर्शन 2.2.1 अब उपलब्ध है.
गड़बड़ियां ठीक की गईं
- Java Play Billing Library के डिफ़ॉल्ट वर्शन को अपडेट किया गया है. Kotlin एक्सटेंशन इसी वर्शन पर निर्भर करता है.
Google Play Billing Library 2.2.0 की रिलीज़ और Unity के साथ काम करने की सुविधा (23-03-2020)
Google Play Billing के वर्शन 2.2.0 में ऐसी सुविधाएं हैं जिनकी मदद से डेवलपर यह पक्का कर सकते हैं कि खरीदारी सही उपयोगकर्ता के खाते से की गई हो. इन बदलावों की वजह से, डेवलपर पेलोड के आधार पर कस्टम समाधान बनाने की ज़रूरत नहीं पड़ती. इस अपडेट के तहत, डेवलपर पेलोड की सुविधा को बंद कर दिया गया है. इसे आने वाले समय में हटा दिया जाएगा. ज़्यादा जानकारी के लिए, डेवलपर पेलोड देखें. इसमें, सुझाए गए विकल्पों की जानकारी भी शामिल है.
Unity के लिए Google Play Billing Library 2
Google Play Billing Library 2 के मौजूदा Java और Kotlin वर्शन के अलावा, हमने Unity के साथ इस्तेमाल करने के लिए लाइब्रेरी का एक वर्शन रिलीज़ किया है. Unity इन-ऐप्लिकेशन खरीदारी एपीआई का इस्तेमाल करने वाले गेम डेवलपर, Google Play Billing Library 2 की सभी सुविधाओं का फ़ायदा पाने के लिए, अब अपग्रेड कर सकते हैं. साथ ही, Google Play Billing Library के आने वाले वर्शन में अपग्रेड करना आसान हो जाएगा.
ज़्यादा जानने के लिए, Unity के साथ Google Play Billing का इस्तेमाल करना लेख पढ़ें.
बदलावों के बारे में खास जानकारी
- Java Google Play Billing Library
AcknowledgePurchaseParams, बहिष्कृतsetDeveloperPayload(), औरgetDeveloperPayload()तरीकों में.ConsumeParams, बहिष्कृतsetDeveloperPayload(), औरgetDeveloperPayload()तरीकों में.BillingFlowParamsमें,setAccountId()का नाम बदलकरsetObfuscatedAccountId()कर दिया गया है. साथ ही, इस फ़ील्ड में व्यक्तिगत पहचान से जुड़ी जानकारी (पीआईआई) को शामिल करने पर पाबंदी लगा दी गई है. इसके अलावा, इस फ़ील्ड में 64 वर्णों की सीमा तय कर दी गई है.setAccountId()को अब सेवा में नहीं है के तौर पर मार्क किया गया है. इसे लाइब्रेरी के आने वाले वर्शन से हटा दिया जाएगा.BillingFlowParamsमें,setObfuscatedProfileId()को जोड़ा गया है. यहsetObfuscatedAccountId()की तरह ही काम करता है. ज़्यादा जानकारी के लिए, डेवलपर पेलोड से जुड़े अपडेट और विकल्प देखें.Purchaseमें,BillingFlowParamsमें सेट किए गए, खाते के छिपाए गए आइडेंटिफ़ायर को वापस करने के लिए,getAccountIdentifiers()तरीका जोड़ा गया.BillingClientमें,loadRewardedSku()तरीके को बंद कर दिया गया है. ऐसा, इनाम वाले एसकेयू को बंद करने के तहत किया गया है.
Google Play Billing Library 2.1.0 और Kotlin एक्सटेंशन 2.1.0 की रिलीज़ (10-12-2019)
Google Play Billing Library का वर्शन 2.1.0 और नया Kotlin एक्सटेंशन अब उपलब्ध है. Play Billing Library Kotlin एक्सटेंशन, Kotlin के इस्तेमाल के लिए एपीआई के आसान विकल्प उपलब्ध कराता है. इसमें बेहतर नल-सेफ़्टी और कोरूटीन की सुविधा मिलती है. कोड के उदाहरणों के लिए, Google Play Billing Library का इस्तेमाल करना लेख पढ़ें.
इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
BillingFlowParamsमें,setOldSku(String oldSku)को बंद कर दिया गया है और उसकी जगहsetOldSku(String oldSku, String purchaseToken)का इस्तेमाल किया गया है. ऐसा इसलिए किया गया है, ताकि डिवाइस पर मौजूद कई खातों के पास एक ही एसकेयू होने पर, भ्रम की स्थिति पैदा न हो.
Google Play Billing Library 2.0.3 रिलीज़ (05-08-2019)
Google Play Billing Library का वर्शन 2.0.3 अब उपलब्ध है.
गड़बड़ियां ठीक की गईं
- एक गड़बड़ी को ठीक किया गया है. इसकी वजह से,
querySkuDetailsAsync()कभी-कभी सही नतीजा देने के बजाय, कोडDEVELOPER_ERRORके साथ काम नहीं करता था.
Google Play Billing Library 2.0.2 रिलीज़ (08-07-2019)
Google Play Billing Library का वर्शन 2.0.2 अब उपलब्ध है. इस रिलीज़ में, रेफ़रंस दस्तावेज़ के अपडेट शामिल हैं. इससे लाइब्रेरी की सुविधाओं में कोई बदलाव नहीं होता.
Google Play Billing Library 2.0.1 रिलीज़ (06-06-2019)
Google Play Billing Library का वर्शन 2.0.1 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- डीबग मैसेज से जुड़ी एक गड़बड़ी को ठीक किया गया है. इसकी वजह से, कुछ मामलों में डीबग मैसेज
nullके तौर पर दिख रहे थे. - मेमोरी लीक की संभावित समस्या को ठीक किया गया.
Google Play Billing Library 2.0 रिलीज़ (07-05-2019)
Google Play Billing Library का वर्शन 2.0 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
खरीदारी के अनुरोधों को तीन दिन के अंदर स्वीकार करना ज़रूरी है
Google Play पर, आपके ऐप्लिकेशन के अंदर (इन-ऐप्लिकेशन) या आपके ऐप्लिकेशन के बाहर (आउट-ऑफ़-ऐप्लिकेशन) से प्रॉडक्ट खरीदे जा सकते हैं. Google Play यह पक्का करता है कि उपयोगकर्ता को खरीदारी का एक जैसा अनुभव मिले, भले ही वह आपका प्रॉडक्ट कहीं से भी खरीदे. इसके लिए, आपको Google Play Billing Library से की गई सभी खरीदारी की पुष्टि जल्द से जल्द करनी होगी. ऐसा उपयोगकर्ता को प्रॉडक्ट का ऐक्सेस देने के बाद करना होगा. अगर आपने तीन दिनों के अंदर खरीदारी की पुष्टि नहीं की, तो उपयोगकर्ता को अपने-आप रिफ़ंड मिल जाता है. साथ ही, Google Play खरीदारी को रद्द कर देता है. ऐसे लेन-देन जिन्हें मंज़ूरी नहीं मिली है (वर्शन 2.0 में नया है) के लिए, तीन दिन की विंडो तब शुरू होती है, जब खरीदारी PURCHASED स्थिति में चली जाती है. यह विंडो तब लागू नहीं होती, जब खरीदारी PENDING स्थिति में होती है.
सदस्यताओं के लिए, आपको ऐसी हर खरीदारी की पुष्टि करनी होगी जिसमें नया परचेज़ टोकन शामिल हो. इसका मतलब है कि आपको पहली बार की गई सभी खरीदारी, प्लान में किए गए बदलावों, और फिर से साइन अप करने की पुष्टि करनी होगी. हालांकि, आपको बाद में होने वाले रिन्यूअल की पुष्टि करने की ज़रूरत नहीं है. यह तय करने के लिए कि किसी खरीदारी की पुष्टि करने की ज़रूरत है या नहीं, खरीदारी में पुष्टि करने वाला फ़ील्ड देखें.
Purchase ऑब्जेक्ट में अब isAcknowledged() तरीका शामिल है. इससे पता चलता है कि खरीदारी की पुष्टि की गई है या नहीं. इसके अलावा, Google Play Developer API में Purchases.products और Purchases.subscriptions, दोनों के लिए बूलियन वैल्यू शामिल होती हैं.
किसी खरीदारी की पुष्टि करने से पहले, इन तरीकों का इस्तेमाल करके यह पक्का करें कि खरीदारी की पुष्टि पहले ही की जा चुकी है या नहीं.
इनमें से किसी एक तरीके का इस्तेमाल करके, खरीदारी की पुष्टि की जा सकती है:
- इस्तेमाल किए जा सकने वाले प्रॉडक्ट के लिए,
consumeAsync()का इस्तेमाल करें. यह क्लाइंट एपीआई में मौजूद होता है. - जिन प्रॉडक्ट का इस्तेमाल नहीं किया जाता उनके लिए, क्लाइंट एपीआई में मौजूद
acknowledgePurchase()का इस्तेमाल करें. - सर्वर एपीआई में,
acknowledge()का एक नया तरीका भी उपलब्ध है.
BillingFlowParams.setSku() को हटा दिया गया है
इस रिलीज़ में, पहले से बंद किए जा चुके BillingFlowParams#setSku() तरीके को हटा दिया गया है. खरीदारी के फ़्लो में प्रॉडक्ट रेंडर करने से पहले, आपको अब BillingClient.querySkuDetailsAsync() को कॉल करना होगा. साथ ही, नतीजे के तौर पर मिले SkuDetails ऑब्जेक्ट को BillingFlowParams.Builder.setSkuDetails() को पास करना होगा.
कोड के उदाहरणों के लिए, Google Play Billing Library का इस्तेमाल करना लेख पढ़ें.
डेवलपर पेलोड का इस्तेमाल किया जा सकता है
Google Play Billing Library के वर्शन 2.0 में, डेवलपर पेलोड के लिए सहायता जोड़ी गई है. ये ऐसी स्ट्रिंग होती हैं जिन्हें खरीदारी के साथ अटैच किया जा सकता है. किसी खरीदारी के साथ डेवलपर पेलोड पैरामीटर अटैच किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब खरीदारी की पुष्टि हो गई हो या उसे इस्तेमाल कर लिया गया हो. यह एआईडीएल में डेवलपर पेलोड से अलग है. एआईडीएल में, खरीदारी का फ़्लो लॉन्च करते समय पेलोड की जानकारी दी जा सकती थी. अब आपके ऐप्लिकेशन के बाहर से भी खरीदारी की जा सकती है. इस बदलाव से यह पक्का होता है कि आपके पास खरीदारी में पेलोड जोड़ने का विकल्प हमेशा मौजूद रहे.
नई लाइब्रेरी में पेलोड को ऐक्सेस करने के लिए, Purchase ऑब्जेक्ट में अब getDeveloperPayload() तरीका शामिल है.
एक जैसे ऑफ़र
अगर आपने किसी एसकेयू पर छूट दी है, तो Google Play अब उस एसकेयू की मूल कीमत दिखाता है. इससे उपयोगकर्ताओं को यह पता चलता है कि उन्हें छूट मिल रही है.
SkuDetails में, SKU की मूल कीमत को वापस पाने के लिए दो नए तरीके शामिल हैं:
getOriginalPriceAmountMicros()- यह फ़ंक्शन, छूट से पहले एसकेयू की मूल कीमत दिखाता है. यह कीमत, बिना फ़ॉर्मैट वाली होती है.
getOriginalPrice()- यह अतिरिक्त मुद्रा फ़ॉर्मैटिंग के साथ मूल कीमत दिखाता है.
लेन-देन, जिनका पेमेंट नहीं किया गया है
Google Play Billing Library के वर्शन 2.0 के साथ, आपको ऐसी खरीदारी की सुविधा ज़रूर देनी होगी जिसमें एनटाइटलमेंट देने से पहले, अतिरिक्त कार्रवाई की ज़रूरत होती है. उदाहरण के लिए, कोई उपयोगकर्ता किसी स्टोर पर जाकर, नकद पैसे देकर आपके ऐप्लिकेशन में खरीदने के लिए उपलब्ध प्रॉडक्ट खरीद सकता है. इसका मतलब है कि लेन-देन आपके ऐप्लिकेशन के बाहर पूरा हुआ है. इस मामले में, आपको उपयोगकर्ता को एनटाइटेलमेंट सिर्फ़ तब देना चाहिए, जब वह लेन-देन पूरा कर ले.
अधूरी खरीदारी की सुविधा चालू करने के लिए, अपने ऐप्लिकेशन को शुरू करने के दौरान
enablePendingPurchases()
को कॉल करें.
Purchase.getPurchaseState()
का इस्तेमाल करके, यह पता लगाएं कि खरीदारी की स्थिति PURCHASED है या PENDING. ध्यान दें कि आपको एनटाइटलमेंट सिर्फ़ तब देना चाहिए, जब स्थिति PURCHASED हो. Purchase के स्टेटस के अपडेट देखने के लिए, यह तरीका अपनाएं:
- अपना ऐप्लिकेशन शुरू करते समय, उपयोगकर्ता से जुड़े उन प्रॉडक्ट की सूची वापस पाने के लिए
BillingClient.queryPurchases()को कॉल करें जिनका इस्तेमाल नहीं किया गया है. - वापस किए गए हर
Purchaseऑब्जेक्ट परPurchase.getPurchaseState()को कॉल करें. onPurchasesUpdated()तरीके को लागू करें, ताकिPurchaseऑब्जेक्ट में होने वाले बदलावों का जवाब दिया जा सके.
इसके अलावा, Google Play Developer API में Purchases.products के लिए, PENDING स्थिति शामिल होती है.
सदस्यताओं के लिए, मंज़ूरी बाकी होने की स्थिति वाले लेन-देन की सुविधा उपलब्ध नहीं है.
इस रिलीज़ में, डेवलपर से जुड़ी रीयल-टाइम सूचना का एक नया टाइप भी शामिल किया गया है,
OneTimeProductNotification. इस तरह की सूचना में एक मैसेज होता है. इसकी वैल्यू ONE_TIME_PRODUCT_PURCHASED या ONE_TIME_PRODUCT_CANCELED होती है. इस तरह की सूचना सिर्फ़ उन खरीदारी के लिए भेजी जाती है जिनके लिए पेमेंट के ऐसे तरीके इस्तेमाल किए जाते हैं जिनमें पेमेंट होने में समय लगता है. जैसे, नकद पेमेंट.
अधूरी खरीदारी को स्वीकार करते समय, पक्का करें कि खरीदारी की स्थिति PURCHASED हो, न कि PENDING.
एपीआई में हुए बदलाव
Google Play Billing Library के वर्शन 2.0 में, एपीआई से जुड़े कई बदलाव किए गए हैं. इनसे नई सुविधाओं को इस्तेमाल करने और मौजूदा सुविधाओं को समझने में मदद मिलती है.
consumeAsync
consumeAsync()
अब purchaseToken के बजाय
ConsumeParams ऑब्जेक्ट
लेता है. ConsumeParams में purchaseToken के साथ-साथ, डेवलपर पेलोड भी शामिल होता है. हालांकि, डेवलपर पेलोड शामिल करना ज़रूरी नहीं है.
इस रिलीज़ में, consumeAsync() का पिछला वर्शन हटा दिया गया है.
queryPurchaseHistoryAsync
किसी भी तरह की गड़बड़ी से बचने के लिए,
queryPurchaseHistoryAsync()
अब Purchase ऑब्जेक्ट के बजाय,
PurchaseHistoryRecord
ऑब्जेक्ट लौटाता है. PurchaseHistoryRecord ऑब्जेक्ट, Purchase ऑब्जेक्ट की तरह ही होता है. हालांकि, यह सिर्फ़ queryPurchaseHistoryAsync() से मिली वैल्यू दिखाता है. इसमें autoRenewing, orderId, और packageName फ़ील्ड शामिल नहीं होते. ध्यान दें कि वापस किए गए डेटा में कोई बदलाव नहीं हुआ है—queryPurchaseHistoryAsync() पहले जैसा ही डेटा दिखाता है.
BillingResult की रिटर्न वैल्यू
पहले जो एपीआई, BillingResponse पूर्णांक वैल्यू दिखाते थे वे अब
BillingResult
ऑब्जेक्ट दिखाते हैं. BillingResult में BillingResponse पूर्णांक के साथ-साथ एक डीबग स्ट्रिंग भी होती है. इसका इस्तेमाल करके, गड़बड़ियों का पता लगाया जा सकता है. डीबग स्ट्रिंग, en-US स्थान-भाषा का इस्तेमाल करती है. इसे असली उपयोगकर्ताओं को नहीं दिखाया जाता.
गड़बड़ियां ठीक की गईं
SkuDetails.getIntroductoryPriceAmountMicros()अबStringके बजायlongदिखाता है.
Google Play Billing Library 1.2.2 रिलीज़ (07-03-2019)
Google Play Billing Library का वर्शन 1.2.2 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- v1.2.1 में थ्रेडिंग से जुड़ी समस्या को ठीक किया गया. बैकग्राउंड कॉल अब मुख्य थ्रेड को ब्लॉक नहीं करते.
अन्य बदलाव
- हालांकि, अब भी मुख्य थ्रेड का इस्तेमाल करने का सुझाव दिया जाता है, लेकिन अब बैकग्राउंड थ्रेड से Google Play Billing Library को इंस्टैंशिएट किया जा सकता है.
- इंस्टैंशिएशन को पूरी तरह से बैकग्राउंड थ्रेड पर माइग्रेट कर दिया गया है, ताकि ANR की गड़बड़ियां होने की संभावना कम हो सके.
Play Billing Library 1.2.1 रिलीज़ (04-03-2019)
Google Play Billing Library का वर्शन 1.2.1 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
मुख्य परिवर्तन
- इनाम वाले प्रॉडक्ट के लिए सहायता जोड़ी गई. कमाई करने के विकल्पों के बारे में ज़्यादा जानकारी के लिए, इनाम वाले प्रॉडक्ट के लिए खास सुविधाएं जोड़ना लेख पढ़ें.
अन्य बदलाव
- टेस्टिंग को आसान बनाने के लिए,
PurchasesResultऔरSkuDetailsResultके लिए सार्वजनिक कंस्ट्रक्टर जोड़े गए. SkuDetailsऑब्जेक्ट, नए तरीकेgetOriginalJson()का इस्तेमाल कर सकते हैं.- सभी एआईडीएल सर्विस कॉल अब बैकग्राउंड थ्रेड से मैनेज किए जाते हैं.
गड़बड़ियां ठीक की गईं
- अब सार्वजनिक एपीआई में, शून्य कॉलबैक लिसनर पास नहीं किए जाते.
Google Play Billing Library 1.2 रिलीज़ (18-10-2018)
Google Play Billing Library का वर्शन 1.2 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
- Google Play Billing Library को अब Android सॉफ़्टवेयर डेवलपमेंट किट के लाइसेंस देने के लिए कानूनी समझौते के तहत लाइसेंस दिया गया है.
launchPriceChangeConfirmationFlowएपीआई जोड़ा गया है, जो उपयोगकर्ताओं को सदस्यता की कीमत में बाद में किए जाने वाले बदलाव की समीक्षा करने के लिए प्रॉम्प्ट करता है.- किसी उपयोगकर्ता की सदस्यता को अपग्रेड या डाउनग्रेड करते समय, नए प्रो रेशन मोड,
DEFERREDके लिए सहायता जोड़ी गई. BillingFlowParamsक्लास में,setSku()कोsetSkuDetails()से बदल दिया गया है.- छोटी-मोटी गड़बड़ियां ठीक की गई हैं और कोड को ऑप्टिमाइज़ किया गया है.
कीमत में बदलाव की पुष्टि
अब Google Play Console में जाकर, सदस्यता की कीमत में बदलाव किया जा सकता है. साथ ही, उपयोगकर्ताओं को आपके ऐप्लिकेशन में जाने पर, नई कीमत की समीक्षा करने और उसे स्वीकार करने के लिए कहा जा सकता है.
इस एपीआई का इस्तेमाल करने के लिए, शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट के skuDetails का इस्तेमाल करके, PriceChangeFlowParams ऑब्जेक्ट बनाएं. इसके बाद, launchPriceChangeConfirmationFlow() को कॉल करें. कीमत में बदलाव की पुष्टि करने वाला फ़्लो पूरा होने पर, नतीजे को मैनेज करने के लिए PriceChangeConfirmationListener को लागू करें. इसके बारे में यहां दिए गए कोड स्निपेट में बताया गया है:
Kotlin
val priceChangeFlowParams = PriceChangeFlowParams.newBuilder() .setSkuDetails(skuDetailsOfThePriceChangedSubscription) .build() billingClient.launchPriceChangeConfirmationFlow(activity, priceChangeFlowParams, object : PriceChangeConfirmationListener() { override fun onPriceChangeConfirmationResult(responseCode: Int) { // Handle the result. } })
Java
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 का इस्तेमाल किया जा सकता है. इस मोड में, उपयोगकर्ता की सदस्यता अगली बार रिन्यू होने पर अपडेट होती है.
इस प्रो-राटा मोड को सेट करने के तरीके के बारे में ज़्यादा जानने के लिए, प्रो-राटा मोड सेट करना लेख पढ़ें.
एसकेयू की जानकारी सेट करने का नया तरीका
BillingFlowParams क्लास में, setSku() तरीके को बंद कर दिया गया है.
इस बदलाव का मकसद, Google Play Billing के फ़्लो को ऑप्टिमाइज़ करना है.
इन-ऐप बिलिंग क्लाइंट में BillingFlowParams का नया इंस्टेंस बनाते समय, हमारा सुझाव है कि आप setSkuDetails() का इस्तेमाल करके, सीधे JSON ऑब्जेक्ट के साथ काम करें. इसके बारे में यहां दिए गए कोड स्निपेट में बताया गया है:
BillingFlowParams Builder क्लास में, setSku() तरीके को अब इस्तेमाल नहीं किया जा सकता. इसके बजाय, setSkuDetails() तरीके का इस्तेमाल करें, जैसा कि इस कोड स्निपेट में दिखाया गया है. setSkuDetails() ऑब्जेक्ट में पास किया गया ऑब्जेक्ट, querySkuDetailsAsync() तरीके से मिलता है.
Kotlin
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() }
Java
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(); }
Play Billing Library 1.1 रिलीज़ (07-05-2018)
Google Play Billing Library का वर्शन 1.1 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
बदलावों के बारे में खास जानकारी
- मौजूदा सदस्यता को अपग्रेड/डाउनग्रेड करते समय,
BillingFlowParamsमें प्रोरेशन मोड तय करने की सुविधा जोड़ी गई. BillingFlowParamsमेंreplaceSkusProrationबूलियन फ़्लैग अब काम नहीं करता. इसके बजाय,replaceSkusProrationModeका इस्तेमाल करें.launchBillingFlow()अब जवाब न मिलने पर कॉलबैक ट्रिगर करता है.
व्यवहार में बदलाव
Google Play Billing Library के वर्शन 1.1 में, काम करने के तरीके में ये बदलाव किए गए हैं.
डेवलपर, BillingFlowParams क्लास में replaceSkusProrationMode सेट कर सकते हैं
ProrationMode में, उपयोगकर्ता की सदस्यता को अपग्रेड या डाउनग्रेड करते समय, प्रो रेशन के टाइप के बारे में ज़्यादा जानकारी दी गई है.
Kotlin
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build()
Java
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 |
बदलाव तुरंत लागू हो जाता है. साथ ही, अगली बार रिन्यू होने पर नई कीमत ली जाएगी. बिलिंग साइकल में कोई बदलाव नहीं होता. |
replaceSkusProration अब BillingFlowParams क्लास में काम नहीं करता
डेवलपर, सदस्यता अपग्रेड करने के अनुरोध के लिए, इस्तेमाल के हिसाब से शुल्क लेने के लिए बूलियन फ़्लैग सेट कर सकते थे. हम ProrationMode का इस्तेमाल कर रहे हैं. इसमें, प्रो-रेटेड बिलिंग के बारे में ज़्यादा जानकारी दी गई है. इसलिए, अब इस बूलियन फ़्लैग का इस्तेमाल नहीं किया जा सकता.
launchBillingFlow() अब उन जवाबों के लिए कॉलबैक ट्रिगर करता है जो फ़ेल हो गए हैं
Billing Library हमेशा
PurhcasesUpdatedListener
कॉलबैक को ट्रिगर करेगी और एसिंक्रोनस तरीके से
BillingResponse
दिखाएगी. BillingResponse
की सिंक्रोनस रिटर्न वैल्यू भी रखी जाती है.
गड़बड़ियां ठीक की गईं
- सेवा के डिसकनेक्ट होने पर, एसिंक्रोनस तरीकों से जल्दी बाहर निकल जाता है.
Builderparam ऑब्जेक्ट, अब बनाए गए ऑब्जेक्ट में बदलाव नहीं करते.- समस्या 68087141:
launchBillingFlow()अब असफल जवाबों के लिए कॉलबैक ट्रिगर करता है.
Google Play Billing Library 1.0 रिलीज़ (19-09-2017, एलान)
Google Play Billing Library का वर्शन 1.0 अब उपलब्ध है. इस वर्शन में ये बदलाव शामिल हैं.
अहम बदलाव
- लाइब्रेरी के मेनिफ़ेस्ट में, बिलिंग की अनुमति एम्बेड की गई हो. अब Android मेनिफ़ेस्ट में
com.android.vending.BILLINGकी अनुमति जोड़ना ज़रूरी नहीं है. BillingClient.Builderक्लास में नया बिल्डर जोड़ा गया.- एसकेयू के बारे में क्वेरी करने के लिए,
SkuDetailsParamsक्लास के लिए बिल्डर पैटर्न को पेश किया गया. - एपीआई के कई तरीकों को अपडेट किया गया, ताकि वे एक जैसे दिखें. जैसे, रिटर्न आर्ग्युमेंट के नाम और क्रम को एक जैसा रखा गया.
व्यवहार में बदलाव
Google Play Billing Library के वर्शन 1.0 में, ये बदलाव किए गए हैं.
BillingClient.Builder क्लास
BillingClient.Builder
को अब newBuilder पैटर्न के ज़रिए शुरू किया जाता है:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
launchBillingFlow तरीके को अब BillingFlowParams क्लास का इस्तेमाल करके कॉल किया जाता है
किसी खरीदारी या सदस्यता के लिए बिलिंग फ़्लो शुरू करने के लिए, launchBillingFlow() तरीके को अनुरोध के हिसाब से पैरामीटर के साथ शुरू किया गया BillingFlowParams इंस्टेंस मिलता है:
Kotlin
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build() // Then, use the BillingFlowParams to start the purchase flow val responseCode = billingClient.launchBillingFlow(builder.build())
Java
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() के आर्ग्युमेंट को बिल्डर पैटर्न में रैप किया गया:
Kotlin
val params = SkuDetailsParams.newBuilder() params.setSkusList(skuList) .setType(itemType) billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() { ... })
Java
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); params.setSkusList(skuList) .setType(itemType); billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})
अब नतीजा, नतीजे के कोड और SkuDetails ऑब्जेक्ट की सूची के ज़रिए दिखाया जाता है. ऐसा आपकी सुविधा के लिए और हमारे एपीआई के साथ एक जैसा अनुभव देने के लिए किया गया है. पहले, नतीजा रैपर क्लास के ज़रिए दिखाया जाता था:
Kotlin
fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)
Java
public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)
onConsumeResponse() तरीके में पैरामीटर का क्रम बदला गया
ConsumeResponseListener इंटरफ़ेस से onConsumeResponse के लिए आर्ग्युमेंट का क्रम बदल गया है, ताकि हमारे एपीआई में एक जैसा क्रम बना रहे:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
अनरैप किया गया PurchaseResult ऑब्जेक्ट
PurchaseResult
को अनरैप कर दिया गया है, ताकि हमारे एपीआई में एक जैसा डेटा दिखे:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
गड़बड़ियां ठीक की गईं
- PURCHASES_UPDATED बंडल में कोई रिस्पॉन्स कोड नहीं है
- डिवाइस को रोटेट करने के दौरान, ProxyBillingActivity और PurchasesUpdatedListener से जुड़ी समस्याएं ठीक करना
डेवलपर के लिए झलक 1 की रिलीज़ (12-06-2017, एलान)
डेवलपर के लिए झलक लॉन्च की गई. इसका मकसद, बिलिंग से जुड़ी डेवलपमेंट प्रोसेस को आसान बनाना है. इससे डेवलपर, Android ऐप्लिकेशन के लिए लॉजिक लागू करने पर ध्यान दे सकते हैं. जैसे, ऐप्लिकेशन आर्किटेक्चर और नेविगेशन स्ट्रक्चर.
इस लाइब्रेरी में कई सुविधाजनक क्लास और सुविधाएं शामिल हैं. इनका इस्तेमाल, अपने Android ऐप्लिकेशन को Google Play Billing API के साथ इंटिग्रेट करते समय किया जा सकता है. यह लाइब्रेरी, Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) सेवा के ऊपर एक ऐब्स्ट्रैक्शन लेयर भी उपलब्ध कराती है. इससे डेवलपर के लिए, ऐप्लिकेशन और Google Play Billing API के बीच इंटरफ़ेस तय करना आसान हो जाता है.