2013-07-12 3 views
6

ऐपस्टोर समीक्षक को हमें Non-renewing subscriptions प्रकार खरीदने की आवश्यकता है उपयोगकर्ता को पंजीकरण करने के लिए लागू नहीं किया जाएगा। उसका मतलब है कि उपयोगकर्ता भी पंजीकरण नहीं करता है, वह Non-renewing subscriptions टाइपपंजीकरण के बिना गैर नवीकरण सदस्यता के लिए लेनदेन बहाल करें

और ऐप्पल दस्तावेज़ को Non-renewing subscriptions को पुनर्स्थापित किया जाना आवश्यक है। उन्होंने कहा:

गैर का नवीकरण सदस्यता और खपत योग्य उत्पाद स्वचालित रूप से स्टोर किट द्वारा बहाल नहीं हैं। गैर-नवीनीकरण सदस्यता को पुन: प्रारंभिक होना चाहिए। इन उत्पादों को पुनर्स्थापित करने के लिए, आपको खरीदे जाने पर अपने सर्वर पर लेन-देन रिकॉर्ड करना होगा और को अपने लेन-देन को उपयोगकर्ता के डिवाइस पर पुनर्स्थापित करने के लिए अपने स्वयं के तंत्र प्रदान करना होगा।

तो जब उपयोगकर्ता रजिस्टर, मैं उपयोगकर्ता एक अद्वितीय userId दे देंगे, वह अपने उपयोगकर्ता नाम और पासवर्ड के साथ userId प्राप्त कर सकते हैं, तो मैं विभिन्न iOS डिवाइस के लिए उपयोगकर्ता की जानकारी साझा कर सकते हैं, और मैं लेनदेन बहाल कर सकते हैं, क्योंकि उनके पास एक अद्वितीय उपयोगकर्ता आईडी है।

लेकिन समस्या यह है: जब उपयोगकर्ता पंजीकरण नहीं करता है, तो मेरा सर्वर उन्हें एक अद्वितीय उपयोगकर्ता भी देगा, गैर-पंजीकरण उपयोगकर्ता उपयोगकर्ता को .plist पर सहेज देगा। वे लेनदेन बहाल भी कर सकते हैं। लेकिन जब वह मेरा ऐप हटा देता है, और फिर एक बार डाउनलोड करता है, तो उपयोगकर्ता आईडी खो जाता है, इसलिए वह लेनदेन को पुनर्स्थापित नहीं कर सकता है। वह एक सामान्य डिफ़ॉल्ट उपयोगकर्ता होगा।

AppStore कारण के लिए मेरे एप्लिकेशन को अस्वीकार कर देंगे करता है:

पुनर्स्थापित नहीं कर सकता गैर का नवीकरण पंजीकरण के बिना सदस्यता, जो एप्लिकेशन हटाने के लिए लेन-देन से पहले

बहाल तो AppStore को अस्वीकार कर देंगे, इसे कैसे ठीक करें, सभी को थक्स करें।

+0

मैं उपयोगकर्ता को उपयोगकर्ता को देने या इसे .plist को संग्रहीत करने के विचार के बारे में चिंतित हूं। क्या होगा यदि कोई दुर्भावनापूर्ण उपयोगकर्ता इस उपयोगकर्ता को ऑनलाइन पोस्ट करता है? इससे आपकी सुरक्षा टूट जाएगी, हां? (.plist जानकारी iExplorer जैसे प्रोग्रामों के माध्यम से उपलब्ध है)। –

+0

@ChrisPrince वह अपने उपयोगकर्ता को ऑनलाइन पोस्ट कर सकता है, लेकिन हमारे सर्वर की एक लेनदेन सूची है। एक सदस्यता (जिसका उपयोग नहीं किया जाता है) केवल एक बार सफलतापूर्वक बहाल किया जा सकता है। अगर वह दूसरों को पोस्ट करता है, तो दूसरों में से एक सफलतापूर्वक बहाल कर सकता है, और वह बहाल नहीं कर सकता है। तो यह मेरी सुरक्षा तोड़ नहीं होगा। –

+0

@ChrisPrince ध्यान दें कि: लेनदेन महत्वपूर्ण हैं। UserId केवल इसका मतलब है कि किसके लिए पुनर्स्थापित करें। कुछ हैकर आपके लेन-देन चुराते हैं और फिर लेन-देन को अन्य उपयोगकर्ताओं को बेचते हैं। –

उत्तर

4

मैंने ऐपस्टोर में अपना ऐप सबमिट किया है।

मैं पंजीकरण या लॉगिन करने वाले गैर-नवीकरण सदस्यता के लिए लेनदेन बहाल करता हूं।

मैं गैर-नवीनीकरण सदस्यता के लिए लेनदेन बहाल नहीं करता जो "पंजीकरण" नहीं करते हैं और "मेरा ऐप हटाते हैं"।

मेरा ऐप को मंजूरी दे दी

+0

तोड़ सकता है इसका मतलब है कि वे ऐसे ऐप को स्वीकार कर सकते हैं जो iCloud लॉग इन नहीं हुआ है, तो खरीदारी को पुनर्स्थापित नहीं करता है। तुम क्या सोचते हो? – hasan83

+0

@ हसन मेरा ऐप आईओएस 4.3 + का समर्थन करता है, इसलिए कोई iCloud नहीं है। और मुझे पंजीकरण के बिना गैर-नवीनीकरण सदस्यता के लिए लेनदेन बहाल करने का एक सही तरीका नहीं मिलता है, जो पुनर्स्थापित करने से पहले ऐप को हटा देता है 'मैं लॉगिन उपयोगकर्ताओं के लिए लेनदेन बहाल कर दूंगा और अतिथि के लिए लेनदेन बहाल करूंगा जो मेरा ऐप –

+0

नहीं हटाएगा यह जानना अच्छा है । मैं अपने ऐप के लिए एक समान रणनीति का पालन कर रहा हूं, लेकिन अभी तक इसे सबमिट नहीं किया है। –

1
  • पंजीकरण गैर नवीकरणीय inapp मदों के लिए वैकल्पिक किया जाना चाहिए है।
  • आप उन्हें एक संदेश दे सकते हैं कि यदि आप एकाधिक उपकरणों पर उपयोग करना चाहते हैं, तो आपको पंजीकरण और लॉगिन करना होगा।
  • पंजीकरण करते समय, ईमेल और मोबाइल नंबर जैसी व्यक्तिगत जानकारी वैकल्पिक होनी चाहिए और आपको उन्हें विशेष रूप से समझा देना होगा कि आपने पंजीकरण में ईमेल क्यों रखा है (जैसे पासवर्ड रिकवरी)।
  • पिछली टिप्पणी की तरह, यदि गैर-नवीकरणीय आइटम के लिए इनपैप इतना महंगा नहीं है, तो वे एप्लिकेशन स्वीकार कर सकते हैं। लेकिन अगर, इनपैप महंगा है, तो वे आपको अपने किसी भी नियम को तोड़ने की अनुमति नहीं देंगे।

नोट: आप यूयूआईडी का उपयोग करने के लिए एक तंत्र का उपयोग कर सकते हैं और इसे कीचेन में स्टोर कर सकते हैं।यदि आप एप्लिकेशन को पुनर्स्थापित करते हैं, तो आप इसे फिर से कीचैन से प्राप्त कर सकते हैं और उसी यूयूआईडी का उपयोग करके, आप अपने सर्वर पर समाप्ति का प्रबंधन कर सकते हैं।

1

एप्पल iCloud का उपयोग करके सुझाव देता खरीद डेटा लागू करने के लिए:

#if USE_ICLOUD_STORAGE 
NSUbiquitousKeyValueStore *storage = [NSUbiquitousKeyValueStore defaultStore]; 
#else 
NSUserDefaults *storage = [NSUserDefaults standardUserDefaults]; 
#endif 

NSData *newReceipt = transaction.transactionReceipt; 
NSArray *savedReceipts = [storage arrayForKey:@"receipts"]; 
if (!receipts) { 
    // Storing the first receipt 
    [storage setObject:@[newReceipt] forKey:@"receipts"]; 
} else { 
    // Adding another receipt 
    NSArray *updatedReceipts = [savedReceipts arrayByAddingObject:newReceipt]; 
    [storage setObject:updatedReceipts forKey:@"receipts"]; 
} 

[storage synchronize]; 

कम से कम इसे दूर खरीद जानकारी फेंक, जब उपयोगकर्ता एप्लिकेशन को हटा देता है की तुलना में बेहतर है। ग्राहक को सेवा के लिए दो बार भुगतान करना, एक अच्छा उपयोगकर्ता अनुभव नहीं है।

+0

लेनदेन रसीद को हटा दिया गया है। – user965972

संबंधित मुद्दे