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