2011-03-06 28 views
11

मैं एक आईफोन ऐप के लिए ऐप खरीद में स्थापित करना चाहता हूं। मैं नए ऑटो-नवीकरणीय सदस्यता प्रकार का उपयोग करने की योजना बना रहा हूं। हालांकि, मैं किसी विशेष सदस्यता के लिए कई अवधि प्रदान करना चाहता हूं, लेकिन यह नहीं देख सकता कि मैं SKProductsResponse.products सरणी में वापस आने वाले SKProduct से अवधि कैसे प्राप्त कर सकता हूं।आईफोन - ऐप खरीद में ऑटो-नवीकरणीय सदस्यता के लिए अवधि कैसे प्राप्त करें

एसके प्रोडक्ट ऑब्जेक्ट में मूल्य, स्थानीयकृत टाइटल और स्थानीयकृत डिस्क्रिप्शन है। हालांकि, यदि आप एकाधिक अवधि के साथ एक सदस्यता परिवार स्थापित करते हैं तो शीर्षक/विवरण परिवार के लिए एक बार सेट किया जाता है ताकि आप अवधि शामिल नहीं कर सकें, और दस्तावेज़ स्पष्ट रूप से कहें कि शीर्षक/विवरण में अवधि शामिल नहीं है। हालांकि, कोई अन्य फ़ील्ड नहीं देख सकता जहां मैं ऐप स्टोर में अपने कस्टम में प्रदर्शित करने के लिए अवधि पुनर्प्राप्त कर सकता हूं। या तो मुझे कुछ याद आ रहा है या यह 4.3 तक उपलब्ध नहीं होगा?

पॉइंटर्स की बहुत सराहना की गई!

उत्तर

10

आपको अपने ऐप में या तो अपने ऐप के बैकएंड से कहीं भी product_id => length मैपिंग करने की आवश्यकता है।

+0

हाँ यह प्रभावी ढंग से मैं समाप्त कर रहा हूं। –

10

आप प्रत्येक अवधि के लिए एक विशिष्ट उत्पाद पहचानकर्ता का उपयोग कर सकते हैं (1 महीने की सदस्यता के लिए उत्पाद आईडीडिफायर के नीचे दिए गए कोड में "com.domainname.myapp.sub1month" है और 7 दिनों की अवधि के लिए यह "com.domainname.myapp" है। sub7day ") और कि paymentQueue में के लिए खोज:

-(void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{ 
    for(SKPaymentTransaction *transaction in transactions){ 
    switch (transaction.transactionState){ 
     case SKPaymentTransactionStatePurchasing: 
      break; 
     case SKPaymentTransactionStatePurchased: 
      if([transaction.payment.productIdentifier isEqualToString:@"com.domainname.myapp.sub1month"]{ 
       newSubscriptionEndDate=[transaction.transactionDate timeIntervalSinceReferenceDate]+3600*24*31; 
      } 
      if([transaction.payment.productIdentifier isEqualToString:@"com.domainname.myapp.sub7day"] ){ 
       newSubscriptionEndDate=[transaction.transactionDate timeIntervalSinceReferenceDate]+3600*24*7; 
      } 
      [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
      break; 
+0

हां मूल रूप से मैंने क्या किया –