वर्शन 4 या 5 से Google Play Billing Library 6 में माइग्रेट करें

इस विषय में, Google Play Billing Library 4 या 5 से माइग्रेट करने का तरीका बताया गया है Google Play Billing Library 6 और सदस्यता की नई सुविधाओं को इस्तेमाल करने का तरीका.

वर्शन 6.0.0 में किए गए बदलावों की पूरी सूची देखने के लिए, रिलीज़ नोट.

खास जानकारी

Google Play Billing Library 6 में, सदस्यता की नई सुविधाएं जोड़ी गई हैं में कुछ और सुधार जोड़े गए हैं. इन सुविधाओं की मदद से, सदस्यताओं को और ज़्यादा तरीकों से बढ़ाया जा सकता है. इससे ज़रूरत को खत्म करके, ऑपरेशन में होने वाला खर्च घटता है की मदद से लगातार बढ़ रही SKU को बनाया और मैनेज किया जा सकता है.

Play Billing Library के साथ पेश की गई नई सुविधाओं के बारे में ज़्यादा जानकारी 5, Play पर सदस्यताओं से जुड़े हाल ही में हुए बदलाव देखें कंसोल पर क्लिक करें.

पुराने सिस्टम के साथ काम करने वाली Play Billing Library का अपग्रेड

शुल्क लेकर सदस्यता देने वाले सभी मौजूदा प्रॉडक्ट, इस नए प्रॉडक्ट में अपने-आप बदल गए हैं यह मॉडल, मई 2022 में रिलीज़ हुए Play Billing Library 5 और नए की सदस्यता लेने के लिए इस्तेमाल किया जा सकता है. इसका मतलब है कि आपको सदस्यता लेने की ज़रूरत नहीं है प्रॉडक्ट कॉन्फ़िगरेशन में बदलाव करके, एक कैटलॉग जोड़ा है जो नए वर्शन के साथ काम कर सकता है Play Billing लाइब्रेरी के वर्शन. सदस्यता लेने के तरीक़े के बारे में ज़्यादा जानने के लिए, SKU को पुराने सिस्टम के साथ काम करने वाली सदस्यताओं में बदला गया. ज़्यादा जानकारी के लिए, काम करने की जानकारी देखें Play Console के सहायता केंद्र में, पुरानी सदस्यताओं के सेक्शन में लेख पढ़ें.

आपके ऐप्लिकेशन के पुराने वर्शन अब भी काम करते हैं

अगर आपके पास पुराने सिस्टम के साथ काम करने की सुविधा वाला सदस्यता कैटलॉग है, तो आपके पास के हिसाब से काम करना चाहिए. वन-टाइम प्रॉडक्ट भी खरीदी गई सेवाएं काम करती रहनी चाहिए. साथ ही, पुराने वर्शन में भी कोई समस्या नहीं आनी चाहिए.

आपके ऐप्लिकेशन के ऐसे वर्शन जो अब काम नहीं करते. उदाहरण के लिए, querySkuDetailsAsync()) ऐसे बुनियादी प्लान या ऑफ़र नहीं बेचे जा सकेंगे जो पुराने नहीं हैं साथ काम करता है. पुराने सिस्टम के साथ काम करने की सुविधा देने वाले ऑफ़र के बारे में जानने के लिए, Play पर कंसोल सहायता केंद्र लेख में बताया गया है.

Play Billing Library 5 या 6 में अपग्रेड करना

Play Billing Library 5 और 6 में ऐसे तरीके शामिल हैं जो अब काम नहीं करते querySkuDetailsAsync और BillingFlowParams.Builder.setSkuDetails को बिलिंग के तौर पर SkuDetails फ़्लो पैरामीटर. इसका मतलब है कि धीरे-धीरे Play Billing Library 6 पर माइग्रेट किया जा सकता है माइग्रेशन के अलग-अलग चरणों की योजना बनाकर.

माइग्रेशन के पहले चरण के तौर पर, सिर्फ़ लाइब्रेरी को अपडेट करें वर्शन, अपने कैटलॉग और बैकएंड को वैसे ही रहने दें, जैसे कि वे हैं आपका ऐप्लिकेशन अब भी ऐसे तरीकों का इस्तेमाल करता है जो अब काम नहीं करते. अगर आप इसका इस्तेमाल नहीं कर रहे हैं, तो queryPurchases, launchPriceChangeFlow या setVrPurchaseFlow में यह होना चाहिए अभी भी उम्मीद के मुताबिक काम कर रहा है. इसके बाद, आप नए सदस्यता की सुविधाएं मई 2022 में रिलीज़ की गईं.

अगर आपने पहले ही Google Play Billing Library की मदद से इन सुविधाओं का इस्तेमाल किया है 5 माइग्रेशन के बाद, आप सीधे Google को अपडेट करें Play Billing Library और किसी उपयोगकर्ता की सदस्यता बदलना खरीदारी के बारे में जानें. अगर आपको पुराने वर्शन से शुरू करना है, तो या इसने अभी तक नई सुविधाओं को पूरी तरह से नहीं अपनाया है, तो आप पूरा माइग्रेशन इन्हें अपनाने का तरीका जानने के लिए नीचे दिए गए चरण देखें.

माइग्रेशन के सभी चरण

बैकएंड प्रॉडक्ट कैटलॉग में नई सदस्यताएं बनाना

Play Developer Console या Play Developer API का इस्तेमाल करके, अब आप ये काम कर सकते हैं: एक सदस्यता को कई बुनियादी प्लान के साथ कॉन्फ़िगर करना. हर बुनियादी प्लान को कई बुनियादी प्लान के साथ कॉन्फ़िगर करना ऑफ़र. सदस्यता के ऑफ़र में, ज़रूरत के हिसाब से कीमत तय करने और ज़रूरी शर्तें पूरी करने के विकल्प होते हैं. सदस्यता के पूरे लाइफ़साइकल के दौरान, कई तरह के ऑफ़र बनाए जा सकते हैं. इसके लिए, अलग-अलग तरह के अपने-आप रिन्यू होने वाले और प्रीपेड प्लान.

हमारा सुझाव है कि आप Play Billing Library 6 इंटिग्रेशन के लिए सदस्यता वाला प्लैटफ़ॉर्म आपका ऐप्लिकेशन माइग्रेट हो रहा है. अपने पुराने कैटलॉग में डुप्लीकेट प्रॉडक्ट जोड़े जा सकते हैं एक सदस्यता और इस्तेमाल में, एक जैसे एनटाइटलमेंट के फ़ायदे दिखाना अपने सभी विकल्पों को दिखाने के लिए, बुनियादी प्लान और कॉन्फ़िगरेशन ऑफ़र करें ऑफ़र करने के लिए. इस सुझाव के बारे में ज़्यादा जानकारी के लिए, Play Console के सहायता केंद्र में, पुरानी सदस्यताएं सेक्शन में लेख पढ़ें.

हमारा सुझाव है कि आप मई 2022 में रिलीज़ किया जाएगा; आपको उन्हें वैसा ही छोड़ देना चाहिए जैसा कि वे इसके संस्करण के साथ बेचे जाने वाले हैं आपका ऐप्लिकेशन, काम न करने वाले तरीकों (जैसे कि querySkuDetailsAsync()) का इस्तेमाल करके, बिना किसी बदलाव के इन पुराने बिल्ड पर असर पड़ सकता है.

कन्वर्ज़न प्रोसेस की वजह से, शुल्क लेकर सदस्यता देने वाले वे प्रॉडक्ट हुए जो आपके कैटलॉग में मौजूद थे मई 2022 से पहले रीड-ओनली मोड का इस्तेमाल करें, ताकि अनजाने में होने वाले बदलावों से बचा जा सके समस्याएं मौजूद हैं. इन सदस्यताओं में बदलाव करना है हो सकता है, लेकिन कुछ ऐसे नतीजे भी आ सकते हैं जिनका असर आपके फ़्रंटएंड और बैकएंड इंटिग्रेशन:

  • फ़्रंटएंड पर, querySkuDetailsAsync() का इस्तेमाल करने वाले ऐप्लिकेशन वर्शन शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट की जानकारी में, सिर्फ़ पुराने सिस्टम के साथ काम करने वाले बुनियादी प्लान बेचे जा सकते हैं साथ ही, पुराने सिस्टम के साथ काम करने वाला सिर्फ़ एक बुनियादी प्लान और ऑफ़र हो सकता है. इसलिए, अगर ग्राहक में बदली गई सदस्यताओं में कोई नया प्लान या ऑफ़र जोड़ा जाता है, तो नए अतिरिक्त बुनियादी प्लान या ऑफ़र, इन पुराने डिवाइसों पर नहीं बेचे जा सकेंगे वर्शन पर काम करता है.

  • बैकएंड पर, अगर आप Play Console का यूज़र इंटरफ़ेस (यूआई), इसलिए उन्हें inappproducts की मदद से मैनेज नहीं किया जा सकता एंडपॉइंट से कॉल किया जा सकता है. आपको यह भी करना चाहिए खरीदारी को मैनेज करने के लिए, सदस्यता की खरीदारी की स्थिति बताने वाले नए एंडपॉइंट (purchases.subscriptionsv2.get) पर माइग्रेट करें इन सदस्यताओं के लिए, क्योंकि खरीदारी की पुरानी स्थिति वाला एंडपॉइंट (purchases.subscriptions.get) सिर्फ़ नतीजे दिखाता है पुराने सिस्टम के साथ काम करने वाले बुनियादी प्लान और ऑफ़र को मैनेज करने के लिए ज़रूरी डेटा खरीदारी. सदस्यता की खरीदारी की स्थिति मैनेज करें सेक्शन में ज़्यादा जानकारी देखें.

नए एपीआई की मदद से, अपनी बैकएंड सदस्यता का कैटलॉग मैनेज करें

अगर शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट कैटलॉग को अपने-आप मैनेज किया जाता है, तो Google Play Developer API, आपको शुल्क लेकर सदस्यता देने वाले नए प्रॉडक्ट का इस्तेमाल करना होगा डेफ़िनिशन एंडपॉइंट का इस्तेमाल करके सदस्यताएं, बुनियादी प्लान, और ऑफ़र बनाए और मैनेज किए जा सकते हैं. मई 2022 में, सदस्यता के लिए मिलने वाली सुविधाओं के बारे में पढ़ें गाइड ताकि आप इस रिलीज़ के लिए प्रॉडक्ट कैटलॉग एपीआई में हुए बदलावों के बारे में ज़्यादा जान सकें.

अपने-आप प्रॉडक्ट कैटलॉग मैनेजमेंट मॉड्यूल को माइग्रेट करने के लिए Google Play Billing की सदस्यताओं के तहत, inappproducts नए Subscription Publishing API के साथ, इन्हें मैनेज और पब्लिश करने के लिए एपीआई अपनी सदस्यता का कैटलॉग बनाएं. तीन नए एंडपॉइंट हैं:

  • Monetization.subscriptions शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट मैनेज किए जा सकते हैं.
  • Monetization.basePlans सदस्यता के बुनियादी प्लान को मैनेज करने के लिए.
  • Monetization.offers ताकि बुनियादी प्लान के ऑफ़र मैनेज किए जा सकें.

इन नए एंडपॉइंट में, वे सभी सुविधाएं मौजूद हैं जो सभी आपके कैटलॉग में ये नई सुविधाएं मिलेंगी: बुनियादी प्लान और ऑफ़र के टैग, इलाके के हिसाब से टारगेटिंग, प्रीपेड प्लान वगैरह.

आपको अब भी inappproducts एक बार खरीदे जाने वाले प्रॉडक्ट के लिए, ऐप्लिकेशन में खरीदने के लिए मौजूद प्रॉडक्ट कैटलॉग को मैनेज करने के लिए एपीआई.

आपके ऐप्लिकेशन के ऐसे वर्शन जो अब काम नहीं करते (जैसे, querySkuDetailsAsync()) उन बुनियादी प्लान या ऑफ़र को नहीं बेच पाएंगे जो पुराने सिस्टम के साथ काम नहीं करते. पुराने सिस्टम के साथ काम करने की सुविधा के साथ काम करने वाले ऑफ़र के बारे में जानने के लिए यहां जाएं.

Google Play Billing Library को अपडेट करें

शुल्क लेकर सदस्यता देने वाला नया प्रॉडक्ट कैटलॉग बनाने के बाद, अपने ऐप्लिकेशन को Google Billing Library 5 में माइग्रेट किया जा सकता है. मौजूदा को बदलें Play Billing Library के अपडेट किए गए वर्शन पर डिपेंडेंसी आपके ऐप्लिकेशन की build.gradle फ़ाइल.

dependencies {
    def billingVersion = "6.0.0"

    implementation "com.android.billingclient:billing:$billingVersion"
}

आपका प्रोजेक्ट तुरंत बन जाएगा, भले ही आपने तरीके—Play Billing Library 6 पुराने सिस्टम के साथ काम करती है. SKU का कॉन्सेप्ट को बंद कर दिया गया है, लेकिन यह अब भी मौजूद है, ताकि पोर्टिंग ऐप्लिकेशन को ज़्यादा आसान और इंक्रीमेंटल प्रोसेस को पूरा करने में मदद मिलती है.

बिलिंग क्लाइंट की सुविधा शुरू करें और Google Play से कनेक्ट करें

किसी Android ऐप्लिकेशन से खरीदारी लॉन्च करने के पहले चरण में कोई बदलाव नहीं होगा:

खरीदारी के लिए उपलब्ध प्रॉडक्ट दिखाएं

उपयोगकर्ता के पास जिन ऑफ़र को खरीदने की अनुमति है उन सभी को पाने के लिए:

  • SkuDetailsParams को QueryProductDetailsParams से बदलें
  • BillingClient.querySkuDetailsAsync() कॉल को बदलें BillingClient.queryProductDetailsAsync() का इस्तेमाल करने के लिए

ध्यान दें कि क्वेरी के नतीजे अब SkuDetails के बजाय ProductDetails हैं. हर ProductDetails आइटम में प्रॉडक्ट के बारे में जानकारी होती है (आईडी, टाइटल, टाइप वगैरह). शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट के लिए, ProductDetails इसमें एक List<ProductDetails.SubscriptionOfferDetails> है, जो सदस्यता के ऑफ़र की जानकारी की सूची. एक बार में खरीदे जाने वाले प्रॉडक्ट के लिए, ProductDetails में एक ProductDetails.OneTimePurchaseOfferDetails शामिल है. ये का इस्तेमाल यह तय करने के लिए किया जा सकता है कि लोगों को कौनसे ऑफ़र दिखाए जाएं.

नीचे दिया गया उदाहरण दिखाता है कि आपका ऐप्लिकेशन पहले और बाद में कैसा दिख सकता है ये बदलाव किए जा रहे हैं:

पहले

Kotlin

val skuList = ArrayList<String>()

skuList.add("up_basic_sub")

val params = SkuDetailsParams.newBuilder()

params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS).build()

billingClient.querySkuDetailsAsync(params) {
    billingResult,
    skuDetailsList ->
    // Process the result
}

Java

List<String> skuList = new ArrayList<>();

skuList.add("up_basic_sub");

SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();

params.setSkusList(skuList).setType(SkuType.SUBS).build();

billingClient.querySkuDetailsAsync(params,
    new SkuDetailsResponseListener() {
        @Override
        public void onSkuDetailsResponse(BillingResult billingResult,
                List<SkuDetails> skuDetailsList) {
            // Process the result.
        }
    }
);

बाद में

Kotlin

val productList =
    listOf(
        QueryProductDetailsParams.Product.newBuilder()
            .setProductId("up_basic_sub")
            .setProductType(BillingClient.ProductType.SUBS)
            .build()
    )

val params = QueryProductDetailsParams.newBuilder().setProductList(productList).build()

billingClient.queryProductDetailsAsync(params) {
    billingResult,
    productDetailsList ->
    // Process the result
}

Java

ImmutableList<Product> productList = ImmutableList.of(Product.newBuilder()
                                            .setProductId("up_basic_sub")
                                            .setProductType(ProductType.SUBS)
                                            .build());

QueryProductDetailsParams params = QueryProductDetailsParams.newBuilder()
    .setProductList(productList)
    .build();

billingClient.queryProductDetailsAsync(
        params,
        new ProductDetailsResponseListener() {
                public void onProductDetailsResponse(BillingResult billingResult, List<ProductDetails> productDetailsList) {
                    // Process the result
                }
        }
);

queryProductDetailsAsync के लिए कॉलबैक, List<ProductDetails> दिखाता है. हर ProductDetails आइटम में प्रॉडक्ट के बारे में जानकारी होती है (आईडी, टाइटल, टाइप वगैरह). मुख्य अंतर यह है कि सदस्यता प्रॉडक्ट में अब List<ProductDetails.SubscriptionOfferDetails> भी शामिल है जिसमें उपयोगकर्ता के लिए उपलब्ध सभी ऑफ़र शामिल हों.

Play Billing Library के पिछले वर्शन, Play Billing Library के नए वर्शन के साथ काम नहीं करते ऑब्जेक्ट (सदस्यता, बुनियादी प्लान, ऑफ़र वगैरह), नया सिस्टम हर सदस्यता SKU को पुराने सिस्टम के साथ काम करने वाली एक सुविधा में बदलता है बुनियादी प्लान और ऑफ़र. एक बार खरीदे जाने वाले प्रॉडक्ट के लिए किसी ProductDetails ऑब्जेक्ट में पोर्ट किया गया. एक बार इस्तेमाल किए जाने वाले ऑफ़र की जानकारी जिस प्रॉडक्ट को खरीदने के लिए, getOneTimePurchaseOfferDetails() तरीका.

बहुत कम मामलों में, कुछ डिवाइस ProductDetails और queryProductDetailsAsync() के साथ काम नहीं करते, आम तौर पर, इसके पुराने वर्शन की वजह से होता है Google Play services. यह पक्का करने के लिए कि इस स्थिति के लिए उचित सहायता है, तो isFeatureSupported() PRODUCT_DETAILS के लिए queryProductDetailsAsync पर कॉल करने से पहले सुविधा का इस्तेमाल करें. अगर जवाब यह है OK इस डिवाइस पर यह सुविधा काम करती है. इसलिए, queryProductDetailsAsync() पर कॉल किया जा सकता है. अगर FEATURE_NOT_SUPPORTED जवाब है, तो इसके बजाय, पुराने सिस्टम के साथ काम करने वाले प्रॉडक्ट की उपलब्ध सूची के लिए, querySkuDetailsAsync(). पुराने सिस्टम के साथ काम करने की सुविधा को इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए सुविधाओं के लिए, मई 2022 में सदस्यता की सुविधाओं से जुड़ी गाइड देखें.

ऑफ़र परचेज़ फ़्लो लॉन्च करना

किसी ऑफ़र के लिए परचेज़ फ़्लो को लॉन्च करना, फ़्लो लॉन्च करने जैसा ही है डालें. वर्शन 6 का इस्तेमाल करके खरीदारी का अनुरोध करने के लिए, ये काम करें:

  • BillingFlowParams के लिए SkuDetails का इस्तेमाल करने के बजाय, ProductDetailsParams का इस्तेमाल करें.
  • SubscriptionOfferDetails का इस्तेमाल करके, ऑफ़र की जानकारी ली जा सकती है. जैसे, ऑफ़र आईडी, बुनियादी प्लान का आईडी वगैरह ऑब्जेक्ट है.

उपयोगकर्ता के चुने गए ऑफ़र के हिसाब से प्रॉडक्ट खरीदने के लिए, offerToken खरीदें चुने हुए ऑफ़र का हिस्सा बन जाएगा और उसे ProductDetailsParams ऑब्जेक्ट में पास कर देगा.

BillingFlowParams ऑब्जेक्ट बनाने के बाद, बिलिंग फ़्लो लॉन्च किया जा रहा है BillingClient में कोई बदलाव नहीं होगा.

नीचे दिया गया उदाहरण दिखाता है कि आपका ऐप्लिकेशन पहले और बाद में कैसा दिख सकता है ये बदलाव किए जा रहे हैं:

पहले

Kotlin

// An activity reference from which the billing flow will be launched.
val activity : Activity = ...
// Retrieve a value for "skuDetails" by calling querySkuDetailsAsync().
val billingFlowParams = BillingFlowParams.newBuilder()
                            .setSkuDetails(skuDetails)
                            .build()

val billingResult = billingClient.launchBillingFlow(activity, billingFlowParams)

Java

// An activity reference from which the billing flow will be launched.
Activity activity = ...;
// Retrieve a value for "skuDetails" by calling querySkuDetailsAsync().
BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
        .setSkuDetails(skuDetails)
        .build();

BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams)

बाद में

Kotlin

// An activity reference from which the billing flow will be launched.
val activity : Activity = ...;

val productDetailsParamsList = listOf(
    BillingFlowParams.ProductDetailsParams.newBuilder()
        // retrieve a value for "productDetails" by calling queryProductDetailsAsync()
        .setProductDetails(productDetails)
        // For One-time product, "setOfferToken" method shouldn't be called.
        // For subscriptions, to get the offer token corresponding to the selected
        // offer call productDetails.subscriptionOfferDetails?.get(selectedOfferIndex)?.offerToken
        .setOfferToken(selectedOfferToken)
        .build()
)

val billingFlowParams = BillingFlowParams.newBuilder()
    .setProductDetailsParamsList(productDetailsParamsList)
    .build()

// Launch the billing flow
val billingResult = billingClient.launchBillingFlow(activity, billingFlowParams)

Java

// An activity reference from which the billing flow will be launched.
Activity activity = ...;

ImmutableList<ProductDetailsParams> productDetailsParamsList =
    ImmutableList.of(
        ProductDetailsParams.newBuilder()
             // retrieve a value for "productDetails" by calling queryProductDetailsAsync()
            .setProductDetails(productDetails)
            // For one-time products, "setOfferToken" method shouldn't be called.
            // For subscriptions, to get the offer token corresponding to the selected
            // offer call productDetails.getSubscriptionOfferDetails().get(selectedOfferIndex).getOfferToken()
            .setOfferToken(selectedOfferToken)
            .build()
    );

BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
    .setProductDetailsParamsList(productDetailsParamsList)
    .build();

// Launch the billing flow
BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);

खरीदारी प्रोसेस करना

Google Play Billing Library 6 की मदद से, खरीदारी को प्रोसेस करना पहले जैसा ही है पिछले वर्शन पर ले जाते हैं.

उपयोगकर्ता के मालिकाना हक वाली सभी ऐक्टिव खरीदारी को देखने और नए प्रॉडक्ट के लिए क्वेरी करने के लिए तो ये काम करें:

  • को BillingClient.SkuType मान पास करने के बजाय queryPurchasesAsync(), QueryPurchasesParams ऑब्जेक्ट पास करें जिसमें BillingClient.ProductType वैल्यू हो.

नीचे दिया गया उदाहरण दिखाता है कि आपका ऐप्लिकेशन पहले कैसा दिख सकता है और ये बदलाव करने के बाद:

पहले

Kotlin

billingClient.queryPurchasesAsync(BillingClient.SkuType.SUBS) {
    billingResult,
    purchaseList -> {
        // Process the result
    }
}

Java

billingClient.queryPurchasesAsync(
    BillingClient.SkuType.SUBS,
    new PurchasesResponseListener() {
        public void onQueryPurchasesResponse(
                BillingResult billingResult,
                ListP<urchase >purchases) {
            // process the result
        }
    }
);

बाद में

Kotlin

billingClient.queryPurchasesAsync(
    QueryPurchasesParams.newBuilder()
        .setProductType(BillingClient.ProductType.SUBS)
        .build()
) { billingResult, purchaseList ->
    // Process the result
}

Java

billingClient.queryPurchasesAsync(
    QueryPurchasesParams.newBuilder().setProductType(ProductType.SUBS).build(),
    new PurchasesResponseListener() {
        public void onQueryPurchasesResponse(
                BillingResult billingResult,
                List<Purchase> purchases) {
            // Process the result
        }
    }
);

ऐप्लिकेशन से बाहर की खरीदारी को मैनेज करने का तरीका और रुका हुआ लेन-देन नहीं बदला है.

अपने बैकएंड में नए एपीआई की मदद से, सदस्यता की खरीदारी का स्टेटस मैनेज करें

आपको अपनी सदस्यताओं की खरीदारी के स्टेटस मैनेजमेंट वाले कॉम्पोनेंट को माइग्रेट करना चाहिए आपके बैकएंड में इस नए प्रॉडक्ट की खरीदारी को मैनेज करने के लिए तैयार होना चाहिए देखें. आपकी मौजूदा सदस्यताओं की खरीदारी के स्टेटस को मैनेज करना यह कॉम्पोनेंट बदली गई सदस्यता वाले प्रॉडक्ट के लिए, पहले की तरह काम करना चाहिए से तय किया गया है और यह खरीदारी को मैनेज करने के लिए काफ़ी है पुराने वर्शन के साथ काम करने की सुविधा देता है. हालांकि, इसमें कोई भी नई सुविधा काम नहीं करती.

आपको अपने एपीआई के लिए, नया Subscription Purchases API लागू करना होगा सदस्यताओं की खरीदारी के स्टेटस को मैनेज करने वाला मॉड्यूल, जो खरीदारी की जांच करता है स्थिति. साथ ही, वह आपके बैकएंड में Play Billing की सदस्यता के एनटाइटलमेंट को मैनेज करता है. एपीआई के पुराने वर्शन में, ऐप्लिकेशन को मैनेज करने के लिए ज़रूरी जानकारी नहीं मिलती नए प्लैटफ़ॉर्म पर खरीदारी करते हैं. पिछले वर्शन के बदलावों की जानकारी पाने के लिए, मई 2022 में, सदस्यता की नई सुविधाओं के बारे में जानकारी देने वाली गाइड देखें.

आम तौर पर, जब भी आपको SubscriptionNotification डेवलपर से जुड़ी रीयल-टाइम सूचना को पाने के लिए सदस्यता की स्थिति के बारे में नई जानकारी. आपको अपनी नए वर्शन के साथ purchases.subscriptions.get पर कॉल Subscription Purchases API, purchases.subscriptionsv2.get. यहां एक नया संसाधन है जिसका नाम है SubscriptionPurchaseV2 जिससे काफ़ी नए मॉडल में, सदस्यताओं की खरीदारी के एनटाइटलमेंट को मैनेज करने के बारे में जानकारी.

यह नया एंडपॉइंट, शुल्क लेकर सदस्यता देने वाले आपके सभी प्रॉडक्ट के लिए स्थिति दिखाता है और आपकी हर खरीदारी पर, भले ही उन्हें बेचने वाला ऐप्लिकेशन कौनसा हो और जब प्रॉडक्ट के बारे में जानकारी दी गई थी (मई 2022 की रिलीज़ से पहले या बाद में), इसलिए, माइग्रेशन के बाद आपको अपनी सदस्यता के सिर्फ़ इस वर्शन की ज़रूरत होगी खरीदारी के स्टेटस को मैनेज करने वाला मॉड्यूल.

उपयोगकर्ता की सदस्यता की खरीदारी में बदलाव करना

Play Billing Library 5 और इससे पहले के वर्शन में, ProrationMode का इस्तेमाल, उपयोगकर्ता की सदस्यता की खरीदारी में बदलाव लागू करने के लिए किया गया था. जैसे, अपग्रेड के लिए या डाउनग्रेड करने का विकल्प मिलता है. इसे बंद कर दिया गया है और इससे बदल दिया गया है ReplacementMode वर्शन 6 में उपलब्ध है.

सदस्यता की कीमत में होने वाले बदलावों को मैनेज करना

अब काम न करने वाले launchPriceConfirmationFlow API को यहां हटा दिया गया है Play Billing Library 6. विकल्पों के लिए, कीमत में बदलाव देखें गाइड देखें.

Play Billing Library की गड़बड़ियों को ठीक करना

यह जानकारी देने के लिए, Play Billing Library 6 में एक नया NETWORK_ERROR कोड जोड़ा गया है उपयोगकर्ता के डिवाइस और Google के बीच के नेटवर्क कनेक्शन की समस्याएं Play सिस्टम. कोड SERVICE_TIMEOUT और SERVICE_UNAVAILABLE. ज़्यादा जानकारी के लिए, बिलिंग नतीजों को मैनेज करना देखें कोड.

रुके हुए लेन-देन मैनेज करें

'Play Billing लाइब्रेरी' के वर्शन 6.0.0 और उसके बाद के वर्शन में, कोई ऑर्डर नहीं बनाया जाता अधूरी खरीदारी का आईडी. इन खरीदारी के लिए, ऑर्डर आईडी इसके बाद भरा जाता है: खरीदारी को PURCHASED राज्य. पक्का करें कि आपके इंटिग्रेशन में ऑर्डर आईडी की ज़रूरत सिर्फ़ लेन-देन पूरा हो गया है. हालांकि, आपके पास अब भी अपने रिकॉर्ड करते हैं. अधूरी खरीदारी को मैनेज करने के बारे में ज़्यादा जानने के लिए, Google Play पर जाएं 'Play Billing लाइब्रेरी' के इंटिग्रेशन गाइड और खरीदारी की लाइफ़साइकल मैनेजमेंट गाइड.