इस दस्तावेज़ में, Play Billing Library (पीबीएल) की एक से ज़्यादा प्रॉडक्ट वाली सुविधा के साथ अपने ऐप्लिकेशन को इंटिग्रेट करने का तरीका बताया गया है.
एक बार इस्तेमाल होने वाले प्रॉडक्ट (ओटीपी) के लिए मल्टी-प्रॉडक्ट सुविधा की मदद से, एक बार इस्तेमाल होने वाले कई प्रॉडक्ट को एक यूनिट में जोड़ा जा सकता है. इसके बाद, बंडल किए गए इन प्रॉडक्ट को एक साथ खरीदा, बिल किया, और मैनेज किया जा सकता है. प्रॉडक्ट की खरीदारी को बढ़ावा देने के लिए, इन बंडल किए गए ओटीपी के लिए छूट वाले ऑफ़र भी बनाए जा सकते हैं.
ज़रूरी बातें
वन-टाइम प्रॉडक्ट बंडल बनाते समय, इन बातों का ध्यान रखें:
- वन-टाइम प्रॉडक्ट बंडल में सदस्यताएं शामिल नहीं की जा सकतीं.
- एक बार खरीदे जाने वाले प्रॉडक्ट बंडल में, डिजिटल कॉन्टेंट और सेवा का कॉम्बिनेशन नहीं हो सकता.
- बंडल किए गए वन-टाइम प्रॉडक्ट, तुरंत डाउनलोड करने के लिए उपलब्ध होने चाहिए. उदाहरण के लिए, वन-टाइम प्रॉडक्ट बंडल को प्री-ऑर्डर नहीं किया जा सकता, क्योंकि यह तुरंत डाउनलोड करने के लिए उपलब्ध नहीं होता.
- वन-टाइम प्रॉडक्ट के लिए मल्टी-प्रॉडक्ट, किराये पर खरीदने के विकल्प के साथ काम नहीं करता.
Play Billing Library के साथ इंटिग्रेट करना
इस सेक्शन में यह माना गया है कि आपको पीबीएल के इंटिग्रेशन के शुरुआती चरणों के बारे में पता है. जैसे, अपने ऐप्लिकेशन में पीबीएल डिपेंडेंसी जोड़ना, BillingClient को शुरू करना, और Google Play से कनेक्ट करना. इस सेक्शन में, पीबीएल इंटिग्रेशन के उन पहलुओं पर फ़ोकस किया गया है जो एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की जाने वाली खरीदारी के लिए खास तौर पर ज़रूरी हैं.
खरीदारी का फ़्लो लॉन्च करना
एक से ज़्यादा वन-टाइम प्रॉडक्ट के लिए, खरीदारी का फ़्लो लॉन्च करने के लिए, यह तरीका अपनाएं:
QueryProductDetailsParams.Builder.setProductList तरीके का इस्तेमाल करके, वन-टाइम प्रॉडक्ट की एक सूची बनाएं.
BillingClient.queryProductDetailsAsync
तरीके का इस्तेमाल करके, वन-टाइम प्रॉडक्ट की जानकारी पाएं.यहां दिए गए सैंपल में, वन-टाइम प्रॉडक्ट के लिए, कई ऑफ़र के साथ खरीदारी का फ़्लो लॉन्च करने का तरीका बताया गया है:
Java
billingClient.queryProductDetailsAsync( queryProductDetailsParams, new ProductDetailsResponseListener() { public void onProductDetailsResponse( BillingResult billingResult, QueryProductDetailsResult productDetailsResult) { // check billingResult // … // process productDetailsList returned by QueryProductDetailsResult ImmutableList
productDetailsList = productDetailsResult.getProductDetailsList(); for (ProductDetails productDetails : productDetailsList) { for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails : productDetails.getOneTimePurchaseOfferDetailsList()) { // … } } } }); हर वन-टाइम प्रॉडक्ट के लिए,
ProductDetails
ऑब्जेक्ट सेट करें.BillingFlowParams.Builder.setProductDetailsParamsList
तरीके का इस्तेमाल करके, वन-टाइम प्रॉडक्ट की जानकारी दें.BillingFlowParams
क्लास, खरीदारी के फ़्लो की जानकारी देती है.यहां दिए गए सैंपल में, एक बार किए जाने वाले पेमेंट वाले कई प्रॉडक्ट के लिए बिलिंग फ़्लो लॉन्च करने का तरीका बताया गया है:
Java
BillingClient billingClient = BillingClient.newBuilder() // set other options .build(); // ProductDetails obtained from queryProductDetailsAsync(). ProductDetails productDetails1 = ...; ProductDetails productDetails2 = ...; ArrayList
productDetailsList = new ArrayList<>(); productDetailsList.add(productDetails1); productDetailsList.add(productDetails2); BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setProductDetailsParamsList(productDetailsList) .build(); billingClient.launchBillingFlow(billingFlowParams);
खरीदारी की प्रोसेस करना
एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की जाने वाली खरीदारी को प्रोसेस करने का तरीका, एक प्रॉडक्ट के लिए ओटीपी से की जाने वाली खरीदारी को प्रोसेस करने के तरीके जैसा ही है. इसके बारे में Google Play Billing Library को अपने ऐप्लिकेशन में इंटिग्रेट करना लेख में बताया गया है. दोनों में सिर्फ़ यह अंतर है कि एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की जाने वाली खरीदारी के लिए, आपको सिर्फ़ एक प्रॉडक्ट के बजाय सभी प्रॉडक्ट के लिए एनटाइटलमेंट देना होगा. इससे उपयोगकर्ता को एक ही खरीदारी में कई एनटाइटलमेंट मिल पाएंगे.
एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी की मदद से की गई खरीदारी में कई आइटम मिलते हैं. इन्हें Google Play Billing Library में Purchase.getProducts()
का इस्तेमाल करके वापस पाया जा सकता है. इसके बाद, Google Play Developer API के purchases.products.get
में मौजूद lineItems
सूची का इस्तेमाल करके वापस पाया जा सकता है.
रीयल-टाइम डेवलपर सूचनाएं
एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की जाने वाली खरीदारी के लिए, RTDN में sku
फ़ील्ड की वैल्यू नहीं दी गई है.
एक से ज़्यादा प्रॉडक्ट के लिए, ओटीपी की मदद से की गई खरीदारी. इसलिए, खरीदारी का डेटा पाने के लिए Play Developer API का इस्तेमाल किया जा सकता है. साथ ही, इसमें मौजूद सभी आइटम देखे जा सकते हैं.
रिफ़ंड
एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी की मदद से की गई खरीदारी में, उपयोगकर्ता अलग-अलग आइटम के लिए रिफ़ंड का अनुरोध नहीं कर सकते. साथ ही, आपके पास भी अलग-अलग आइटम के लिए रिफ़ंड जारी करने का विकल्प नहीं होता. हालांकि, एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी की खरीदारी के पूरे पैसे के रिफ़ंड का अनुरोध किया जा सकता है और रिफ़ंड दिया जा सकता है. अगर आपको किसी उपयोगकर्ता के लिए, एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की गई खरीदारी रद्द करनी है, तो खरीदारी से जुड़े सभी एनटाइटलमेंट रद्द कर दिए जाएंगे.
वित्तीय रिपोर्टिंग और समाधान
कमाई की रिपोर्ट का इस्तेमाल करके, एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की गई खरीदारी का मिलान, Google Payoffs और Play पर किए गए लेन-देन से करें. लेन-देन की हर लाइन आइटम का एक ऑर्डर आईडी होता है. एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की गई खरीदारी के मामले में, कमाई और अनुमानित बिक्री की रिपोर्ट में, हर लेन-देन के लिए अलग-अलग लाइनें शामिल होंगी. जैसे, शुल्क, टैक्स, और रिफ़ंड. इन सभी के लिए एक ही ऑर्डर आईडी होगा.
Play Console में डैशबोर्ड के लिए:
कंसोल के वित्तीय रिपोर्टिंग सेक्शन में दिखाए गए रेवेन्यू के आंकड़े, अलग-अलग प्रॉडक्ट के हिसाब से बांटे जाते हैं.
ऑर्डर मैनेजमेंट में, एक से ज़्यादा प्रॉडक्ट के लिए ओटीपी से की गई खरीदारी की जानकारी दिखती है. साथ ही, खरीदे गए सामान की सूची भी दिखती है. ऑर्डर मैनेजमेंट की मदद से, किसी उपयोगकर्ता की खरीदारी को रद्द किया जा सकता है, उसका ऐक्सेस वापस लिया जा सकता है या उसे पूरा रिफ़ंड दिया जा सकता है.