इस विषय में, Google Play Billing Library के लिए प्रॉडक्ट की जानकारी दी गई है.
Google Play Billing Library 7.0.0 रिलीज़ (14-05-2024)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 7.0.0 अब उपलब्ध हैं उपलब्ध हैं.
परिवर्तनों का सारांश
किस्तों में पेमेंट करने की सुविधा के साथ काम करने के लिए, एपीआई जोड़े गए.
ProductDetails.InstallmentPlanDetails
को जोड़ा गया किस्तों में पैसे चुकाने की सुविधा देने वाले बुनियादी प्लान के लिए, जिन्हें उपयोगकर्ता खरीद सकते हैं. यह एपीआई किस्त के प्लान और इसके तय किए गए सेटअप की पहचान करने में आपके ऐप्लिकेशन की मदद की जाती है उपयोगकर्ता को संबंधित जानकारी देने के लिए. ज़्यादा जानकारी के लिए, यह देखें सदस्यता की किस्तों की गाइड.
PendingPurchasesParams
को जोड़ा गया औरBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
BillingClient.Builder.enablePendingPurchases()
को बदलने के लिए, जिसे इस रिलीज़ में बंद कर दिया गया है.- अब काम नहीं करने वाला
enablePendingPurchases()
, फ़ंक्शन के तौर पर इसके बराबर हैenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.
- अब काम नहीं करने वाला
सदस्यता के प्रीपेड प्लान के रुके हुए लेन-देन की सुविधा देने के लिए एपीआई जोड़े गए:
PendingPurchasesParams.Builder.enablePrepaidPlans()
का इस्तेमाल करेंBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
के साथ ताकि सदस्यता के प्रीपेड प्लान के लिए रुके हुए लेन-देन की सुविधा चालू की जा सके. जोड़ते समय का इस्तेमाल करें. पक्का करें कि आपका ऐप्लिकेशन सदस्यता को भी सही तरीके से मैनेज करता हो लाइफ़साइकल. ज़्यादा जानने के लिए, यह देखें अधूरी खरीदारी की गाइड देखें.Purchase.PendingPurchaseUpdate
को जोड़ा गया औरPurchase.getPendingPurchaseUpdate()
लंबित टॉप-अप को फिर से पाने या मौजूदा पर अपग्रेड या डाउनग्रेड करने के लिए की सदस्यता लें.
BillingClient.Builder.enableAlternativeBilling()
को हटाया गया,AlternativeBillingListener
, औरAlternativeChoiceDetails
.- डेवलपर को इनका इस्तेमाल करना चाहिए
BillingClient.Builder.enableUserChoiceBilling()
UserChoiceBillingListener
के साथ औरUserChoiceDetails
का इस्तेमाल करने की ज़रूरत नहीं है.
- डेवलपर को इनका इस्तेमाल करना चाहिए
BillingFlowParams.ProrationMode
को हटाया गया,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
, औरBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.- डेवलपर को इनका इस्तेमाल करना चाहिए
BillingFlowParams.SubscriptionUpdateParams.ReplacementMode
BillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)
के साथ आज़माएं. BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
.BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.
- डेवलपर को इनका इस्तेमाल करना चाहिए
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()
को हटाया गया.- डेवलपर को
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)
का इस्तेमाल करना चाहिए आज़माएं.
- डेवलपर को
BillingClient.queryPurchaseHistoryAsync()
को बंद कर दिया गया है और इसे अगली रिलीज़ में हटा दिया जाएगा. डेवलपर को यह करना चाहिए इसके बजाय, नीचे दिए गए विकल्पों का इस्तेमाल करें:- स्वीकार की गई और अधूरी खरीदारी: इस्तेमाल करें
BillingClient.queryPurchasesAsync()
चालू खरीदारी की जानकारी फ़ेच करने के लिए. - इस्तेमाल की गई खरीदारी: डेवलपर को सुरक्षित रखने में मदद कर सकता है.
- रद्द की गई खरीदारी: रद्द की गई खरीदारी डेवलपर एपीआई.
- ज़्यादा जानकारी के लिए, यह देखें क्वेरी की खरीदारी का इतिहास
- स्वीकार की गई और अधूरी खरीदारी: इस्तेमाल करें
BillingFlowParams.ProductDetailsParams.setOfferToken()
अब जब डेवलपर कोई खालीofferToken
तय करते हैं, तो अपवाद के तौर पर इसकी जानकारी दी जाती है.minSdkVersion
को 21 पर औरtargetSdkVersion
को 34 पर अपडेट किया गया.
Google Play Billing Library 6.2.1 रिलीज़ (16-04-2024)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.2.1 अब उपलब्ध हैं.
परिवर्तनों का सारांश
BillingClient.showAlternativeBillingOnlyInformationDialog()
की उस गड़बड़ी को ठीक किया गया है जहां डायलॉग पूरा होने पर, कुछ मामलों मेंAlternativeBillingOnlyInformationDialogListener
को कॉल नहीं किया जा सकता.
Google Play Billing Library 6.2.0 रिलीज़ (06-03-2024)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.2.0 अब उपलब्ध हैं.
परिवर्तनों का सारांश
- बाहरी ऑफ़र के साथ काम करने के लिए एपीआई जोड़े गए
BillingClient.Builder.enableExternalOffer()
को जोड़ा गया बाहरी ऑफ़र उपलब्ध कराने के लिए.BillingClient.isExternalOfferAvailableAsync()
को जोड़ा गया बाहरी ऑफ़र उपलब्ध कराने की सुविधा उपलब्ध है या नहीं, यह देखने के लिए.BillingClient.showExternalOfferInformationDialog()
को जोड़ा गया ताकि उपयोगकर्ताओं को ऐप्लिकेशन से बाहर ले जाने से पहले, उन्हें जानकारी वाला डायलॉग दिखाया जा सके.- बाहरी ऑफ़र से किए गए लेन-देन को रिपोर्ट करने के लिए ज़रूरी पेलोड बनाने के लिए,
BillingClient.createExternalOfferReportingDetailsAsync()
को जोड़ा गया.
Google Play Billing Library 6.1.0 रिलीज़ (14-11-2023)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.1.0 अब उपलब्ध हैं.
परिवर्तनों का सारांश
- सिर्फ़ अन्य बिलिंग सिस्टम (बिना उपयोगकर्ता की पसंद के) की सुविधा देने के लिए एपीआई जोड़े गए
BillingClient.Builder.enableAlternativeBillingOnly()
को जोड़ा गया विकल्प के तौर पर, सिर्फ़ अन्य बिलिंग सिस्टम उपलब्ध कराया जा सके.BillingClient.isAlternativeBillingOnlyAvailableAsync()
को जोड़ा गया देखें कि सिर्फ़ अन्य बिलिंग सिस्टम उपलब्ध है या नहीं.BillingClient.showAlternativeBillingOnlyInformationDialog()
को जोड़ा गया उपयोगकर्ताओं को यह बताने के लिए कि बिलिंग का कोई अन्य सिस्टम कब इस्तेमाल किया जा सकता है, जानकारी वाला डायलॉग बॉक्स इस्तेमाल किया जा रहा है.- ज़रूरी पेलोड बनाने के लिए,
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
को जोड़ा गया का इस्तेमाल, सिर्फ़ अन्य बिलिंग सिस्टम से किए गए लेन-देन की रिपोर्ट करने के लिए किया जाता है.
- उपयोगकर्ता की पसंद के बिलिंग सिस्टम वाले एपीआई अपडेट किए गए
UserChoiceBillingListener
को जोड़ा गया Optional बिलिंग पहचानकर्ता बदलने के लिए जिसे 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है.UserChoiceDetails
को जोड़ा गयाAlternativeChoiceDetails
को बदलने के लिए जिसे 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है.BillingClient.Builder.enableUserChoiceBilling()
को जोड़ा गयाBillingClient.Builder.enableAlternativeBilling()
को बदलने के लिए जिसे 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है.
- Google Play में देश का नाम वापस पाने के लिए,
BillingClient.getBillingConfigAsync()
को जोड़ा गया.
Google Play Billing Library 6.0.1 रिलीज़ (22-06-2023)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.0.1 अब उपलब्ध हैं.
परिवर्तनों का सारांश
Play Billing Library को अपडेट करें, ताकि यह Android 14 के साथ काम कर सके.
Google Play Billing Library 6.0 रिलीज़ (10-05-2023)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.0.0 अब उपलब्ध हैं.
परिवर्तनों का सारांश
नया जोड़ा गया
ReplacementMode
बदलने के लिए enumProrationMode
.कृपया ध्यान दें कि
ProrationMode
अब भी पुराने सिस्टम के साथ काम करने की सुविधा के लिए उपलब्ध है की वजह.इसके लिए ऑर्डर आईडी हटाया गया
PENDING
खरीदारी.पहले, ऑर्डर आईडी हमेशा बनाया जाता था. भले ही, खरीदारी लंबित. वर्शन 6.0.0 से शुरू होने वाले किसी भी वर्शन के लिए, अधूरी खरीदारी और इन खरीदारी के लिए ऑर्डर आईडी भरा जाएगा ट्रांसफ़र करने के बाद
PURCHASED
राज्य.queryPurchases
औरlaunchPriceConfirmationFlow
तरीके हटाए गए.queryPurchases
औरlaunchPriceConfirmationFlow
तरीकों में पहले 'अब काम नहीं करता' के तौर पर मार्क किया गया था और अब उसे Play Billing से हटा दिया गया है लाइब्रेरी 6.0.0. डेवलपर को इनका इस्तेमाल करना चाहिएqueryPurchasesAsync
queryPurchases
के बजाय.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 के पिछले वर्शन अब भी इस कोड को दिखाएंगे.अतिरिक्त लॉगिंग जोड़ा गया.
Play Billing Library 6 रिलीज़ में अतिरिक्त लॉगिंग शामिल है, जिससे एपीआई के इस्तेमाल (जैसे कि सफलता और असफलता) और सेवा कनेक्शन की अहम जानकारी समस्याएं. इस जानकारी का इस्तेमाल, Google Play की परफ़ॉर्मेंस को बेहतर बनाने के लिए किया जाएगा 'Play Billing लाइब्रेरी' और गड़बड़ियों के लिए बेहतर सहायता उपलब्ध कराना.
Google Play Billing Library 5.2.1 रिलीज़ (22-06-2023)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 5.2.1 अब उपलब्ध हैं.
परिवर्तनों का सारांश
Play Billing Library को अपडेट करें, ताकि यह Android 14 के साथ काम कर सके.
Google Play Billing Library 5.2 रिलीज़ (06-04-2023)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 5.2.0 अब उपलब्ध हैं.
परिवर्तनों का सारांश
- मोबाइल या टैबलेट पर, अन्य बिलिंग सिस्टम के फ़्लो की सुविधा देने के लिए क्लास जोड़ी गईं दक्षिण कोरिया के उपयोगकर्ताओं के लिए:
- जोड़े गए
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()
का इस्तेमाल किया जा सकता है. BillingClient.Builder.enableAlternativeBilling()
को जोड़ा गया का इस्तेमाल किया जा सकता है.
Google Play Billing Library 5.1 रिलीज़ (31-10-2022)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 5.1.0 अब उपलब्ध हैं.
इस वर्शन में ये बदलाव शामिल हैं.
परिवर्तनों का सारांश
- ऑफ़र आईडी फिर से पाने के लिए,
ProductDetails.SubscriptionOfferDetails.getOfferId()
तरीका जोड़ा गया. - बुनियादी प्लान आईडी को वापस पाने के लिए,
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
तरीका जोड़ा गया. targetSdkVersion
को बदलकर 31 किया गया.
Google Play Billing Library 5.0 रिलीज़ (11-05-2022)
Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 5.0.0 अब उपलब्ध हैं.
इस वर्शन में ये बदलाव शामिल हैं.
परिवर्तनों का सारांश
- सदस्यताओं के लिए एक नया मॉडल लॉन्च किया गया. इसमें ऐसी नई इकाइयां भी शामिल हैं की मदद से, एक ही विज्ञापन के लिए कई ऑफ़र बनाए जा सकते हैं शुल्क लेकर सदस्यता देने वाला प्रॉडक्ट. ज़्यादा जानकारी के लिए, देखें डेटा को दूसरी जगह भेजने से जुड़ी गाइड.
- जोड़े गए
BillingClient.queryProductDetailsAsync()
BillingClient.querySkuDetailsAsync()
को बदलने के लिए. - ईयू (यूरोपीय संघ) के हिसाब से तय की गई कीमत के लिए,
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 और Kotlin एक्सटेंशन के वर्शन 4.0.0 अब उपलब्ध हैं.
परिवर्तनों का सारांश
BillingClient.queryPurchases()
की जगह लेने के लिए,BillingClient.queryPurchasesAsync()
को जोड़ा गया. इसे अगली रिलीज़ में हटा दिया जाएगा.नया सदस्यता बदलने वाला मोड
IMMEDIATE_AND_CHARGE_FULL_PRICE
जोड़ा गया.Play Billing लाइब्रेरी के कनेक्शन की स्थिति की जानकारी पाने के लिए,
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 का इस्तेमाल करने वाले ऐप्लिकेशन, इन समस्याओं को ठीक कर सकते हैं
सिंगल टास्क लॉन्च मोड का इस्तेमाल करें. ऐप्लिकेशन
onPurchasesUpdated()
Android लॉन्चर से किसी ऐप्लिकेशन को फिर से शुरू करने पर कॉलबैक ट्रिगर होगा निलंबित किए जाने से पहले, बिलिंग डायलॉग बॉक्स दिख रहा था.
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 का वर्शन 3.0.0, Kotlin एक्सटेंशन, और Unity प्लगिन अब उपलब्ध हैं.
परिवर्तनों का सारांश
- इनाम वाली एसकेयू से जुड़ी सहायता हटाई गई.
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 लाइब्रेरी का वर्शन 2.2.1 अब उपलब्ध है.
बग समाधान
- Java Play Billing लाइब्रेरी के डिफ़ॉल्ट वर्शन को अपडेट किया गया Kotlin का एक्सटेंशन निर्भर करता है.
Google Play Billing Library 2.2.0 रिलीज़ और Unity के लिए सहायता (23-03-2020)
Google Play Billing के वर्शन 2.2.0 में ऐसी सुविधाएं दी गई हैं जिनसे मदद मिल सकती है डेवलपर यह पक्का करते हैं कि खरीदारी सही उपयोगकर्ता को एट्रिब्यूट की गई हो. ये बदलाव इसकी जगह, डेवलपर पेलोड के आधार पर कस्टम सलूशन बनाने की ज़रूरत नहीं है. जैसे इस अपडेट के बाद, डेवलपर पेलोड की सुविधा को बंद कर दिया गया है इसे अगली रिलीज़ में हटा दिया जाएगा. ज़्यादा जानकारी के लिए, जैसे कि सुझाए गए विकल्प, देखें डेवलपर पेलोड.
Unity के लिए Google Play Billing Billing Library 2
Google Play Billing के मौजूदा Java और Kotlin वर्शन के अलावा लाइब्रेरी 2 में, हमने Unity के साथ इस्तेमाल करने के लिए लाइब्रेरी का एक वर्शन रिलीज़ किया. गेम वाले ऐप्लिकेशन Unity इन-ऐप्लिकेशन खरीदारी एपीआई का इस्तेमाल करने वाले डेवलपर, अब Google Play Billing Library 2 की सभी सुविधाओं का फ़ायदा लें और Google Play Billing Library के आने वाले वर्शन में अपग्रेड करने के लिए और भी आसान हो गया है.
इस बारे में ज़्यादा जानने के लिए, यह देखें Unity के साथ Google Play Billing का इस्तेमाल करें.
परिवर्तनों का सारांश
- Java की Google Play Billing लाइब्रेरी
- तय सीमा में
AcknowledgePurchaseParams
बंद किया गयाsetDeveloperPayload()
औरgetDeveloperPayload()
तरीकों का इस्तेमाल करना होगा. - तय सीमा में
ConsumeParams
बंद किया गयाsetDeveloperPayload()
औरgetDeveloperPayload()
तरीकों का इस्तेमाल करना होगा. - तय सीमा में
BillingFlowParams
नाम बदला गयाsetAccountId()
सेsetObfuscatedAccountId()
, दस्तावेज़ में 64 वर्णों की पाबंदी है जो इस फ़ील्ड में व्यक्तिगत पहचान से जुड़ी जानकारी (पीआईआई) को अस्वीकार कर रही है.setAccountId()
को 'अब काम नहीं करता' के तौर पर मार्क किया गया है और इसे लाइब्रेरी का नया वर्शन डाउनलोड करें. BillingFlowParams
में, जोड़ा गयाsetObfuscatedProfileId()
जो इसके जैसे काम करता हैsetObfuscatedAccountId()
. ज़्यादा जानकारी के लिए, यह देखें डेवलपर पेलोड के अपडेट और अन्य विकल्प.Purchase
में,getAccountIdentifiers()
में सेट किए गए अस्पष्ट खाता आइडेंटिफ़ायर को वापस करने का तरीकाBillingFlowParams
.BillingClient
में,loadRewardedSku()
इस तरीके को इनाम वाले SKU को बंद करने के तहत, 'अब काम नहीं करता' के तौर पर मार्क किया गया है. आपको इस Play Console सहायता केंद्र.
- तय सीमा में
Google Play Billing Library 2.1.0 रिलीज़ और Kotlin एक्सटेंशन 2.1.0 रिलीज़ (10-12-2019)
Google Play Billing लाइब्रेरी और नया Kotlin एक्सटेंशन का वर्शन 2.1.0 अब उपलब्ध हैं. Play Billing Library Kotlin एक्सटेंशन में मुहावरेदार कॉन्टेंट उपलब्ध होता है Kotlin के इस्तेमाल के लिए एपीआई के विकल्प, जिसमें शून्य-सुरक्षा बेहतर तरीके से काम करना और कोरूटीन. कोड के उदाहरणों के लिए, देखें Google Play Billing Library का इस्तेमाल करें.
इस वर्शन में ये बदलाव शामिल हैं.
परिवर्तनों का सारांश
BillingFlowParams
में,setOldSku(String oldSku)
को रोक दिया गया है और इसे इससे बदल दिया गया हैsetOldSku(String oldSku, String purchaseToken)
को साफ़ तौर पर बताएं कि डिवाइस पर मौजूद कई खातों का एक ही SKU हो.
Google Play Billing Library 2.0.3 रिलीज़ (05-08-2019)
Google Play Billing लाइब्रेरी का वर्शन 2.0.3 अब उपलब्ध है.
बग समाधान
- गड़बड़ी को ठीक किया गया है, जहां
querySkuDetailsAsync()
कभी-कभी कोड के साथ फ़ेल हो जाता थाDEVELOPER_ERROR
का इस्तेमाल करने के बजाय बनाया गया है.
Google Play Billing Library 2.0.2 रिलीज़ (08-07-2019)
Google Play Billing लाइब्रेरी का वर्शन 2.0.2 अब उपलब्ध है. इस रिलीज़ में में संदर्भ दस्तावेज़ के अपडेट होते हैं और लाइब्रेरी में बदलाव नहीं होता है काम करता है.
Google Play Billing Library 2.0.1 रिलीज़ (06-06-2019)
Google Play Billing लाइब्रेरी का वर्शन 2.0.1 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
बग समाधान
- उस गड़बड़ी को ठीक किया गया है जिसकी कुछ मामलों में डीबग मैसेज,
null
के तौर पर दिखाए जा रहे थे. - मेमोरी लीक होने की संभावित समस्या को ठीक किया गया.
Google Play Billing Library 2.0 रिलीज़ (07-05-2019)
Google Play Billing लाइब्रेरी का वर्शन 2.0 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
खरीदारी को तीन दिनों के अंदर स्वीकार करना ज़रूरी है
Google Play पर, ऐप्लिकेशन में जाकर प्रॉडक्ट खरीदे जा सकते हैं या
ऐप्लिकेशन के बाहर (ऐप्लिकेशन के बाहर) नहीं होना चाहिए. Google Play को यह पक्का करने के लिए
लोगों को खरीदारी का एक जैसा अनुभव देता है. भले ही, उपयोगकर्ता आपकी खरीदारी का
इस प्रॉडक्ट के लिए, आपको Google Play से हुई सभी खरीदारी को स्वीकार करना होगा
उपयोगकर्ता को एनटाइटलमेंट देने के बाद, जल्द से जल्द 'Play Billing लाइब्रेरी' का इस्तेमाल करें. अगर आपने
अगर उपयोगकर्ता तीन दिन के अंदर किसी खरीदारी को स्वीकार नहीं करता है, तो उसे स्वीकार नहीं करने पर,
रिफ़ंड मिलता है और 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 लाइब्रेरी के वर्शन 2.0 में, डेवलपर के लिए सहायता जोड़ी गई है पेलोड—आर्बिट्ररी स्ट्रिंग, जिन्हें खरीदारी के साथ जोड़ा जा सकता है. आप किसी खरीदारी में डेवलपर पेलोड पैरामीटर अटैच करें, लेकिन सिर्फ़ खरीदारी के समय स्वीकार या इस्तेमाल किया जाता है. यह एआईडीएल में डेवलपर पेलोड से अलग है, जहां परचेज़ फ़्लो को लॉन्च करते समय, पेलोड की जानकारी दी जा सकती है. क्योंकि खरीदारी अब आपके ऐप्लिकेशन के बाहर से शुरू किए जा सकते हैं, यह बदलाव यह पक्का करती है कि आपके पास खरीदारी में पेलोड जोड़ने का मौका हमेशा रहे.
नई लाइब्रेरी में पेलोड को ऐक्सेस करने के लिए, Purchase
ऑब्जेक्ट में अब
getDeveloperPayload()
तरीका.
लगातार मिलने वाले ऑफ़र
जब आप छूट वाली SKU ऑफ़र करते हैं, तब Google Play अब SKU को जोड़ना होगा, ताकि आप उपयोगकर्ताओं को दिखा सकें कि उन्हें छूट मिल रही है.
SkuDetails
में दो शामिल हैं
SKU की मूल कीमत का पता लगाने के नए तरीके:
getOriginalPriceAmountMicros()
से छूट से पहले SKU की मूल कीमत दिखाता है, जिसे फ़ॉर्मैट नहीं किया गया है.getOriginalPrice()
से मुद्रा के अतिरिक्त फ़ॉर्मैट के साथ मूल कीमत दिखाता है.
बाकी लेन-देन
Google Play Billing लाइब्रेरी के वर्शन 2.0 में, आपके लिए काम करना ज़रूरी है एनटाइटलमेंट देने से पहले, अतिरिक्त कार्रवाई करने की ज़रूरत होती है. इसके लिए उदाहरण के लिए, उपयोगकर्ता किसी दुकान से आपके ऐप्लिकेशन में खरीदने के लिए उपलब्ध प्रॉडक्ट को खरीदने का विकल्प चुन सकता है पैसे इस्तेमाल करना. इसका मतलब है कि लेन-देन आपके ऐप्लिकेशन के बाहर किया गया है. तय सीमा में इस स्थिति में, आपको एनटाइटलमेंट सिर्फ़ तब देना चाहिए, जब उपयोगकर्ता यह प्रोसेस पूरी कर ले लेन-देन.
अधूरी खरीदारी को चालू करने के लिए, कॉल करें
enablePendingPurchases()
को भी इंस्टॉल किया जा सकता है.
Purchase.getPurchaseState()
का इस्तेमाल करें
यह पता लगाने के लिए कि खरीदारी की स्थिति PURCHASED
है या PENDING
. ध्यान दें कि
आपको एनटाइटलमेंट सिर्फ़ तब देना चाहिए, जब राज्य PURCHASED
हो. आपको ऐसा करना चाहिए
Purchase
की स्थिति से जुड़े अपडेट पाने के लिए यह तरीका अपनाएं:
- अपना ऐप्लिकेशन शुरू करने पर,
BillingClient.queryPurchases()
का इस्तेमाल करें. - लौटाए गए हर
Purchase
ऑब्जेक्ट परPurchase.getPurchaseState()
को कॉल करें. onPurchasesUpdated()
को लागू करेंPurchase
ऑब्जेक्ट में हुए बदलावों को रिस्पॉन्स देने का तरीका.
इसके अलावा, Google Play Developer API में PENDING
राज्य शामिल है
Purchases.products
के लिए.
लंबित लेन-देन इसके लिए समर्थित नहीं हैं
सदस्यताएं.
इस रिलीज़ में डेवलपर से जुड़ी एक नई तरह की रीयल-टाइम सूचना भी शामिल की गई है,
OneTimeProductNotification
. इस सूचना टाइप में एक मैसेज है
जिसकी वैल्यू ONE_TIME_PRODUCT_PURCHASED
या
ONE_TIME_PRODUCT_CANCELED
. इस तरह की सूचना सिर्फ़ खरीदारी के लिए भेजी जाती है
पेमेंट में देरी होने पर, जैसे कि नकद पैसे चुकाने पर.
अधूरी खरीदारी को स्वीकार करते समय, सिर्फ़ तब स्वीकार करें, जब
खरीदारी की स्थिति PURCHASED
है, PENDING
नहीं.
एपीआई से जुड़े बदलाव
Google Play Billing लाइब्रेरी के वर्शन 2.0 में, एपीआई में कई बदलाव किए गए हैं नई सुविधाओं के बारे में बताने वाला हो और मौजूदा फ़ंक्शन के बारे में साफ़ तौर पर बताता हो.
एसिंक्रोनस कंज़्यूम
consumeAsync()
अब एक
ConsumeParams
ऑब्जेक्ट
purchaseToken
के बजाय. ConsumeParams
में purchaseToken
इस रूप में शामिल है
साथ ही, डेवलपर पेलोड का इस्तेमाल करना ज़रूरी नहीं है.
इस रिलीज़ से consumeAsync()
के पिछले वर्शन को हटा दिया गया है.
क्वेरीखरीदारी इतिहासAsync
भ्रम की स्थिति को कम करने के लिए,
queryPurchaseHistoryAsync()
अब एक
PurchaseHistoryRecord
एक Purchase
ऑब्जेक्ट के बजाय ऑब्जेक्ट. PurchaseHistoryRecord
ऑब्जेक्ट
Purchase
ऑब्जेक्ट के जैसा होता है. अंतर सिर्फ़ इतना होता है कि यह सिर्फ़ उन वैल्यू को दिखाता है जो
queryPurchaseHistoryAsync()
और इसमें autoRenewing
शामिल नहीं है,
orderId
और packageName
फ़ील्ड. ध्यान दें कि आपकी वेबसाइट के
दिखाया गया डेटा—queryPurchaseHistoryAsync()
वही डेटा दिखाता है जो
से पहले.
बिलिंग नतीजे की वैल्यू दिखाना
ऐसे एपीआई जो पहले BillingResponse
पूर्णांक वैल्यू दिखाते थे, वे अब
BillingResult
ऑब्जेक्ट है. BillingResult
में BillingResponse
पूर्णांक और
डीबग स्ट्रिंग, जिसका इस्तेमाल गड़बड़ियों का पता लगाने के लिए किया जा सकता है. डीबग स्ट्रिंग में en-US का इस्तेमाल किया जाता है
स्थानीय भाषा में होना चाहिए और यह असली उपयोगकर्ताओं को नहीं दिखाया जाना चाहिए.
बग समाधान
SkuDetails.getIntroductoryPriceAmountMicros()
अबString
के बजायlong
दिखाता है.
Google Play Billing Library 1.2.2 रिलीज़ (07-03-2019)
Google Play Billing लाइब्रेरी का वर्शन 1.2.2 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
बग समाधान
- वर्शन 1.2.1 में पेश की गई थ्रेडिंग से जुड़ी समस्या को ठीक किया गया है. बैकग्राउंड में कॉल करने की सुविधा अब ब्लॉक नहीं की जाएगी मुख्य थ्रेड.
अन्य बदलाव
- हालांकि, अब भी मुख्य थ्रेड का इस्तेमाल करने का सुझाव दिया जाता है, लेकिन अब इंस्टैंशिएट किया जा सकता है Google Play Billing Library को बैकग्राउंड थ्रेड में एक्सपोर्ट करना.
- इंस्टैंशिएशन को पूरी तरह से बैकग्राउंड थ्रेड पर माइग्रेट कर दिया गया है, ताकि ANR की गड़बड़ी होने की संभावना को कम कर देता है.
Play Billing Library 1.2.1 रिलीज़ (04-03-2019)
Google Play Billing लाइब्रेरी का वर्शन 1.2.1 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
मुख्य परिवर्तन
- इनाम में मिलने वाले प्रॉडक्ट के लिए सहायता जोड़ी गई. कमाई करने के विकल्पों के बारे में ज़्यादा जानकारी के लिए, यहां देखें इनाम वाले प्रॉडक्ट से जुड़ी खास सुविधाएं जोड़ें.
अन्य बदलाव
- बनाने के लिए
PurchasesResult
औरSkuDetailsResult
के लिए सार्वजनिक कंस्ट्रक्टर जोड़े गए करना आसान था. SkuDetails
ऑब्जेक्ट,getOriginalJson()
के किसी नए तरीके का इस्तेमाल कर सकते हैं.- सभी एआईडीएल सेवा कॉल अब बैकग्राउंड थ्रेड की मदद से मैनेज किए जाते हैं.
बग समाधान
- शून्य कॉलबैक लिसनर अब सार्वजनिक एपीआई में पास नहीं किए जाते.
Google Play Billing Library 1.2 रिलीज़ (18-10-2018)
Google Play Billing लाइब्रेरी का वर्शन 1.2 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
परिवर्तनों का सारांश
- Google Play Billing Library को अब Android सॉफ़्टवेयर डेवलपमेंट किट का लाइसेंस देने के लिए कानूनी समझौता.
launchPriceChangeConfirmationFlow
एपीआई जोड़ा गया, जो लोगों को सदस्यता की कीमत में होने वाले ऐसे बदलाव की समीक्षा करें जिसे मंज़ूरी मिलना बाकी है.- अपग्रेड करते समय, नए प्रोरेशन मोड
DEFERRED
के लिए सहायता जोड़ी गई या किसी उपयोगकर्ता की सदस्यता को डाउनग्रेड करते हैं. BillingFlowParams
क्लास में,setSku()
कोsetSkuDetails()
से बदल दिया गया.- मामूली गड़बड़ियां ठीक की गईं और कोड को ऑप्टिमाइज़ किया गया.
कीमत में बदलाव की पुष्टि
अब Google Play Console में जाकर, सदस्यता की कीमत बदली जा सकती है और इसके लिए सूचना दी जा सकती है ताकि आपके ऐप्लिकेशन में आने पर लोग नई कीमत को देख सकें और उसे स्वीकार कर सकें.
इस एपीआई का इस्तेमाल करने के लिए, PriceChangeFlowParams
शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट का skuDetails
इस्तेमाल करें. इसके बाद, कॉल करें
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
. अगली बार जब उपयोगकर्ता सदस्यता लेता है, तो यह मोड उसकी सदस्यता को अपडेट कर देता है
रिन्यू होने वाला है. इस प्रोरेशन मोड को सेट करने के तरीके के बारे में ज़्यादा जानने के लिए, प्रोरेशन मोड सेट करें
मोड है.
SKU की जानकारी सेट करने का नया तरीका
BillingFlowParams
क्लास में, setSku()
तरीके को बंद कर दिया गया है.
इस बदलाव से, Google Play Billing के फ़्लो को ऑप्टिमाइज़ करने में मदद मिलती है.
अपनी इन-ऐप बिलिंग में BillingFlowParams
का नया इंस्टेंस बनाते समय
तो हमारा सुझाव है कि आप इसके बजाय सीधे JSON ऑब्जेक्ट के साथ काम करें
setSkuDetails()
, जैसा कि इस कोड स्निपेट में दिखाया गया है:
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 लाइब्रेरी का वर्शन 1.1 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
परिवर्तनों का सारांश
BillingFlowParams
में प्रोरेशन मोड तय करने के लिए सहायता जोड़ी गई आपकी सदस्यता को अपग्रेड/डाउनग्रेड करते समय.BillingFlowParams
मेंreplaceSkusProration
बूलियन फ़्लैग अब समर्थित नहीं है. इसके बजाय,replaceSkusProrationMode
का इस्तेमाल करें.launchBillingFlow()
अब फ़ेल हो चुके जवाबों के लिए कॉलबैक ट्रिगर करता है.
व्यवहार में बदलाव
Google Play Billing लाइब्रेरी के वर्शन 1.1 में, यह तरीका अपनाया गया है बदलाव.
डेवलपर, replaceSkusProrationMode
को BillingFlowParams
क्लास में सेट कर सकते हैं
सेवा को अपग्रेड या डाउनग्रेड करते समय, 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()
अब फ़ेल हो चुके जवाबों के लिए कॉलबैक ट्रिगर करता है
बिलिंग लाइब्रेरी, हमेशा PurhcasesUpdatedListener
को ट्रिगर करेगी
कॉलबैक करें और BillingResponse
लौटाएं
एसिंक्रोनस रूप से. BillingResponse
की सिंक्रोनस रिटर्न वैल्यू
उसे भी बनाए रखा जाता है.
बग समाधान
- सेवा डिसकनेक्ट होने पर, एक साथ काम नहीं करने वाली प्रोसेस से जल्दी बाहर निकल जाती है.
Builder
पैरामीटर ऑब्जेक्ट अब बनाए गए ऑब्जेक्ट में बदलाव नहीं करते हैं.- समस्या 68087141:
launchBillingFlow()
अब फ़ेल हो चुके जवाबों के लिए कॉलबैक ट्रिगर करें.
Google Play Billing Library 1.0 रिलीज़ (19-09-2017, घोषणा)
Google Play Billing लाइब्रेरी का वर्शन 1.0 अब उपलब्ध है. यह वर्शन में ये बदलाव शामिल हैं.
ज़रूरी बदलाव
- लाइब्रेरी के मेनिफ़ेस्ट में एम्बेड की गई बिलिंग की अनुमति. यह ज़रूरी नहीं है कि
अब Android मेनिफ़ेस्ट के अंदर
com.android.vending.BILLING
अनुमति. BillingClient.Builder
में नया बिल्डर जोड़ा गया क्लास.SkuDetailsParams
के लिए बिल्डर पैटर्न पेश किया गया क्लास का इस्तेमाल SKU पर क्वेरी करने के तरीकों के लिए किया जाता है.- अनुकूलता के लिए कई एपीआई तरीके अपडेट किए गए (सामान लौटाने के एक ही तर्क के नाम और ऑर्डर).
व्यवहार में बदलाव
Google Play Billing लाइब्रेरी के वर्शन 1.0 में, यह तरीका अपनाया गया है बदलाव.
BillingClient.Builder की क्लास
BillingClient.Builder
को अब newBuilder पैटर्न से शुरू किया जाता है:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
Launch BillingFlow तरीके को अब 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()
तरीके के हिसाब से पैरामीटर का क्रम बदला गया
onConsumeResponse
के लिए आर्ग्युमेंट का क्रम
ConsumeResponseListener
से
इंटरफ़ेस में बदलाव करके इसे पूरे एपीआई में एक जैसा बनाया गया है:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
रैप नहीं किया गया Purchaseनतीजे ऑब्जेक्ट
PurchaseResult
को हमारे पूरे एपीआई में एक जैसा रखने के लिए रैप किया गया है:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
बग समाधान
- PURCHASES_UPDATED बंडल में कोई रिस्पॉन्स कोड नहीं है
- डिवाइस के रोटेशन के दौरान प्रॉक्सीबिलिंग ऐक्टिविटी और PurchasesUpdatedListener की समस्याएं ठीक करना
डेवलपर पूर्वावलोकन 1 रिलीज़ (12-06-2017, घोषणा)
डेवलपर की झलक लॉन्च की गई, जिसका मकसद बिलिंग के मामले में डेवलपमेंट प्रोसेस को आसान बनाना है, इससे डेवलपर, Android ऐप्लिकेशन के लिए किसी खास लॉजिक को लागू करने पर फ़ोकस कर पाते हैं. उदाहरण के लिए, ऐप्लिकेशन का आर्किटेक्चर और नेविगेशन स्ट्रक्चर.
लाइब्रेरी में कई सुविधाजनक क्लास और सुविधाएं हैं. इनका इस्तेमाल करके, अपने Google Play Billing API वाले Android ऐप्लिकेशन. लाइब्रेरी में सबसे ऊपर एक ऐब्स्ट्रक्शन लेयर भी होती है, Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) की सेवा का इस्तेमाल करके, डेवलपर के लिए ऐप्लिकेशन और Google Play Billing API के बीच का इंटरफ़ेस.