Google Play Billing Library के प्रॉडक्ट की जानकारी

इस विषय में, Google Play Billing Library के लिए प्रॉडक्ट की जानकारी दी गई है.

Google Play Billing Library 7.0.0 रिलीज़ (14-05-2024)

Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 7.0.0 अब उपलब्ध हैं उपलब्ध हैं.

परिवर्तनों का सारांश

Google Play Billing Library 6.2.1 रिलीज़ (16-04-2024)

Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 6.2.1 अब उपलब्ध हैं.

परिवर्तनों का सारांश

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 अब उपलब्ध हैं.

परिवर्तनों का सारांश

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 बदलने के लिए enum ProrationMode.

    कृपया ध्यान दें कि 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 अब उपलब्ध हैं.

परिवर्तनों का सारांश

Google Play Billing Library 5.1 रिलीज़ (31-10-2022)

Google Play Billing Library और Kotlin एक्सटेंशन के वर्शन 5.1.0 अब उपलब्ध हैं.

इस वर्शन में ये बदलाव शामिल हैं.

परिवर्तनों का सारांश

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 अब उपलब्ध हैं.

इस वर्शन में ये बदलाव शामिल हैं.

परिवर्तनों का सारांश

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 का इस्तेमाल करें.

परिवर्तनों का सारांश

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 की स्थिति से जुड़े अपडेट पाने के लिए यह तरीका अपनाएं:

  1. अपना ऐप्लिकेशन शुरू करने पर, BillingClient.queryPurchases() का इस्तेमाल करें.
  2. लौटाए गए हर Purchase ऑब्जेक्ट पर Purchase.getPurchaseState() को कॉल करें.
  3. 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 का इस्तेमाल किया जाता है स्थानीय भाषा में होना चाहिए और यह असली उपयोगकर्ताओं को नहीं दिखाया जाना चाहिए.

बग समाधान

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)

बग समाधान

डेवलपर पूर्वावलोकन 1 रिलीज़ (12-06-2017, घोषणा)

डेवलपर की झलक लॉन्च की गई, जिसका मकसद बिलिंग के मामले में डेवलपमेंट प्रोसेस को आसान बनाना है, इससे डेवलपर, Android ऐप्लिकेशन के लिए किसी खास लॉजिक को लागू करने पर फ़ोकस कर पाते हैं. उदाहरण के लिए, ऐप्लिकेशन का आर्किटेक्चर और नेविगेशन स्ट्रक्चर.

लाइब्रेरी में कई सुविधाजनक क्लास और सुविधाएं हैं. इनका इस्तेमाल करके, अपने Google Play Billing API वाले Android ऐप्लिकेशन. लाइब्रेरी में सबसे ऊपर एक ऐब्स्ट्रक्शन लेयर भी होती है, Android इंटरफ़ेस डेफ़िनिशन लैंग्वेज (एआईडीएल) की सेवा का इस्तेमाल करके, डेवलपर के लिए ऐप्लिकेशन और Google Play Billing API के बीच का इंटरफ़ेस.