External Offers Program के लिए इन-ऐप्लिकेशन इंटिग्रेशन के दिशा-निर्देश

इस गाइड में बताया गया है कि बाहरी ऑफ़र को बेहतर बनाने के लिए, एपीआई इंटिग्रेट करने का तरीका ज़रूरी शर्तें पूरी करने वाले ऐप्लिकेशन और क्षेत्रों में. External Offers Program के बारे में ज़्यादा जानने के लिए इसमें ज़रूरी शर्तें और भौगोलिक दायरे के साथ, प्रोग्राम से जुड़ी ज़रूरी शर्तें पढ़ें.

Play Billing Library का सेटअप

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

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

इंटिग्रेशन की प्रोसेस में शुरुआती चरण वही हैं जिनकी जानकारी इसमें दी गई है बिलिंग इंटिग्रेशन गाइड में भी सेव किया जाएगा. BillingClient को शुरू करना:

  • आपको एक नए तरीके को कॉल करना होगा. इससे यह पता चलेगा कि आपको बाहरी आईडी का इस्तेमाल करना है ऑफ़र: enableExternalOffer.

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

Kotlin

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

Java

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

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

उपलब्धता जाँचें

आपके ऐप्लिकेशन को यह पुष्टि करनी चाहिए कि कॉल करके, बाहरी ऑफ़र उपलब्ध कराए जा सकते हैं isExternalOfferAvailableAsync.

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

Kotlin


billingClient.isExternalOfferAvailableAsync(
  object : ExternalOfferAvailabilityListener {
    override fun onExternalOfferAvailabilityResponse(
      billingResult: BillingResult) {
        if (billingResult.responseCode !=  BillingResponseCode.OK) {
            // Handle failures such as retrying due to network errors,
            // handling external offers unavailable, etc.
            return
        }

        // External offers are available. Continue with steps in the
        // guide.
})

Java


billingClient.isExternalOfferAvailableAsync(
  new ExternalOfferAvailabilityListener() {
    @Override
    public void onExternalOfferAvailabilityResponse(
      BillingResult billingResult) {
        if (billingResult.getResponseCode() != BillingResponseCode.OK) {
            // Handle failures such as retrying due to network errors,
            // handling external offers being unavailable, etc.
            return;
        }
        // External offers are available. Continue with steps in the
        // guide.
      }

});

बाहरी लेन-देन का टोकन तैयार करना

Google Play को बाहरी लेन-देन की शिकायत करने के लिए, आपके पास लेन-देन का टोकन, Play Billing लाइब्रेरी से जनरेट हुआ है. एक नया बाहरी जब भी उपयोगकर्ता किसी बाहरी वेबसाइट पर जाएगा, तो ट्रांज़ैक्शन टोकन जनरेट होना चाहिए External Offers API की मदद से वेबसाइट पर जाएं. इसके लिए, createExternalOfferReportingDetailsAsync एपीआई. यह टोकन उपयोगकर्ता को ऐप्लिकेशन से बाहर भेजने से ठीक पहले जनरेट होता है. इसे ऐसा होना चाहिए कभी भी कैश मेमोरी में सेव नहीं किया जाना चाहिए. साथ ही, हर बार उपयोगकर्ता को निर्देश देने पर, एक नया जनरेट किया जाना चाहिए ऐप से बाहर.

Kotlin


billingClient.createExternalOfferReportingDetailsAsync(
  object : ExternalOfferReportingDetailsListener {
    override fun onExternalOfferReportingDetailsResponse(
      billingResult: BillingResult,
      externalOfferReportingDetails: ExternalOfferReportingDetails?) {
        if (billingResult.responseCode !=  BillingResponseCode.OK) {
            // Handle failures such as retrying due to network errors.
            return
        }
        val externalTransactionToken =
            externalOfferReportingDetails?.externalTransactionToken
        // Persist the transaction token locally. Pass it to the external
        // website when showExternalOfferInformationDialog is called.
    }
})

Java


billingClient.createExternalOfferReportingDetailsAsync(
  new ExternalOfferReportingDetailsListener() {
    @Override
    public void onExternalOfferReportingDetailsResponse(
      BillingResult billingResult,
      @Nullable ExternalOfferReportingDetails
        externalOfferReportingDetails) {
        if (billingResult.getResponseCode() != BillingResponseCode.OK) {
            // Handle failures such as retrying due to network errors.
            return;
        }

        String transactionToken =
          externalOfferReportingDetails.getExternalTransactionToken();

        // Persist the external transaction token locally. Pass it to the
        // external website when showExternalOfferInformationDialog is
        // called.
      }
});

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

बाहरी ऑफ़र के साथ इंटिग्रेट करने के लिए, ज़रूरी शर्तें पूरी करने वाले आपके ऐप्लिकेशन को एक जानकारी दिखानी होगी स्क्रीन जो उपयोगकर्ताओं को यह समझने में सहायता करती है कि उन्हें बाहर भेजा जाने वाला है ऐप्लिकेशन को किसी बाहरी वेबसाइट पर ले जाना. जानकारी वाली स्क्रीन लोगों को इस तरह दिखनी चाहिए: किसीshowExternalOfferInformationDialog बाहरी ऑफ़र को हर बार लागू किया जा सकता है.

Kotlin


// An activity reference from which the external offers information dialog
// will be launched.
val activity : Activity = ...;

val listener : ExternalOfferInformationDialogListener =
  ExternalOfferInformationDialogListener {
      override fun onExternalOfferInformationDialogResponse(
        billingResult: BillingResult){
        // Check billingResult
    }
}

val billingResult = billingClient.showExternalOfferInformationDialog(
  activity, listener)

Java


// An activity reference from which the external offers information dialog
// will be launched.
Activity activity = ...;

ExternalOfferInformationDialogListener listener =
  new ExternalOfferInformationDialogListener() {
    @Override
    public void onExternalOfferInformationDialogResponse(
      BillingResult billingResult) {
        if (billingResult.responseCode !=  BillingResponseCode.OK) {
          // Handle failures such as retrying due to network errors.
        }
        // Open the external website, passing along the external transaction
        // token as a URL parameter. If the user purchases an item, be sure
        // to report the transaction to Google Play.
      }
}

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

अगर इस तरीके से BillingResponseCode.OK दिखता है, तो आपका ऐप्लिकेशन आगे बढ़ सकता है उपयोगकर्ता को बाहरी वेबसाइट पर ले जाता हो. अगर यह तरीका इस्तेमाल करने पर BillingResponseCode.USER_CANCELED, आपके ऐप्लिकेशन को वेबसाइट.

Google Play से लेन-देन की शिकायत करना

सभी बाहरी लेन-देन की जानकारी Google Play को देनी होगी अपने बैकएंड से Google Play Developer API को कॉल करें. बाहरी लेन-देन को रिपोर्ट करते समय यह बताना ज़रूरी है कि externalTransactionToken को createExternalOfferReportingDetailsAsync एपीआई. अगर कोई उपयोगकर्ता कई उपयोग कर रहे हैं, तो आप उसी हर खरीदारी की शिकायत करने के लिए externalTransactionToken. किसी विज्ञापन की शिकायत करने का तरीका जानने के लिए लेन-देन के लिए, बैकएंड इंटिग्रेशन गाइड देखें.

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

कोई गड़बड़ी होने पर, isExternalOfferAvailableAsync तरीके, createExternalOfferReportingDetailsAsync, और showExternalOfferInformationDialog इनके अलावा अन्य जवाब दे सकता है BillingResponseCode.OK. इन रिस्पॉन्स कोड को इस तरह मैनेज करें:

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

बाहरी ऑफ़र की जांच करें

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

अगले चरण

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