2011-05-23 18 views
7

मैं इन-ऐप बिलिंग के साथ "प्रबंधित" खरीदारी का उपयोग करके अपने ऐप की विभिन्न विशेषताओं को अपग्रेड/अनलॉक करने के लिए एक सिस्टम को कार्यान्वित करने का प्रयास कर रहा हूं, और मैं गहन दस्तावेज़ीकरण या उदाहरणों की कमी से उलझ रहा हूं।मैं बाहरी सर्वर पर सुरक्षित रूप से इन-ऐप बिलिंग लेन-देन कैसे प्रबंधित कर सकता हूं?

आप एक दूरस्थ सर्वर का उपयोग कर रहे हैं, तो सामग्री वितरित या प्रबंधन करने के लिए, आपके आवेदन को सत्यापित किया है:

मेरे एप्लिकेशन के उद्देश्य को पुनः प्राप्त करने/मेरे अपने सर्वर से पार्स और प्रदर्शन डेटा, और http://developer.android.com/guide/market/billing/billing_best_practices.html राज्यों पर दस्तावेज़ीकरण है जब भी कोई उपयोगकर्ता सामग्री एक्सेस करता है तो अनलॉक सामग्री की खरीद स्थिति।

मेरा प्रश्न है, वास्तविक वर्कफ़्लो के संदर्भ में इसके बारे में जाने का सबसे अच्छा तरीका क्या है?

जहां तक ​​मैं कह सकता हूं, सफल खरीद पर मैं अपने सर्वर पर स्थानीय रूप से ऐप में खरीद जानकारी संग्रहीत करता हूं। जब ऐप चलता है, तो मैं अपने सर्वर पर ऑर्डर आईडी भेजूंगा और सर्वर यह देखने के लिए जांच करेगा कि ऑर्डर वैध है या नहीं, सबसे पहले यह जांचकर कि मेरे सर्वर के डेटाबेस में ऑर्डर मौजूद है, और दूसरी बार जांच कर रहा है कि मैंने मैन्युअल रूप से ऑर्डर रद्द नहीं किया है जो भी कारण)।

यदि यह सत्यापित किया गया है, तो सर्वर ऐप को एक प्रतिक्रिया भेजेगा कि अनुरोधित सुविधाएं "लाइसेंस प्राप्त" हैं, और ऐप उपयोगकर्ता को अनलॉक फीचर्स/सामग्री प्रदान करेगा।

स्पष्ट समस्याओं मैं इस के साथ देख सकते हैं कर रहे हैं:

  1. एक निहित उपयोगकर्ता आसानी से सिर्फ स्थानीय एप्लिकेशन की SQLite डेटाबेस (या जो भी अन्य विधि मैं दुकान आदेश की जानकारी के लिए उपयोग करें) एक मान्य आदेश आईडी सुई बदल सकता है ।
  2. यदि नेटवर्क का उपयोग डाउन है, या मेरा सर्वर डाउन है, तो भी मैं चाहता हूं कि ऐप सभी उपयोगकर्ता की खरीदी गई सुविधाओं के साथ (कैश डेटा के साथ) चलाने में सक्षम हो।

पहली समस्या यह है कि मैं सत्यापन अनुरोध के साथ उपकरण पहचानकर्ता के कुछ प्रकार भेजने और अपने सर्वर के अंत में निगरानी कि शामिल देख सकते हैं चारों ओर संभावित तरीके - ऑर्डर करता है, तो उपकरणों की एक बड़ी संख्या में आदेश को निरस्त करने की एक्सेस कर रहे हैं समय की एक छोटी अवधि।

दूसरी समस्या के लिए, मैं पर्याप्त समाधान नहीं समझ सकता। मैंने शुरू में सोचा था कि जब भी सत्यापन सफल होता है, तो इस सत्यापन के समय को संग्रहीत किया जाएगा। फिर, ऐप अंतिम सफल सत्यापन के 48 घंटे बाद, अनलॉक सुविधाओं के साथ चलना जारी रखेगा। इसके साथ मुद्दा यह है कि, मैं इस समय मूल्य को सुरक्षित रूप से कैसे स्टोर कर सकता हूं? फिर, जड़ वाले उपयोगकर्ता आसानी से मूल्य बदल सकते हैं और ऐप कोई भी बुद्धिमान नहीं होगा।

क्या किसी ने इन-ऐप बिलिंग खरीद प्रबंधित करने के लिए सर्वर-आधारित सिस्टम तैयार किया है और कुछ सुझाव दे सकते हैं?

उत्तर

0

Google लाइसेंसिंग जीवित रहने के लिए कैश किए गए 'आप लाइसेंस वैध हैं' प्रतिक्रिया देने का एक तरीका प्रदान करते हैं।

Application Licensing

तुम भी डेटा अपने भंडारण कर रहे हैं एन्क्रिप्ट कर सकते हैं। अगर उन्होंने इसके लिए भुगतान किया है, तो वे इसे डिक्रिप्ट कर सकते हैं। यदि कोई नेटवर्क एक्सेस उपलब्ध नहीं है, तो एक समान कैशिंग योजना को एप्लिकेशन लाइसेंसिंग के रूप में कार्यान्वित करें (वर्तमान में अपाचे लाइसेंस, संस्करण 2.0 के तहत लाइसेंस प्राप्त है)।