क्षेत्र के हिसाब से प्रॉडक्ट की कीमत तय करके, नए बाज़ारों में पहुंचें

1. परिचय

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

दर्शक

यह कोडलैब, Android ऐप्लिकेशन डेवलपर के लिए है. इसमें बताया गया है कि एक बार खरीदने के लिए उपलब्ध प्रॉडक्ट के कैटलॉग को मैनेज करने के लिए, Play Console का इस्तेमाल कैसे किया जा सकता है.

आपको यह जानकारी मिलेगी...

  • वन-टाइम प्रॉडक्ट का ऑब्जेक्ट मॉडल.
  • वन-टाइम प्रॉडक्ट के कैटलॉग को मैनेज करने के लिए, Google Play Console को नेविगेट करने और उसका इस्तेमाल करने का तरीका.
  • वन-टाइम प्रॉडक्ट की जानकारी का अलग-अलग भाषाओं में बिना किसी शुल्क के अनुवाद कैसे करें.
  • वन-टाइम प्रॉडक्ट के लिए, क्षेत्र के हिसाब से उपलब्धता और कीमत को कॉन्फ़िगर करने का तरीका.
  • वन-टाइम प्रॉडक्ट की जानकारी के लिए क्वेरी करने के लिए, Play Billing Library के एपीआई का इस्तेमाल कैसे करें.
  • Play Billing Lab का इस्तेमाल करके, वन-टाइम प्रॉडक्ट को टेस्ट करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी...

2. वन-टाइम प्रॉडक्ट का प्रीमियर

वन-टाइम प्रॉडक्ट के ऑब्जेक्ट मॉडल की मदद से, प्रॉडक्ट को बेचने के तरीके में ज़्यादा सहूलियत मिलती है. साथ ही, उन्हें मैनेज करते समय आने वाली समस्याएं कम होती हैं. ऑब्जेक्ट मॉडल, इन दोनों बातों को प्राथमिकता देता है कि कौनसा प्रॉडक्ट बेचा जा रहा है और कैसे बेचा जा रहा है. इससे एक ही प्रॉडक्ट के लिए अलग-अलग प्राइस पॉइंट सेट किए जा सकते हैं. साथ ही, इन्हें लोगों को अलग-अलग तरीके से बेचा जा सकता है. ऑब्जेक्ट मॉडल में, तीन लेवल का क्रम होता है:

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

इस डायग्राम में, वन-टाइम प्रॉडक्ट ऑब्जेक्ट मॉडल दिखाया गया है.

codelab-otp-model.png पहली इमेज: एक बार इस्तेमाल किया जा सकने वाला ऑब्जेक्ट मॉडल.

ज़्यादा जानकारी के लिए, वन-टाइम प्रॉडक्ट की खास जानकारी देखें.

3. सैंपल ऐप्लिकेशन बनाना

इस कोडलैब में, एक बार इस्तेमाल होने वाले प्रॉडक्ट को मैनेज करने का तरीका बताने के लिए, Android ऐप्लिकेशन के सैंपल का इस्तेमाल किया गया है. सैंपल ऐप्लिकेशन को पूरी तरह से काम करने वाले Android ऐप्लिकेशन के तौर पर डिज़ाइन किया गया है. इसमें पूरा सोर्स कोड होता है, जो इन पहलुओं को दिखाता है:

  • ऐप्लिकेशन को पीबीएल के साथ इंटिग्रेट करना
  • वन-टाइम प्रॉडक्ट और उनसे जुड़े खरीदारी के विकल्पों को फ़ेच करना
  • देश/इलाके के हिसाब से तय की गई कीमत के साथ खरीदारी के फ़्लो चलाना

नीचे दिए गए डेमो वीडियो में दिखाया गया है कि सैंपल ऐप्लिकेशन को डिप्लॉय और चलाने के बाद, वह कैसा दिखेगा और कैसे काम करेगा.

अगर आपको वन-टाइम प्रॉडक्ट और Play Billing Library (PBL) के बारे में पहले से पता है, तो सैंपल ऐप्लिकेशन डाउनलोड करें और उसका इस्तेमाल करें.

ज़रूरी शर्तें

संपल ऐप्लिकेशन बनाने और उसे डिप्लॉय करने से पहले, ये काम करें:

बनाएं

बिल्ड के इस चरण का मकसद, सैंपल ऐप्लिकेशन की साइन की गई Android ऐप्लिकेशन बंडल फ़ाइल जनरेट करना है.

Android ऐप्लिकेशन बंडल जनरेट करने के लिए, यह तरीका अपनाएं:

  1. GitHub से सैंपल ऐप्लिकेशन डाउनलोड करें.
  2. सैंपल ऐप्लिकेशन बनाएं. सैंपल ऐप्लिकेशन बनाने से पहले, उसके पैकेज का नाम बदलें. इसके बाद, उसे बनाएं. अगर आपके Play Console खाते में अन्य ऐप्लिकेशन के पैकेज मौजूद हैं, तो पक्का करें कि सैंपल ऐप्लिकेशन के लिए दिया गया पैकेज का नाम यूनीक हो.

    ध्यान दें: सैंपल ऐप्लिकेशन बनाने पर, सिर्फ़ एक APK फ़ाइल बनती है. इसका इस्तेमाल लोकल टेस्टिंग के लिए किया जा सकता है. हालांकि, ऐप्लिकेशन चलाने पर प्रॉडक्ट और उनकी कीमतें नहीं दिखती हैं, क्योंकि Play Console में प्रॉडक्ट कॉन्फ़िगर नहीं किए गए हैं.
  3. हस्ताक्षर किया गया Android ऐप्लिकेशन बंडल जनरेट करें.
    1. अपलोड की और कीस्टोर जनरेट करना
    2. अपने ऐप्लिकेशन पर अपलोड पासकोड से साइन करना
    3. Play ऐप्लिकेशन साइनिंग की सुविधा को कॉन्फ़िगर करना

अगला चरण, Android ऐप्लिकेशन बंडल को Google Play Console पर अपलोड करना है.

4. Play Console में वन-टाइम प्रॉडक्ट बनाना

Google Play Console में एक बार खरीदे जाने वाले प्रॉडक्ट बनाने के लिए, आपके पास Play Console में कोई ऐप्लिकेशन होना चाहिए. Play Console में एक ऐप्लिकेशन बनाएं. इसके बाद, पहले से बनाए गए साइन किए गए ऐप्लिकेशन बंडल को अपलोड करें.

ऐप्लिकेशन बनाना

ऐप्लिकेशन बनाने के लिए:

  1. अपने डेवलपर खाते का इस्तेमाल करके, Google Play Console में लॉग-इन करें.
  2. ऐप्लिकेशन बनाएं पर क्लिक करें. इससे ऐप्लिकेशन बनाएं पेज खुलता है.
  3. ऐप्लिकेशन का नाम डालें, डिफ़ॉल्ट भाषा चुनें, और ऐप्लिकेशन से जुड़ी अन्य जानकारी डालें.
  4. ऐप्लिकेशन बनाएं पर क्लिक करें. इससे Google Play Console में एक ऐप्लिकेशन बन जाएगा.

अब सैंपल ऐप्लिकेशन का साइन किया गया ऐप्लिकेशन बंडल अपलोड किया जा सकता है.

साइन किया गया ऐप्लिकेशन बंडल अपलोड करना

  1. हस्ताक्षर किया गया ऐप्लिकेशन बंडल, Google Play Console के इंटरनल टेस्ट ट्रैक पर अपलोड करें. अपलोड करने के बाद ही, Play Console में कमाई करने से जुड़ी सुविधाओं को कॉन्फ़िगर किया जा सकता है.
  2. जांच करें और रिलीज़ करें > टेस्टिंग > इंटरनल रिलीज़ > नई रिलीज़ बनाएं पर क्लिक करें.
  3. रिलीज़ का नाम डालें और साइन की गई एपीके फ़ाइल अपलोड करें.
  4. आगे बढ़ें पर क्लिक करें. इसके बाद, सेव करें और पब्लिश करें पर क्लिक करें.

अब वन-टाइम प्रॉडक्ट बनाए जा सकते हैं.

वन-टाइम प्रॉडक्ट सेट करना

वन-टाइम प्रॉडक्ट सेट करने के लिए:

  1. Google Play Console में, बाईं ओर मौजूद नेविगेशन मेन्यू में जाकर, Google Play का इस्तेमाल करके कमाई करें > प्रॉडक्ट > वन-टाइम प्रॉडक्ट पर जाएं.
  2. वन-टाइम प्रॉडक्ट सेट करें पर क्लिक करें.
  3. प्रॉडक्ट के बारे में यह जानकारी डालें:
    • प्रॉडक्ट आईडी: कोई यूनीक आईडी डालें. उदाहरण के लिए, trending_movie_1.
    • (ज़रूरी नहीं) टैग: काम के टैग जोड़ें.
    • नाम: प्रॉडक्ट का नाम डालें. उदाहरण के लिए, Product Movie.
    • ब्यौरा: प्रॉडक्ट का ब्यौरा डालें. उदाहरण के लिए, Product Description.
    प्रॉडक्ट के नाम और ब्यौरे का मैन्युअल तरीके से अनुवाद करना
    डिफ़ॉल्ट रूप से, प्रॉडक्ट का नाम और ब्यौरा अंग्रेज़ी (अमेरिका) – en-US भाषा में होता है. आपके पास अन्य भाषाओं में नाम और ब्यौरे को मैन्युअल तरीके से डालने का विकल्प भी होता है. जानकारी डालने के लिए, अनुवाद मैनेज करें पर क्लिक करें. इसके बाद, वे भाषाएं चुनें जिनके लिए आपको अनुवाद किया गया टेक्स्ट डालना है. इसके बाद, लागू करें पर क्लिक करें. यहां दी गई इमेज में, अनुवाद मैनेज करें विकल्प दिखाया गया है:manage-translations.pngदूसरी इमेज: अनुवाद मैनेज करें.

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

    ध्यान दें: इस कोडलैब के लिए, आइकॉन फ़ील्ड और टैक्स, कानूनी समझौते, और प्रोग्राम सेक्शन को कॉन्फ़िगर करने की ज़रूरत नहीं है.
  4. आगे बढ़ें पर क्लिक करें.
  5. खरीदारी का विकल्प जोड़ें और कॉन्फ़िगर करें कि वह किस देश/इलाके में उपलब्ध है. वन-टाइम प्रॉडक्ट के लिए, खरीदारी का कम से कम एक विकल्प होना चाहिए. इससे यह तय होता है कि कैसे ऐक्सेस दिया जाएगा, इसकी कीमत क्या होगी, और यह किस देश/इलाके में उपलब्ध होगा. इस कोडलैब के लिए, हम प्रॉडक्ट के लिए स्टैंडर्ड खरीदें विकल्प जोड़ेंगे.

    खरीदारी का विकल्प सेक्शन में, यह जानकारी डालें:
    • खरीदारी के विकल्प का आईडी: कोई यूनीक आईडी डालें. उदाहरण के लिए buy-movie.
    • खरीदारी का टाइप: खरीदें को चुनें.
    • (ज़रूरी नहीं) टैग: इस खरीदारी के विकल्प के लिए खास टैग जोड़ें.
    • (ज़रूरी नहीं) ऐडवांस विकल्पों को कॉन्फ़िगर करने के लिए, ऐडवांस विकल्प पर क्लिक करें. इस कोडलैब के लिए, ऐडवांस विकल्पों के कॉन्फ़िगरेशन को स्किप किया जा सकता है.
  6. इसके बाद, आपको खरीदारी के विकल्प के लिए, क्षेत्र के हिसाब से उपलब्धता और कीमत कॉन्फ़िगर करनी होगी. देश/इलाके के हिसाब से उपलब्धता में, उन देशों/इलाकों की जानकारी दी जाती है जहां आपका प्रॉडक्ट उपलब्ध है. इसमें वे देश/इलाके भी शामिल होते हैं जहां आपका ऐप्लिकेशन अभी तक पब्लिश नहीं हुआ है. खरीदारी का विकल्प, डिफ़ॉल्ट रूप से सभी देशों/इलाकों में उपलब्ध होता है.

    उपलब्धता और कीमत सेक्शन में जाकर, उपलब्धता और ऐक्सेस में बदलाव करें > 'उपलब्ध नहीं है' के तौर पर सेट करें पर क्लिक करें. ध्यान दें कि सभी क्षेत्र डिफ़ॉल्ट रूप से उपलब्ध है पर सेट होते हैं.
    1. France, Spain, और United States को छोड़कर, बाकी सभी देशों को चुनें. इसके बाद, 'उपलब्ध नहीं है' के तौर पर सेट करें पर क्लिक करें.
    2. सभी इलाके ड्रॉप-डाउन से, उपलब्ध देश और इलाके चुनें. इसमें सिर्फ़ वे देश दिखते हैं जिन्हें आपने पिछले चरण में चुना था.
    3. उपलब्ध हर देश के लिए, कीमत कॉलम में मौजूद 'बदलाव करें' आइकॉन पर क्लिक करें. इससे कीमत में बदलाव करने के लिए एक डायलॉग दिखता है. नीचे दी गई कीमतें डालें और सेव करें:
      • France के लिए, 1,000 रुपये डालें
      • Spain के लिए, 8 यूरो डालें
      • United States के लिए, 1,300 रुपये डालें
  7. चालू करें पर क्लिक करें. इससे आपका वन-टाइम प्रॉडक्ट, खरीदें विकल्प के साथ उपलब्ध हो जाता है.

ध्यान दें: क्षेत्र के हिसाब से तय की गई कीमत की मुद्रा, उपयोगकर्ता के Play खाते में सेट किए गए देश के हिसाब से दिखती है. उदाहरण के लिए, अगर उपयोगकर्ता के Play खाते में देश के तौर पर फ़्रांस सेट है, तो प्रॉडक्ट की एक बार चुकाई जाने वाली कीमत यूरो में दिखेगी.

वन-टाइम प्रॉडक्ट बनाने के बारे में वीडियो

इस वीडियो में, वन-टाइम प्रॉडक्ट बनाने के वे चरण दिखाए गए हैं जिनके बारे में पहले बताया गया है.

किराये पर लेने का विकल्प जोड़ना

अब, पहले से बनाए गए वन-टाइम प्रॉडक्ट के लिए, किराये पर लेने का विकल्प जोड़ें.

  1. Google Play Console में, बाईं ओर मौजूद नेविगेशन मेन्यू में जाकर, Google Play का इस्तेमाल करके कमाई करें > प्रॉडक्ट > वन-टाइम प्रॉडक्ट पर जाएं.
  2. पिछले चरण में बनाए गए trending_movie_1 प्रॉडक्ट आईडी वाले प्रॉडक्ट के लिए, राइट ऐरो पर क्लिक करें.
  3. खरीदारी का विकल्प जोड़ें पर क्लिक करें.
  4. खरीदारी का विकल्प सेक्शन में, यह जानकारी डालें:
    • खरीदारी के विकल्प का आईडी: rent-movie डालें.
    • खरीदारी का टाइप: किराये पर लें चुनें.
    • किराए पर लेने की अवधि: 48 घंटे चुनें.
    • किराया शुरू होने की अवधि: 24 घंटे चुनें.
    • (ज़रूरी नहीं) टैग: इस खरीदारी के विकल्प के लिए खास टैग जोड़ें.
    • (ज़रूरी नहीं) ऐडवांस विकल्पों को कॉन्फ़िगर करने के लिए, ऐडवांस विकल्प पर क्लिक करें. इस कोडलैब के लिए, ऐडवांस विकल्पों के कॉन्फ़िगरेशन को स्किप किया जा सकता है.
  5. इसके बाद, खरीदारी के विकल्प की तरह ही, किराये पर लेने के विकल्प के लिए भी देश/इलाके के हिसाब से उपलब्धता कॉन्फ़िगर करें. पिछले सेक्शन में छठा और सातवां चरण देखें. देश/इलाके के हिसाब से कीमतें सेट करते समय, किराये के लिए अलग कीमत सेट करें. उदाहरण के लिए:
    • France - 500 रुपये
    • Spain - 400 रुपये
    • United States - 700 रुपये.

5. वन-टाइम प्रॉडक्ट की जानकारी का अनुवाद करना

Google Play Console में उपलब्ध मशीन से अनुवाद करने की सुविधा का इस्तेमाल करके, अपने प्रॉडक्ट के नाम और ब्यौरे का अनुवाद बिना किसी शुल्क के किया जा सकता है.

टाइटल और जानकारी का अनुवाद करने के लिए, यह तरीका अपनाएं:

  1. Google Play Console में, बाईं ओर मौजूद नेविगेशन मेन्यू में जाकर, उपयोगकर्ता बढ़ाएं > अनुवाद > स्टोर और ऐप्लिकेशन में खरीदे जा सकने वाले प्रॉडक्ट पर जाएं.
  2. ऑर्डर बनाएं पर क्लिक करें.
  3. बिना किसी शुल्क के मशीन से अनुवाद कराने की सेवा विकल्प चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  4. इन भाषाओं में अनुवाद करें में जाकर, फ़्रेंच - fr-FR और स्पैनिश -es-ES को चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  5. वन-टाइम प्रॉडक्ट और सदस्यताएं चुनें. इसके बाद, अनुवाद करें और अनुवाद देखें पर क्लिक करें. इससे डिसक्लेमर बैनर दिखता है. डिसक्लेमर को स्वीकार करें.
  6. अब आपको अनुवाद की गई भाषाओं की सूची दिखेगी. किसी भाषा के लिए, समीक्षा करें और लागू करें पर क्लिक करें. टेक्स्ट की समीक्षा करें. इसके बाद, सभी अनुवाद लागू करें पर क्लिक करें. अनुवाद के लिए चुनी गई सभी भाषाओं के लिए यह चरण दोहराएं.

अनुवाद हो जाने के बाद, Play Console में जाकर अनुवाद किए गए टेक्स्ट में बदलाव किया जा सकता है. अनुवाद किए गए टेक्स्ट में बदलाव करने के लिए:

  1. वन-टाइम प्रॉडक्ट > [आपका वन-टाइम प्रॉडक्ट] > वन-टाइम प्रॉडक्ट में बदलाव करें > वन-टाइम प्रॉडक्ट की जानकारी में बदलाव करें पेज खोलें.
  2. भाषा के ड्रॉप-डाउन से, अपनी पसंद की भाषा चुनें. इससे चुनी गई भाषा में टेक्स्ट दिखता है. इस इमेज में, अनुवाद किए गए टेक्स्ट में बदलाव करने के लिए भाषा चुनने का तरीका दिखाया गया है:

    edit-translations.png तीसरी इमेज: अनुवाद किए गए टेक्स्ट में बदलाव करें.
  3. ज़रूरत के हिसाब से टेक्स्ट में बदलाव करें. इसके बाद, बदलावों को सेव करें पर क्लिक करें.

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

post-translation.pngचौथी इमेज: आपके ऐप्लिकेशन में अनुवाद किया गया टेक्स्ट.

अनुवाद कॉन्फ़िगर करने से जुड़ा वीडियो

इस वीडियो में, अनुवाद कॉन्फ़िगरेशन के उन चरणों को दिखाया गया है जिनके बारे में पहले बताया गया है.

6. पीबीएल के साथ इंटिग्रेट करना

अपने ऐप्लिकेशन को Play Billing Library (पीबीएल) के साथ इंटिग्रेट करने के लिए, यह तरीका अपनाएं:

  1. सैंपल ऐप्लिकेशन में Play Billing Library की डिपेंडेंसी जोड़ें.
    dependencies {
    val billing_version = "8.0.0"
    
    implementation("com.android.billingclient:billing-ktx:$billing_version")
    }
    
  2. BillingClient को शुरू करें. BillingClient, क्लाइंट SDK टूल है. यह आपके ऐप्लिकेशन पर मौजूद होता है और Play Billing Library से कम्यूनिकेट करता है. यहां दिए गए कोड स्निपेट में, बिलिंग क्लाइंट को शुरू करने का तरीका बताया गया है.
    private BillingClient createBillingClient() {
    return BillingClient.newBuilder(activity)
        .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
        // For one-time products, add a listener to process and acknowledge the purchases. This will notify
        // Google the purchase was processed.
        // For client-only apps, use billingClient.acknowledgePurchase().
        // If you have a secure backend, you must acknowledge purchases on your server using the
        // server-side API.
        // See https://developer.android.com/google/play/billing/security#acknowledge
        // In this sample snippet purchases aren't processed. You must
        // implement your business logic to process and acknowledge the purchases.
        .setListener((billingResult, purchases) -> {})
        .enableAutoServiceReconnection()
        .build();
     }
    
  3. Google Play से कनेक्ट करें.नीचे दिए गए कोड स्निपेट से पता चलता है कि Google Play से कैसे कनेक्ट किया जाता है.
    /**
    * Starts the billing connection with Google Play. This method should be called exactly once
    * before any other methods in this class.
    *
    * @param productList The list of products to query for after the connection is established.
    */
    public void startBillingConnection(List<Product> productList) {
        billingClient.startConnection(
            new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(BillingResult billingResult) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                Log.d(TAG, "Billing Client Connection Successful");
                queryProductDetails(productList);
                } else {
                Log.e(TAG, "Billing Client Connection Failed: " + billingResult.getDebugMessage());
                listener.onBillingSetupFailed(billingResult); // Propagate the error to the listener to show a message to the user.
                }
            }
    
            @Override
            public void onBillingServiceDisconnected() {
                Log.e(TAG, "Billing Client Connection Lost");
                listener.onBillingError("Billing Connection Lost");
            }
            });
    }
    
  4. वन-टाइम प्रॉडक्ट की जानकारी फ़ेच करें.अपने ऐप्लिकेशन को PBL के साथ इंटिग्रेट करने के बाद, आपको अपने ऐप्लिकेशन में वन-टाइम प्रॉडक्ट की जानकारी फ़ेच करनी होगी. यहां दिए गए कोड स्निपेट में बताया गया है कि अपने ऐप्लिकेशन में वन-टाइम प्रॉडक्ट की जानकारी कैसे फ़ेच करें.
    private void queryProductDetails(List<Product> productList) {
        QueryProductDetailsParams queryProductDetailsParams =
            QueryProductDetailsParams.newBuilder().setProductList(productList).build();
    
        billingClient.queryProductDetailsAsync(
            queryProductDetailsParams,
            new ProductDetailsResponseListener() {
            @Override
            public void onProductDetailsResponse(
                BillingResult billingResult, QueryProductDetailsResult productDetailsResponse) {
                if (billingResult.getResponseCode() == BillingResponseCode.OK) {
                List<ProductDetails> productDetailsList =
                    productDetailsResponse.getProductDetailsList();
                    listener.onProductDetailsResponse(productDetailsList);
                } else {
                Log.e(TAG, "QueryProductDetailsAsync Failed: " + billingResult.getDebugMessage());
                listener.onBillingError("Query Products Failed: " + billingResult.getResponseCode());
                }
            }
            });
    }
    
    ProductDetails में वन-टाइम प्रॉडक्ट (इस उदाहरण में trending_movie_1) फ़ेच करने पर, आपको इस तरह का जवाब मिलता है:
    {
        "productId": "trending_movie_1",
        "type": "inapp",
        "title": "Purrfect Mayhem: The Rewind Protocol (Movies All Day | Play Samples)",
        "name": "Purrfect Mayhem: The Rewind Protocol",
        "description": "Dr. Arid Thorne and a smart tiger named Yolo find a mysterious tape. It's a \"Rewind Protocol\" to fix time. A shadowy group, the Clockinator, hunts them to seize the tape's power.",
        "skuDetailsToken": "<---skuDetailsToken--->",
        "oneTimePurchaseOfferDetails": {},
        "oneTimePurchaseOfferDetailsList": [
            {
                "priceAmountMicros": 13000000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$13.00",
                "offerIdToken": "<---buy offerIdToken --->",
                "purchaseOptionId": "buy-option",
                "offerTags": [
                    "adventure",
                    "mystery"
                ]
            },
            {
                "priceAmountMicros": 7000000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$7.00",
                "offerIdToken": "<---rent offerIdToken--->",
                "purchaseOptionId": "rent-option",
                "offerTags": [
                    "adventure",
                    "mystery"
                ],
                "rentalDetails": {
                    "rentalPeriod": "P30D",
                    "rentalExpirationPeriod": "PT24H"
                }
            }
        ]
    }
    
    ध्यान दें कि oneTimePurchaseOfferDetailsList में, खरीदने और किराये पर लेने के विकल्प उपलब्ध हैं. इस सूची में खरीदारी के दो विकल्प (buy-option और rent-option) हैं, जिन्हें Play Console में कॉन्फ़िगर किया गया था. हर खरीदारी के विकल्प को उसके offerIdToken से यूनीक तरीके से पहचाना जा सकता है.
  5. किराये पर लेने और खरीदने के ऑफ़र के लिए, ऑफ़र टोकन फ़ेच करता है. छठे चरण में बिलिंग फ़्लो लॉन्च करने के लिए, आपको ऑफ़र टोकन की ज़रूरत होगी.
    @Override
    public void onProductDetailsResponse(List<ProductDetails> productDetailsList) {
    
        if (productDetailsList != null && !productDetailsList.isEmpty()) {
    
            // Iterate over all details of the queried product in step 4.
            for (ProductDetails productDetails : productDetailsList) {
    
                // Get the list of all the offers associated with the product.
                List<ProductDetails.OneTimePurchaseOfferDetails> offerDetailsList =
                        productDetails.getOneTimePurchaseOfferDetailsList();
    
                // Iterate over the offer details
                for (ProductDetails.OneTimePurchaseOfferDetails offerDetails : offerDetailsList) {
    
                    // For a Rent purchase option, the
                    // offerDetails.getRentalDetails() method returns
                    // the rent information. If this information is present,
                    // the offer corresponds to a Rent purchsae option.
                    if (offerDetails.getRentalDetails() != null) {
                        rentFormattedPrice = offerDetails.getFormattedPrice();
    
                        // Get the offerIdToken for the Rent purchase option
                        rentOfferToken = offerDetails.getOfferToken();
                        rentMovieTags = offerDetails.getOfferTags();
                    }
                    // If the offerDetails.getRentalDetails() returns
                    // null, the offer corresponds to a Buy purchsae option.
                    else {
                        buyFormattedPrice = offerDetails.getFormattedPrice();
    
                        // Get the offerIdToken for the Buy purchase option
                        buyOfferToken = offerDetails.getOfferToken();
                        buyMovieTags = offerDetails.getOfferTags();
                    }
                }
                updateUIButtons();
                return;
    
            }
        } else {
            Log.e(TAG, "No product details found for " + productId);
        }
    }
    
  6. बिलिंग फ़्लो लॉन्च करें.
    /**
     * Launches the billing flow for the product with the given offer token.
    *
    * @param activity The activity instance from which the billing flow will be launched.
    * @param productDetails The product details of the product to purchase.
    * @param offerToken The offer token of the product to purchase.
    * @return The result of the billing flow.
    */
    public void launchPurchase(Activity activity, ProductDetails productDetails, String offerToken) {
        ImmutableList<BillingFlowParams.ProductDetailsParams> productDetailsParamsList =
            ImmutableList.of(
                BillingFlowParams.ProductDetailsParams.newBuilder()
                    .setProductDetails(productDetails)
                    .setOfferToken(offerToken)
                    .build());
        BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
            .setProductDetailsParamsList(productDetailsParamsList)
            .build();
        billingClient.launchBillingFlow(activity, billingFlowParams);
    }
    

अहम जानकारी: डेवलपर से जुड़ी रीयल-टाइम सूचनाएं (आरटीडीएन) भी सेट अप की जा सकती हैं. इससे, आपको फिर से खरीदारी करने के लिए ग्राहकों को टारगेट करने वाले कैंपेन और खरीदारी के लाइफ़साइकल को मैनेज करने की अन्य रणनीतियां लागू करने में मदद मिलेगी. आरटीडीएन सेट अप करने और सटीक ट्रैकिंग और एनटाइटलमेंट के साथ सूचनाएं मैनेज करने का तरीका जानने के लिए, हमारा सुझाव है कि आप Play Billing के इंटिग्रेशन का ज़्यादा से ज़्यादा फ़ायदा पाएं कोडलैब देखें

7. खरीदारी के विकल्पों को आज़माना

लाइव ऐप्लिकेशन में वन-टाइम प्रॉडक्ट उपलब्ध कराने से पहले, लाइसेंस टेस्टर और Play Billing Lab का इस्तेमाल करके, PBL इंटिग्रेशन को टेस्ट किया जा सकता है.

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

ज़रूरी शर्तें

खरीदारी के विकल्पों के लिए, देश/इलाके के हिसाब से तय की गई कीमत की जांच करना

खरीदारी के विकल्पों के लिए, देश/इलाके के हिसाब से कीमत तय करने की सुविधा को आज़माने के लिए, यह तरीका अपनाएं:

  1. Play Billing Lab ऐप्लिकेशन खोलें. इसके बाद, लाइसेंस टेस्टर के तौर पर लॉग इन करें.
  2. कॉन्फ़िगरेशन सेटिंग में जाकर, बदलाव करें पर क्लिक करें. इसके बाद, देश France को चुनें और लागू करें पर क्लिक करें. यहां हम Play में मौजूद देश का नाम चुन रहे हैं. इससे यह तय होगा कि ऐप्लिकेशन में कौनसी मुद्रा दिखाई जाएगी.
  3. सैंपल ऐप्लिकेशन को बंद करें और फिर से खोलें. अब इसमें France के लिए, खरीदने और किराये पर लेने की मुद्रा यूरो में दिखनी चाहिए.

किसी दूसरे देश के लिए टेस्ट करने के लिए, दूसरे चरण में Spain चुनें. इसके बाद, तीसरा चरण पूरा करें.

Play Billing Lab की टेस्टिंग से जुड़ा वीडियो

इस वीडियो में, सैंपल ऐप्लिकेशन का इस्तेमाल करके क्षेत्र के हिसाब से कीमत की जांच करने का तरीका बताया गया है.

8. अगले चरण

संदर्भ दस्तावेज़

9. बधाई हो!

बधाई हो! आपने Google Play Console में जाकर, वन-टाइम प्रॉडक्ट बनाया है. साथ ही, खरीदारी का विकल्प कॉन्फ़िगर किया है और Play Billing Lab का इस्तेमाल करके, खरीदारी के फ़्लो की जांच की है. अब आपको एक बार की जाने वाली खरीदारी के लिए, Google Play के फ़्लेक्सिबल प्रॉडक्ट कैटलॉग के बारे में ज़्यादा जानकारी मिल गई है.

सर्वे

इस कोडलैब के बारे में आपके सुझाव, शिकायत या राय हमारे लिए बहुत अहम है. कृपया कुछ समय निकालकर, हमारे सर्वे में हिस्सा लें.