इस गाइड में, ज़रूरी शर्तें पूरी करने वाले ऐप्लिकेशन में, बिलिंग के किसी अन्य तरीके (यानी, उपयोगकर्ता की पसंद के बिना) को उपलब्ध कराने के लिए, एपीआई इंटिग्रेट करने का तरीका बताया गया है. इन प्रोग्राम के बारे में ज़्यादा जानने के लिए, बिलिंग के अन्य तरीके के बारे में जानकारी लेख पढ़ें. इसमें, ज़रूरी शर्तें पूरी करने और भौगोलिक दायरे के बारे में भी बताया गया है.
Play Billing Library का सेटअप
अपने Android ऐप्लिकेशन में, Play Billing Library की डिपेंडेंसी जोड़ें. बिलिंग के अन्य तरीके के एपीआई का इस्तेमाल करने के लिए, आपको वर्शन 6.1 या इससे नया वर्शन इस्तेमाल करना होगा.
Google Play से कनेक्ट करना
इंटिग्रेशन की प्रोसेस के शुरुआती चरण, Google Play Billing के इंटिग्रेशन की गाइड में बताए गए चरणों की तरह ही होते हैं. हालांकि, BillingClient को शुरू करते समय, कुछ बदलाव किए जाते हैं:
- आपको यह बताने के लिए एक नया तरीका अपनाना होगा कि आपका ऐप्लिकेशन, बिलिंग के किसी अन्य तरीके का ही इस्तेमाल करता है:
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 के मामले में, आपके ऐप्लिकेशन को showAlternativeBillingOnlyInformationDialog को कॉल करके, उपयोगकर्ता को डायलॉग फिर से दिखाना चाहिए. अन्य रिस्पॉन्स कोड के लिए, जवाब मैनेज करने से जुड़ा सेक्शन देखें.
Google Play को लेन-देन की रिपोर्ट करना
बिलिंग के किसी अन्य तरीके से किए गए सभी लेन-देन की रिपोर्ट, Google Play को 24 घंटे के अंदर, अपने बैकएंड से Google Play Developer API को कॉल करके देनी होगी. इसके लिए, 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() गड़बड़ियों के मामले में
BillingResponseCode.OK के अलावा अन्य जवाब दिखा सकते हैं. गड़बड़ियों को ठीक करने के लिए, यहां दिए गए तरीके अपनाएं:
ERROR: यह एक इंटरनल गड़बड़ी है. लेन-देन की प्रोसेस को आगे न बढ़ाएं. फिर से कोशिश करें. इसके लिए,showAlternativeBillingOnlyInformationDialog()को कॉल करें, ताकि अगली बार खरीदारी करने की कोशिश करने पर, उपयोगकर्ता को जानकारी वाला डायलॉग दिखे.FEATURE_NOT_SUPPORTED: मौजूदा डिवाइस पर, Play Store में बिलिंग के अन्य तरीके के एपीआई काम नहीं करते. लेन-देन की प्रोसेस को आगे न बढ़ाएं.USER_CANCELED: लेन-देन की प्रोसेस को आगे न बढ़ाएं. उपयोगकर्ता के अगली बार खरीदारी करने की कोशिश करने पर, उसे जानकारी वाला डायलॉग दिखाने के लिए,showAlternativeBillingOnlyInformationDialog()को फिर से कॉल करें.BILLING_UNAVAILABLE: यह लेन-देन, बिलिंग के किसी अन्य तरीके के लिए ज़रूरी शर्तें पूरी नहीं करता. इसलिए, इसे इस प्रोग्राम के तहत आगे नहीं बढ़ाया जाना चाहिए. ऐसा इसलिए है, क्योंकि उपयोगकर्ता इस प्रोग्राम के लिए ज़रूरी शर्तें पूरी करने वाले देश में नहीं है या आपके खाते को इस प्रोग्राम में रजिस्टर नहीं किया गया है. अगर दूसरी वजह है, तो Play Developer Console में अपने रजिस्ट्रेशन की स्थिति देखें.DEVELOPER_ERROR: अनुरोध में कोई गड़बड़ी है. आगे बढ़ने से पहले, गड़बड़ी की पहचान करने और उसे ठीक करने के लिए, डीबग मैसेज का इस्तेमाल करें.NETWORK_ERROR, SERVICE_DISCONNECTED, SERVICE_UNAVAILABLE: ये अस्थायी गड़बड़ियां हैं. इनके लिए, फिर से कोशिश करनी चाहिए.SERVICE_DISCONNECTEDके मामले में, फिर से कोशिश करने से पहले, Google Play से कनेक्शन फिर से बनाएं.
बिलिंग के किसी अन्य तरीके की जांच करना
बिलिंग के किसी अन्य तरीके के इंटिग्रेशन की जांच करने के लिए, लाइसेंस की जांच करने वाले लोगों का इस्तेमाल करें. लाइसेंस की जांच करने वाले लोगों के खातों से शुरू किए गए लेन-देन के लिए, आपको इनवॉइस नहीं भेजा जाएगा. लाइसेंस की जांच करने वाले लोगों को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन का लाइसेंस देने के साथ इन-ऐप्लिकेशन बिलिंग की जांच करना लेख पढ़ें.
अगले चरण
इन-ऐप्लिकेशन इंटिग्रेशन पूरा करने के बाद, अब अपने बैकएंड को इंटिग्रेट किया जा सकता है.