वन-टाइम प्रॉडक्ट के लिए, पहले से ऑर्डर करने के ऑफ़र जोड़ना

1. परिचय

इस कोडलैब में, आपको वन-टाइम प्रॉडक्ट (ओटीपी) बनाने और उसके लिए पहले से ऑर्डर करने का ऑफ़र जोड़ने पर फ़ोकस करना होगा.

ध्यान दें: इस कोडलैब को शुरू करने से पहले, आपको पहले से ऑर्डर करने की सुविधा का ऐक्सेस पाने का अनुरोध करना होगा. इसके लिए, वन-टाइम प्रॉडक्ट के लिए ईएपी में दिलचस्पी दिखाने वाला फ़ॉर्म भरें.

दर्शक

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

ज़रूरी शर्त

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

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

  • वन-टाइम प्रॉडक्ट के लिए, पहले से ऑर्डर करने के ऑफ़र बनाने के लिए, Google Play Console का इस्तेमाल कैसे करें.
  • वन-टाइम प्रॉडक्ट और पहले से ऑर्डर करने के ऑफ़र की जानकारी के लिए, Play Billing Library के एपीआई का इस्तेमाल कैसे करें.

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

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

इस कोडलैब में, एक सैंपल 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 पर अपलोड करना है.

3. 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 में कमाई करने से जुड़ी सुविधाओं को कॉन्फ़िगर किया जा सकता है.
    1. जांच करें और रिलीज़ करें > टेस्टिंग > इंटरनल रिलीज़ > नई रिलीज़ बनाएं पर क्लिक करें.
    2. रिलीज़ का नाम डालें और साइन की गई एपीके फ़ाइल अपलोड करें.
    3. आगे बढ़ें पर क्लिक करें. इसके बाद, सेव करें और पब्लिश करें पर क्लिक करें.

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

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

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

  1. Google Play Console में सैंपल ऐप्लिकेशन खोलें. इसके बाद, Google Play का इस्तेमाल करके कमाई करें > प्रॉडक्ट > वन-टाइम प्रॉडक्ट पर जाएं.
  2. वन-टाइम प्रॉडक्ट सेट करें पर क्लिक करें.
  3. प्रॉडक्ट के बारे में यह जानकारी डालें:
    • प्रॉडक्ट आईडी: कोई यूनीक आईडी डालें. उदाहरण के लिए, upcoming_movie_1.
    • (ज़रूरी नहीं) टैग: काम के टैग जोड़ें.
    • नाम: प्रॉडक्ट का नाम डालें. उदाहरण के लिए, Product Movie.
    • ब्यौरा: प्रॉडक्ट का ब्यौरा डालें. उदाहरण के लिए, Product Description.
    • (ज़रूरी नहीं है) आइकॉन इमेज जोड़ें: अपने प्रॉडक्ट को दिखाने वाला आइकॉन अपलोड करें.
    ध्यान दें: इस कोडलैब के लिए, टैक्स, उससे जुड़े नियमों का पालन, और प्रोग्राम सेक्शन को कॉन्फ़िगर करने की ज़रूरत नहीं है.
  4. आगे बढ़ें पर क्लिक करें.
  5. खरीदारी का विकल्प जोड़ें और देश/इलाके के हिसाब से उसकी उपलब्धता कॉन्फ़िगर करें. वन-टाइम प्रॉडक्ट के लिए, खरीदारी का कम से कम एक विकल्प होना चाहिए. इससे यह तय होता है कि कैसे ऐक्सेस दिया जाएगा, इसकी कीमत क्या होगी, और यह किस देश/इलाके में उपलब्ध होगा. इस कोडलैब के लिए, हम प्रॉडक्ट के लिए स्टैंडर्ड खरीदें विकल्प जोड़ेंगे.खरीदारी का विकल्प सेक्शन में, यह जानकारी डालें:
    • खरीदारी के विकल्प का आईडी: कोई यूनीक आईडी डालें. उदाहरण के लिए, buy-movie.
    • खरीदारी का टाइप: खरीदें को चुनें.
    • (ज़रूरी नहीं) टैग: खरीदारी के इस विकल्प के लिए खास तौर पर टैग जोड़ें.
    • (ज़रूरी नहीं) ऐडवांस विकल्पों को कॉन्फ़िगर करने के लिए, ऐडवांस विकल्प पर क्लिक करें. इस कोडलैब के लिए, ऐडवांस विकल्पों के कॉन्फ़िगरेशन को स्किप किया जा सकता है.
  6. इसके बाद, आपको खरीदारी के विकल्प के लिए, क्षेत्र के हिसाब से उपलब्धता और कीमत कॉन्फ़िगर करनी होगी. देश/इलाके के हिसाब से उपलब्धता में, उन देशों/इलाकों की जानकारी दी जाती है जहां आपका प्रॉडक्ट उपलब्ध है. इसमें वे देश/इलाके भी शामिल होते हैं जहां आपका ऐप्लिकेशन अभी तक पब्लिश नहीं हुआ है. खरीदारी का विकल्प, डिफ़ॉल्ट रूप से सभी देशों/इलाकों में उपलब्ध होता है.उपलब्धता और कीमत सेक्शन में जाकर, उपलब्धता और ऐक्सेस में बदलाव करें पर क्लिक करें.
    1. 'उपलब्ध नहीं है' के तौर पर सेट करें को चुनें.
    ध्यान दें कि सभी इलाके अपने-आप चुने जाते हैं और उन्हें उपलब्ध है के तौर पर सेट किया जाता है.
    1. सिर्फ़ United States देश को अनचेक करें. इसके बाद, 'उपलब्ध नहीं है' के तौर पर सेट करें पर क्लिक करें. अब वन-टाइम प्रॉडक्ट सिर्फ़ United States में उपलब्ध होगा.
    2. सभी इलाके ड्रॉप-डाउन में जाकर, उपलब्ध देश और इलाके चुनें. आपको सिर्फ़ United States दिखेगा.
    3. कीमत आइकॉन पर क्लिक करें. इससे कीमत सेट करने के लिए एक डायलॉग बॉक्स दिखता है.
    4. 1000 रुपये डालें. इसके बाद, सेव करें पर क्लिक करें.
  7. ड्राफ़्ट के तौर पर सेव करें पर क्लिक करें.

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

पहले से ऑर्डर करने का ऑफ़र जोड़ना

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

पहले से ऑर्डर करने का ऑफ़र जोड़ने के लिए, ये दो चरण पूरे करने होंगे:

  1. पहले से ऑर्डर करने के ऑफ़र के लिए, खरीदें विकल्प तैयार करें.
  2. खरीदारी के विकल्प के लिए, पहले से ऑर्डर करने का ऑफ़र जोड़ें.

पहले से ऑर्डर करने के ऑफ़र के लिए, 'खरीदा जा सकता है' विकल्प तैयार करना

  1. Google Play Console में सैंपल ऐप्लिकेशन खोलें. इसके बाद, Google Play का इस्तेमाल करके कमाई करें > प्रॉडक्ट > वन-टाइम प्रॉडक्ट पर जाएं.
  2. वन-टाइम प्रॉडक्ट पेज पर जाकर, अपने प्रॉडक्ट (upcoming_movie_1) के आगे मौजूद राइट ऐरो पर क्लिक करें. इससे वन-टाइम प्रॉडक्ट में बदलाव करें पेज खुलता है.
  3. आपने पहले जो buy-movie खरीदारी का विकल्प बनाया था उसके लिए, राइट ऐरो पर क्लिक करें. इससे खरीदारी के विकल्प में बदलाव करें पेज खुलता है.
  4. उपलब्धता और ऐक्सेस में बदलाव करें पर क्लिक करें. इसके बाद, 'उपलब्ध है' के तौर पर सेट करें और लोगों को पहले से ऑर्डर करने की अनुमति दें को चुनें.
  5. सभी इलाके ड्रॉप-डाउन से, उपलब्ध देश और इलाके चुनें. इसमें सिर्फ़ वे United States दिखने चाहिए जिन्हें आपने पहले कॉन्फ़िगर किया था.
  6. देश चुनें. इसके बाद, 'सिर्फ़ पहले से ऑर्डर करने के लिए उपलब्ध है' के तौर पर सेट करें पर क्लिक करें.
  7. सेव करें पर क्लिक करें.

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

पहले से ऑर्डर करने का ऑफ़र जोड़ना

  1. Google Play Console में सैंपल ऐप्लिकेशन खोलें. इसके बाद, Google Play का इस्तेमाल करके कमाई करें > प्रॉडक्ट > वन-टाइम प्रॉडक्ट पर जाएं.
  2. वन-टाइम प्रॉडक्ट पेज पर, अपने प्रॉडक्ट (upcoming_movie_1) के लिए ऑफ़र जोड़ें > पहले से ऑर्डर करें पर क्लिक करें. इससे पहले से ऑर्डर करने की सुविधा जोड़ें पेज खुलता है.
  3. 'पहले से ऑर्डर करें' सुविधा की जानकारी डालें:
    • पहले से ऑर्डर करने का आईडी: preorder-offer-1 डालें.
    • (ज़रूरी नहीं) छूट जोड़ें: आपके पास कोई नहीं, प्रतिशत या कुल छूट में से कोई एक विकल्प चुनने का विकल्प मौजूद है. इस कोडलैब के लिए, कोई नहीं चुनें.
    • (ज़रूरी नहीं) टैग: काम के टैग जोड़ें.
    • शुरू होने की तारीख और समय: कम से कम तीन दिन बाद की तारीख सेट करें.
    • खत्म होने की तारीख और समय: शुरू होने की तारीख के कम से कम 24 घंटे बाद की तारीख सेट करें.
    • पहले से ऑर्डर करने की अवधि खत्म होने के बाद, प्रॉडक्ट की उपलब्धता: चुनें कि पहले से ऑर्डर करने की अवधि खत्म होने के बाद, प्रॉडक्ट तुरंत उपलब्ध हो जाएगा या किसी खास तारीख/समय पर उपलब्ध होगा.
    • (ज़रूरी नहीं) कम कीमत की गारंटी: अगर आपको उपयोगकर्ताओं से, पहले से ऑर्डर करने के समय की कीमत और प्रॉडक्ट के रिलीज़ होने के समय की कीमत में से वह कीमत लेनी है जो कम है, तो यह विकल्प चुनें. इससे शुरुआती खरीदारों को काफ़ी फ़ायदा मिल सकता है.
  4. सेव करें पर क्लिक करें.
  5. अपने वन-टाइम प्रॉडक्ट (upcoming_movie_1) के लिए, वन-टाइम प्रॉडक्ट में बदलाव करें पेज खोलें.
  6. खरीदने के विकल्प (buy-movie) के लिए, चालू करें पर क्लिक करें.
  7. खरीदारी के विकल्प में जाकर, पहले से ऑर्डर करने के ऑफ़र (preorder-offer-1) के लिए चालू करें पर क्लिक करें. इससे पहले से ऑर्डर करने का ऑफ़र चालू हो जाता है. साथ ही, यह उस तारीख को लाइव हो जाता है जिसे आपने पहले से ऑर्डर करने की जानकारी में कॉन्फ़िगर किया था.

पहले से ऑर्डर करने का ऑफ़र बनाने के बारे में वीडियो

इस वीडियो में, पहले से ऑर्डर करने का ऑफ़र बनाने के चरणों को दिखाया गया है.

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

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

  1. सैंपल ऐप्लिकेशन में Play Billing Library की डिपेंडेंसी जोड़ें.
    dependencies {
    val billing_version = "8.1.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 में वन-टाइम प्रॉडक्ट (इस उदाहरण में upcoming_movie_1) फ़ेच करने पर, आपको इस तरह का जवाब मिलता है:
    {
        "productId": "upcoming_movie_1",
        "type": "inapp",
        "title": "Purrfect Mayhem: The Final Playback (Movies All Day | Play Samples)",
        "name": "Purrfect Mayhem: The Final Playback",
        "description": "Yolo and Thorne must reach the original broadcasting site to initiate the \"Final Playback\" and save the timeline. Follow them through their race against the Clockinators.",
        "skuDetailsToken": "<---skuDetailsToken--->",
        "oneTimePurchaseOfferDetails": {},
        "oneTimePurchaseOfferDetailsList": [
            {
                "priceAmountMicros": 8500000,
                "priceCurrencyCode": "USD",
                "formattedPrice": "$8.50",
                "offerIdToken": "<---offerIdToken--->",
                "offerId": "preorder",
                "purchaseOptionId": "buy-option",
                "offerTags": [],
                "validTimeWindow": {
                    "startTimeMillis": 1756771200000,
                    "endTimeMillis": 1785542400000
                },
                "preorderDetails": {
                    "preorderReleaseTimeMillis": 1785542400000,
                    "preorderPresaleEndTimeMillis": 1785542400000
                }
            }
        ]
    }
    
    ध्यान दें कि पहले से ऑर्डर करने के ऑफ़र की जानकारी, oneTimePurchaseOfferDetailsList में उपलब्ध है. इस सूची में खरीदारी का एक विकल्प (buy-option) है. इसके लिए, Play Console में पहले से ऑर्डर करने का ऑफ़र कॉन्फ़िगर किया गया था. हर खरीदारी के विकल्प को उसके offerIdToken से यूनीक तरीके से पहचाना जा सकता है.
  5. पहले से ऑर्डर करने के ऑफ़र की जानकारी के साथ-साथ ऑफ़र टोकन भी फ़ेच करें. छठे चरण में बिलिंग फ़्लो शुरू करने के लिए, आपको ऑफ़र टोकन की ज़रूरत होगी.
    @Override
    public void onProductDetailsResponse(List<ProductDetails> productDetailsList) {
    
    if (productDetailsList != null && !productDetailsList.isEmpty()) {
    
    // Process productDetailsList returned by QueryProductDetailsResult
    for (ProductDetails productDetails : productDetailsResult.getProductDetailsList()) {
      for (OneTimePurchaseOfferDetails oneTimePurchaseOfferDetails :
          productDetails.getOneTimePurchaseOfferDetailsList()) {
        // Checks if the offer is a preorder offer.
        if (oneTimePurchaseOfferDetails.getPreorderDetails() != null) {
          // Process the returned PreorderDetails
          OneTimePurchaseOfferDetails.PreorderDetails preorderDetails =
              oneTimePurchaseOfferDetails.getPreorderDetails();
          // Get preorder release time in millis.
          long preorderReleaseTimeMillis = preorderDetails.getPreorderReleaseTimeMillis();
          // Get preorder presale end time in millis.
          long preorderPresaleEndTimeMillis = preorderDetails.getPreorderPresaleEndTimeMillis();
          // Get offer ID
            String offerId = oneTimePurchaseOfferDetails.getOfferId();
          // Get the associated purchase option ID
          if (oneTimePurchaseOfferDetails.getPurchaseOptionId() != null) {
            String purchaseOptionId = oneTimePurchaseOfferDetails.getPurchaseOptionId();
          }
        }
      }
      }
      } 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);
    }
    

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

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

Play Billing Lab का इस्तेमाल करके, खरीदारी के विकल्पों को टेस्ट करने का तरीका जानने के लिए, क्षेत्र के हिसाब से प्रॉडक्ट की कीमत तय करके नए बाज़ार अनलॉक करना कोडलैब देखें.

6. अगले चरण

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

7. बधाई हो!

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

सर्वे

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