2011-10-13 3 views
39

मुझे अब तक मिल गया है: पुनर्स्थापित करने के बाद, उपयोगकर्ता को "खरीदारी सुविधा" पर क्लिक करने की आवश्यकता होती है, फिर वह $ 0.9 9 प्रश्न से डरता है, फिर लॉगिन करना होता है और फिर कहा जाता है कि सुविधा पहले ही खरीदी गई है और वह इसे मुफ्त में ले जाता है।आईफोन पर पहले ही खरीदे गए ऐप-खरीद को पुनर्स्थापित करें?

मुझे पता है कि सेब एक धर्म है और उपयोगकर्ता मजबूत विश्वास करने वाले हैं, लेकिन क्या कोई बेहतर तरीका नहीं है? :-) मैं जो चाहता हूं वह वास्तव में इसे खरीदने के बिना सुविधा की जांच करना है। उपयोगकर्ता को अपनी खाता जानकारी दर्ज करने की अनुमति देना प्रतीत होता है, शायद $ 0.00 सुविधा खरीद सकती है? या क्या वहां कोई तरीका है जो यह करता है?

मैं पूरे इन-ऐप-खरीद के लिए एमकेस्टोरकिट का उपयोग कर रहा हूं, लेकिन कोई समाधान बहुत अच्छा होगा। darvids0n को


अद्यतन

thanx, अपने विधि मेरी समस्या हल! जो

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

मानते हुए कहता है

- (void)removePreviousPurchases { //just for sandbox testing 
    [[MKStoreManager sharedManager] removeAllKeychainData]; 
} 

- (void)restorePreviousPurchases { //needs account info to be entered 
    if([SKPaymentQueue canMakePayments]) { 
     [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) { 
      NSLog(@"Restored."); 
      /* update views, etc. */ 
     } 
     onError:^(NSError *error) { 
      NSLog(@"Restore failed: %@", [error localizedDescription]); 
      /* update views, etc. */ 
     }]; 
    } 
    else 
    { 
     NSLog(@"Parental control enabled"); 
     /* show parental control warning */ 
    } 
} 

उत्तर

33

हैं $ 0.99 मद है गैर उपभोज्य, तो आप एक "पुनर्स्थापित खरीदारियां" बटन (या समान) प्रदान करना चाहिए: यहाँ कुछ काम कर रहे अन्य लोगों ने इसी कोशिश के लिए कोड है आपने पहले ही एक लेनदेन पर्यवेक्षक जोड़ा है, और protocol को एक पुनर्स्थापित लेनदेन को संभालने के मामले को लागू किया है (राज्य SKPaymentTransactionStateRestored के साथ) यह काम करेगा।

+0

धन्यवाद, अंत में इस के लिए उपयोग करने के लिए MKStore-किट विधि मिल गया! (मेरे प्रश्न में संपादित देखें) –

+0

यदि मेरे पास 10 गैर उपभोग्य योग्य खरीद आईडी हैं और इनमें से 4 उपयोगकर्ता द्वारा खरीदे जाते हैं। पुनर्स्थापन के दौरान, मैं कैसे पता लगा सकता हूं कि पहले कौन से खरीदे गए हैं और कौन से नहीं हैं? – Satyam

+0

@Satyamsvv आपको अपने खरीदे गए खरीदारियों के लिए कॉलबैक नहीं मिलेगा। आपको केवल 'SKPaymentTransactionObserver' विधि' में 4 अपडेट किए गए लेनदेन मिलेगा ['-पेमेंटमेंट्यूयू: अपडेटेड ट्रांस्पेक्शन:'] (http://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransactionObserver_Protocol/Reference/Reference.html # // apple_ref/doc/uid/TP40008262-CH1-SW3), और इनमें से 'लेनदेनस्टेट' 'SKPaymentTransactionStateRestored' होगा। – darvids0n

9

इन दोनों तरीकों में जोड़ें:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; 

[[SKPaymentQueue defaultQueue]restoreCompletedTransactions]; 
+0

मुझे इन दो तरीकों को कहां जोड़ना चाहिए? –

+0

मुझे यह कहां रखना चाहिए – coolcool1994

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