सिर्फ़ अन्य बिलिंग सिस्टम के लिए, इन-ऐप्लिकेशन इंटिग्रेशन के दिशा-निर्देश

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

Play Billing Library का सेटअप

अपने Android ऐप्लिकेशन में, Play Billing Library की डिपेंडेंसी जोड़ें. टूल का इस्तेमाल करने के लिए अन्य बिलिंग सिस्टम के एपीआई, आपको 6.1 या इसके बाद के वर्शन का इस्तेमाल करना होगा.

Google Play से कनेक्ट करना

इंटिग्रेशन की प्रोसेस में शुरुआती चरण वही हैं जिनकी जानकारी इसमें दी गई है Google Play Billing की इंटिग्रेशन गाइड पढ़ें. बिलिंग क्लाइंट का इस्तेमाल शुरू करना:

  • आपको यह बताने के लिए नया तरीका कॉल करना होगा कि आपका ऐप्लिकेशन सिर्फ़ अन्य बिलिंग सिस्टम: enableAlternativeBillingOnly.

नीचे दिए गए उदाहरण में, इनके साथ BillingClient शुरू करने के बारे में बताया गया है संशोधन:

Kotlin


var billingClient = BillingClient.newBuilder(context)
    .enableAlternativeBillingOnly()
    .build()

Java

private BillingClient billingClient = BillingClient.newBuilder(context)
    .enableAlternativeBillingOnly()
    .build();

BillingClient शुरू करने के बाद, आपको इस डिवाइस से कनेक्ट करना होगा Google Play का इस्तेमाल करें.

उपलब्धता की जांच की जा रही है

आपके ऐप्लिकेशन को यह पुष्टि करनी चाहिए कि अन्य बिलिंग सिस्टम की सुविधा, सिर्फ़ इस कॉल पर उपलब्ध है isAlternativeBillingOnlyAvailableAsync.

अगर अन्य बिलिंग सिस्टम का इस्तेमाल किया जा रहा है, तो यह एपीआई BillingResponseCode.OK दिखाएगा उपलब्ध हैं. अपने ऐप्लिकेशन को कैसे करना चाहिए, इसके बारे में विवरण के लिए जवाब मैनेज करना देखें दूसरे रिस्पॉन्स कोड का जवाब दे सकती हैं.

Kotlin


billingClient.isAlternativeBillingOnlyAvailableAsync(object:
    AlternativeBillingOnlyAvailabilityListener {
        override fun onAlternativeBillingOnlyAvailabilityResponse(
            billingResult: BillingResult) {
            if (billingResult.responseCode !=  BillingResponseCode.OK) {
                // Handle failures such as retrying due to network errors,
                // handling alternative billing only being unavailable, etc.
                return
            }

            // Alternative billing only is available. Continue with steps in
            // the guide.
        }
    });

Java


billingClient.isAlternativeBillingOnlyAvailable(
    new AlternativeBillingOnlyAvailabilityListener() {
        @Override
        public void onAlternativeBillingOnlyAvailabilityResponse(
            BillingResult billingResult) {
            if (billingResult.getResponseCode() != BillingResponseCode.OK) {
                 // Handle failures such as retrying due to network errors,
                 // handling alternative billing only being unavailable,
                 // etc.
                return;
            }

            // Alternative billing only is available. Continue with steps in
            // the guide.
        }
    });

उपयोगकर्ताओं के लिए जानकारी वाला डायलॉग बॉक्स

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

Kotlin


// An activity reference from which the alternative billing only information
// dialog will be launched.
val activity : Activity = ...;

val listener : AlternativeBillingOnlyInformationDialogListener =
    AlternativeBillingOnlyInformationDialogListener { 
        override fun onAlternativeBillingOnlyInformationDialogResponse(
            billingResult: BillingResult) {
            // check billingResult
        }
}

val billingResult =
    billingClient.showAlternativeBillingOnlyInformationDialog(activity,
        listener)

Java


// An activity reference from which the alternative billing only information
// dialog will be launched.
Activity activity = ...;

AlternativeBillingOnlyInformationDialogListener listener =
    new AlternativeBillingOnlyInformationDialogListener() {
        @Override
        public void onAlternativeBillingOnlyInformationDialogResponse(
            BillingResult billingResult) {
                // check billingResult
            }
    };

BillingResult billingResult =
    billingClient.showAlternativeBillingOnlyInformationDialog(activity,
        listener);

अगर इस तरीके से BillingResponseCode.OK लौटाता है, तो आपका ऐप्लिकेशन आगे बढ़ सकता है लेन-देन के साथ. BillingResponseCode.USER_CANCELED के मामले में आपके ऐप्लिकेशन को showAlternative BillingOnlyDetailsDialog को कॉल करेगा, ताकि उपयोगकर्ता से फिर से संपर्क करें. अन्य रिस्पॉन्स कोड के लिए, रिस्पॉन्स मैनेज करना सेक्शन में दिया गया है.

Google Play को लेन-देन की जानकारी देना

किसी अन्य बिलिंग सिस्टम से किए गए सभी लेन-देन की रिपोर्ट होनी चाहिए अपने बैकएंड से Google Play Developer API को कॉल करके Google Play पर 24 घंटे, externalTransactionToken देने के लिए, एपीआई की जानकारी नीचे दी गई है. हर एक के लिए एक नया ExternalTransactionToken जनरेट करना चाहिए और हर नई सदस्यता के साथ-साथ मौजूदा सदस्यता है. लेन-देन की शिकायत करने का तरीका जानें externalTransactionToken पाने के लिए, बैकएंड इंटिग्रेशन गाइड देखें.

Kotlin

billingClient.createAlternativeBillingOnlyReportingDetailsAsync(object:
    AlternativeBillingOnlyReportingDetailsListener {
        override fun onAlternativeBillingOnlyTokenResponse(
            billingResult: BillingResult,
            alternativeBillingOnlyReportingDetails:
                AlternativeBillingOnlyReportingDetails?) {
            if (billingResult.responseCode !=  BillingResponseCode.OK) {
                // Handle failures such as retrying due to network errors.
                return
            }

            val externalTransactionToken =
                alternativeBillingOnlyReportingDetails?
                    .externalTransactionToken

            // Send transaction token to backend and report to Google Play.
        }
    });

Java


billingClient.createAlternativeBillingOnlyReportingDetailsAsync(
    new AlternativeBillingOnlyReportingDetailsListener() {
        @Override
        public void onAlternativeBillingOnlyTokenResponse(
            BillingResult billingResult,
            @Nullable AlternativeBillingOnlyReportingDetails
                alternativeBillingOnlyReportingDetails) {
            if (billingResult.getResponseCode() != BillingResponseCode.OK) {
                // Handle failures such as retrying due to network errors.
                return;
            }

            String transactionToken =
                alternativeBillingOnlyReportingDetails
                .getExternalTransactionToken();

            // Send transaction token to backend and report to Google Play.
        }
    });

रिस्पॉन्स मैनेज करना

ऊपर दिए गए तरीके isAlternativeBillingOnlyAvailableAsync(), showAlternativeBillingOnlyInformationDialog(), और createAlternativeBillingOnlyReportingDetailsAsync() वापस आ सकता है Non- BillingResponseCode.OK से गड़बड़ियों की स्थिति में जवाब. इसका सुझाव गड़बड़ियों को ठीक करने का तरीका नीचे बताया गया है:

  • ERROR: यह एक अंदरूनी गड़बड़ी है. लेन-देन पूरा न करें. कॉल करके फिर से कोशिश करें जानकारी दिखाने के लिए showAlternativeBillingOnlyInformationDialog() अगली बार उपयोगकर्ता से संपर्क करने पर खरीदारी करने की कोशिश करता है.
  • FEATURE_NOT_SUPPORTED: अन्य बिलिंग सिस्टम के एपीआई, इन एपीआई के साथ काम नहीं करते मौजूदा डिवाइस पर Play Store से. लेन-देन पूरा न करें.
  • USER_CANCELED: लेन-देन के साथ आगे न बढ़ें. कॉल करें showAlternativeBillingOnlyInformationDialog() फिर से दिखाएं जब अगली बार उपयोगकर्ता किसी नीति का उल्लंघन करने की कोशिश करेगा, तो उपयोगकर्ता को जानकारी देने वाला डायलॉग बॉक्स खरीदारी.
  • BILLING_UNAVAILABLE: यह लेन-देन, विकल्प के तौर पर नहीं किया जा सकता की बिलिंग की अनुमति नहीं है. इसलिए, इस कार्यक्रम के तहत आगे नहीं बढ़ाया जाना चाहिए. यह है ऐसा इसलिए, क्योंकि उपयोगकर्ता इस कार्यक्रम में शामिल होने की ज़रूरी शर्तें पूरी करने वाले देश में नहीं है या आपका खाता कार्यक्रम में सफलतापूर्वक रजिस्टर नहीं हुआ है. अगर यह है बाद में, Play कंसोल में अपने रजिस्ट्रेशन की स्थिति देखें.
  • DEVELOPER_ERROR: अनुरोध में कोई गड़बड़ी है. डीबग मैसेज का इस्तेमाल करें का इस्तेमाल करें. इससे पहले गड़बड़ी की पहचान करके उसे ठीक किया जा सकेगा.
  • NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE: ये हैं कुछ समय के लिए होने वाली ऐसी गड़बड़ियां हो सकती हैं जिनकी फिर से कोशिश की जानी चाहिए. ऐसे मामले में SERVICE_DISCONNECTED ने इस तारीख से पहले, Google Play के साथ अपना खाता फिर से जोड़ा है फिर से कोशिश की जा रही है.

अन्य बिलिंग सिस्टम की जांच करें

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

अगले चरण

इन-ऐप्लिकेशन इंटिग्रेशन के पूरा होने के बाद, आप अपने ऐप्लिकेशन बैकएंड.