डेवलपर पेलोड

डेवलपर पेलोड का इस्तेमाल, पहले कई कामों के लिए किया जाता रहा है. जैसे, धोखाधड़ी को रोकना और खरीदारी को सही उपयोगकर्ता को एट्रिब्यूट करना. Google Play Billing Library के 2.2 और उसके बाद के वर्शन में, पहले डेवलपर पेलोड पर निर्भर रहने वाले इस्तेमाल के उदाहरण, अब लाइब्रेरी के अन्य हिस्सों में पूरी तरह से काम करते हैं.

इस सुविधा के लागू होने के बाद, हमने डेवलपर पेलोड की सुविधा बंद कर दी है. यह सुविधा, Google Play Billing Library के 2.2 वर्शन से बंद की गई है. डेवलपर पेलोड से जुड़े तरीकों को वर्शन 2.2 में बंद कर दिया गया है और वर्शन 3.0 में हटा दिया गया है. ध्यान दें कि आपका ऐप्लिकेशन, लाइब्रेरी के पिछले वर्शन या एआईडीएल का इस्तेमाल करके की गई खरीदारी के लिए, डेवलपर के पेलोड को वापस पा सकता है.

बदलावों की पूरी सूची के लिए, Google Play Billing Library 2.2 के रिलीज़ नोट और Google Play Billing Library 3.0 के रिलीज़ नोट देखें.

खरीदारी की पुष्टि की सेटिंग

Google का सुझाव है कि खरीदारी की पुष्टि करने के लिए, Google Play Developer API के साथ-साथ खरीदारी टोकन का इस्तेमाल करें. खरीदारी टोकन, Purchase ऑब्जेक्ट में getPurchaseToken() वाले तरीके से मिलता है. इससे यह पक्का किया जा सकता है कि खरीदारी नकली या दोबारा की गई न हो. ज़्यादा जानकारी के लिए, धोखाधड़ी और गलत इस्तेमाल को रोकना लेख पढ़ें.

परचेज़ एट्रिब्यूशन

कई ऐप्लिकेशन, खास तौर पर गेम को यह पक्का करना होगा कि खरीदारी का क्रेडिट, इन-गेम कैरेक्टर/अवतार या इन-ऐप्लिकेशन उपयोगकर्ता प्रोफ़ाइल को सही तरीके से दिया गया हो. Google Play Billing Library 2.2 से, खरीदारी डायलॉग लॉन्च करते समय आपका ऐप्लिकेशन, Google को बदले गए खाते और प्रोफ़ाइल आइडेंटिफ़ायर भेज सकता है. साथ ही, खरीदारी वापस पाने के दौरान उन्हें वापस पा सकता है.

BillingFlowParams में, setObfuscatedAccountId() और setObfuscatedProfileId() पैरामीटर का इस्तेमाल करें. साथ ही, Purchase ऑब्जेक्ट में getAccountIdentifiers() तरीके का इस्तेमाल करके, उन्हें वापस पाएं.

मेटाडेटा को खरीदारी से जोड़ना

Google का सुझाव है कि खरीदारी के बारे में मेटाडेटा को, ऐसे सुरक्षित बैकएंड सर्वर पर सेव करें जिसे आप मैनेज करते हैं. यह परचेज़ मेटाडेटा, Purchase ऑब्जेक्ट में getPurchaseToken तरीके का इस्तेमाल करके मिले परचेज़ टोकन से जुड़ा होना चाहिए. खरीदारी पूरी होने के बाद, PurchasesUpdatedListener को कॉल करने पर, परचेज़ टोकन और मेटाडेटा को अपने बैकएंड पर भेजकर, इस डेटा को सेव किया जा सकता है.

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

अगर PurchasesUpdatedListener को कॉल करने से पहले, खरीदारी की प्रोसेस में रुकावट आती है, तो आपका ऐप्लिकेशन फिर से शुरू होने और BillingClient.queryPurchasesAsync() को कॉल करने के बाद, खरीदारी की जानकारी का पता लगा लेगा. इसके बाद, Purchase ऑब्जेक्ट के getPurchaseTime(), getSku(), और getPurchaseToken() तरीकों से मिली वैल्यू को अपने बैकएंड सर्वर पर भेजा जा सकता है. इससे, मेटाडेटा को खोजा जा सकता है, मेटाडेटा को खरीदारी टोकन से जोड़ा जा सकता है, और खरीदारी की प्रोसेस जारी रखी जा सकती है. ध्यान दें कि आपने जो टाइमस्टैंप शुरू में सेव किया था वह Purchase ऑब्जेक्ट के getPurchaseTime() की वैल्यू से पूरी तरह मेल नहीं खाएगा. इसलिए, आपको उनकी तुलना काफ़ी हद तक करनी होगी. उदाहरण के लिए, यह देखा जा सकता है कि वैल्यू एक तय समयावधि में हैं या नहीं.