एक बार खरीदे जाने वाले प्रॉडक्ट की लाइफ़साइकल, शुल्क लेकर सदस्यता देने वाले प्रॉडक्ट की तुलना में आसान होती है. हालांकि, अब भी कई ऐसी स्थितियां और ट्रांज़िशन इवेंट होते हैं जिन्हें आपके बैकएंड को ठीक से मैनेज करना होता है.
वन-टाइम प्रॉडक्ट की नई खरीदारी
उपयोगकर्ता के बिलिंग फ़्लो पूरा करने के बाद, आपका ऐप्लिकेशन नई खरीदारी के बारे में जानकारी देख सकता है. इसके लिए, इनमें से कोई एक तरीका अपनाएं:
- खरीदारी की स्थिति के बारे में अपडेट पाने के लिए,
Real-time developer notificationsसेट अप करें औरGet all notifications for subscriptions and one-time productsको चालू करें. - खरीदारी से जुड़े अपडेट अपने-आप पाने के लिए,
BillingClientसेPurchasesUpdatedListenerइंटरफ़ेस लागू करें. BillingClient.queryPurchasesAsync()तरीके को कॉल करें.
नई खरीदारी मिलने के बाद, getPurchaseState तरीके या purchases.productsv2.getproductpurchasev2 in Play Developer API
इस कुकी का इस्तेमाल, नई खरीदारी के पेमेंट की स्थिति का पता लगाने के लिए किया जाता है.
डेवलपर से जुड़ी रीयल-टाइम सूचनाएं
जब कोई उपयोगकर्ता वन-टाइम प्रॉडक्ट खरीदता है या उसकी खरीदारी रद्द करता है, तो Google Play OneTimeProductNotification मैसेज भेजता है.
बैकएंड पर खरीदारी की स्थिति अपडेट करने के लिए, OneTimeProductNotification ऑब्जेक्ट में दिए गए परचेज़ टोकन का इस्तेमाल करके, purchases.productsv2.getproductpurchasev2 तरीके को कॉल करें. इस तरीके से, खरीदारी के टोकन के आधार पर, खरीदारी और इस्तेमाल की स्थिति की जानकारी मिलती है.
जब पहले से किए गए ऑर्डर को पूरा कर दिया जाता है और उसकी खरीदारी की स्थिति PURCHASED में बदल जाती है, तो आपके क्लाइंट को एक आरटीडीएन भेजा जाता है. आरटीडीएन मिलने के बाद, पहले से ऑर्डर किए गए प्रॉडक्ट की खरीदारी को प्रोसेस करें. इसके लिए, अपने बैकएंड में वन-टाइम प्रॉडक्ट की खरीदारी को प्रोसेस करना लेख में बताया गया तरीका अपनाएं.
आपको लेन-देन से जुड़े आरटीडीएन को अपने सुरक्षित बैकएंड में मैनेज करना चाहिए.
पूरे हो चुके लेन-देन मैनेज करना
जब कोई उपयोगकर्ता वन-टाइम प्रॉडक्ट की खरीदारी पूरी करता है, तो Google Play ONE_TIME_PRODUCT_PURCHASED टाइप वाला OneTimeProductNotification मैसेज भेजता है.
यह आरटीडीएन मिलने पर, खरीदारी को प्रोसेस करें. इसके लिए, अपने बैकएंड में वन-टाइम प्रॉडक्ट की खरीदारी को प्रोसेस करना लेख में बताया गया तरीका अपनाएं.
रद्द किए गए लेन-देन मैनेज करना
जब वन-टाइम प्रॉडक्ट की खरीदारी रद्द की जाती है, तो Google Play, OneTimeProductNotification मैसेज भेजता है. इसमें ONE_TIME_PRODUCT_CANCELED टाइप की जानकारी होती है. ऐसा तब होता है, जब आपने डेवलपर से जुड़ी रीयल-टाइम सूचनाएं पाने के लिए कॉन्फ़िगर किया हो. उदाहरण के लिए, ऐसा तब हो सकता है, जब उपयोगकर्ता तय समयसीमा के अंदर पेमेंट न करे या डेवलपर या ग्राहक के अनुरोध पर खरीदारी रद्द कर दी जाए. जब आपके बैकएंड सर्वर को यह सूचना मिलती है, तो खरीदारी की मौजूदा स्थिति पाने के लिए, purchases.productsv2.getproductpurchasev2
तरीके को कॉल करें. इसके बाद, अपने बैकएंड को अपडेट करें. इसमें उपयोगकर्ता के एनटाइटलमेंट भी शामिल हैं.
अगर Purchased स्थिति में मौजूद वन-टाइम प्रॉडक्ट की खरीदारी का रिफ़ंड किया जाता है, तो आपको Voided Purchases API का इस्तेमाल करके भी इसकी जानकारी दी जाएगी.
अपने बैकएंड में, वन-टाइम प्रॉडक्ट की खरीदारी को प्रोसेस करना
अगर आपने ONE_TIME_PRODUCT_PURCHASED
आरटीडीएन
का इस्तेमाल करके नई खरीदारी का पता लगाया है या आपको ऐप्लिकेशन में PurchasesUpdatedListener के ज़रिए इसकी सूचना मिली है या आपने अपने ऐप्लिकेशन के onResume() तरीके में खरीदारियों को मैन्युअल तरीके से फ़ेच किया है, तो आपको नई खरीदारी को प्रोसेस करना होगा. हमारा सुझाव है कि बेहतर सुरक्षा के लिए, खरीदारी की प्रोसेस को अपने बैकएंड में मैनेज करें.
एक बार में की जाने वाली नई खरीदारी को प्रोसेस करने के लिए, यह तरीका अपनाएं:
- वन-टाइम प्रॉडक्ट की खरीदारी की नई स्थिति जानने के लिए,
purchases.productsv2.getproductpurchasev2एंडपॉइंट पर क्वेरी करें. खरीदारी के लिए इस तरीके को कॉल करने के लिए, आपको अपने ऐप्लिकेशन याONE_TIME_PRODUCT_PURCHASEDआरटीडीएन से, इससे जुड़ाpurchaseTokenचाहिए. getPurchaseState()को कॉल करें और पक्का करें कि खरीदारी की स्थितिPURCHASEDहो.- खरीदारी की पुष्टि करना.
- उपयोगकर्ता को कॉन्टेंट का ऐक्सेस दें. अगर खरीदारी करते समय
setObfuscatedAccountId()का इस्तेमाल करके कोई खाता सेट किया गया था, तोpurchases.productsv2.getproductpurchasev2में मौजूदobfuscatedExternalAccountIdफ़ील्ड से, खरीदारी से जुड़े उपयोगकर्ता खाते की पहचान की जा सकती है.- इस्तेमाल न किए जा सकने वाले प्रॉडक्ट की खरीदारी के लिए, कॉन्टेंट की डिलीवरी की पुष्टि करें. इसके लिए,
purchases.products.acknowledgeतरीके को कॉल करें. पक्का करें कि खरीदारी की पुष्टि पहले न की गई हो. इसके लिए,acknowledgementStateफ़ील्ड देखें. - अगर प्रॉडक्ट इस्तेमाल किया जा सकता है, तो
purchases.products.consumeतरीके को कॉल करके, आइटम को इस्तेमाल किए गए के तौर पर मार्क करें. इससे उपयोगकर्ता, आइटम को इस्तेमाल करने के बाद उसे फिर से खरीद सकता है. यह तरीका, खरीदारी की पुष्टि भी करता है.
- इस्तेमाल न किए जा सकने वाले प्रॉडक्ट की खरीदारी के लिए, कॉन्टेंट की डिलीवरी की पुष्टि करें. इसके लिए,
Play Billing Library में, खरीदारी की पुष्टि करने और इस्तेमाल करने के तरीके भी उपलब्ध हैं. इनकी मदद से, ऐप्लिकेशन में की गई खरीदारी को प्रोसेस किया जा सकता है. हालांकि, हम सुझाव देते हैं कि अगर आपके पास बैकएंड है, तो प्रोसेसिंग को बैकएंड में हैंडल करें, ताकि इसे ज़्यादा सुरक्षित तरीके से लागू किया जा सके.