2011-12-14 10 views
10

मेरे पास एक ऐप है जिसमें ऑटो नवीकरणीय सदस्यता है, इनकी खरीदारी ठीक है, हालांकि यदि कोई उपयोगकर्ता ऐप हटा देता है और बाद की तारीख में सब्सक्रिप्शन को पुनर्स्थापित करने का प्रयास करता है तो मैं वापस नहीं आ रहा हूं डेटा जो उम्मीद करेगा।आईओएस: SKPaymentTransactionStateRestored originalTransaction == nil

apple docs के अनुसार, मुझे प्रारंभिक लेनदेन के विवरण के साथ एक मूल ट्रांस्सेक्शन प्राप्त करना चाहिए, ज्यादातर मामलों में और सैंडबॉक्स पर यह वही है जो हमारे कुछ ग्राहकों के लाइव ऐप्स पर हो रहा है, हमें एक शून्य मूल्य प्राप्त हो रहा है originalTransaction।

क्या कोई सोच सकता है कि मुझे मूल ट्रांज़ेक्शन वापस क्यों नहीं मिलेगा? [लेनदेन लेनदेन दिनांक] में वापस भेजा गया दिनांक वही है जैसा कि मैं [[लेनदेन मूल ट्रांज़ेक्शन] लेनदेन दिनांक से अपेक्षा करता हूं] हालांकि मुझे नहीं पता कि यह सुरक्षित है कि यह मानना ​​सुरक्षित है कि यदि मूल ट्रांज़ेक्शन शून्य है कि [लेनदेन लेनदेनडेट] हमेशा होगा मूल ट्रांज़ेक्शन की तारीख बनें।

+0

सिर्फ इस के माध्यम से जाना है .. http://stackoverflow.com/questions/9537663/ios-how-to-get-a-list- पहले से खरीदे गए उत्पादों –

उत्तर

1

मुझे एक ही समस्या थी। मैंने यह जांच करके हल किया कि मूल लेनदेन वर्तमान लेनदेन को वापस कर देता है या नहीं।

यहाँ कोड मैं - (void)restoreTransaction:(SKPaymentTransaction *)transaction में बदल दिया

if (transaction.originalTransaction.payment.productIdentifier) { 
    [self provideContentForProductIdentifier:transaction.originalTransaction.payment.productIdentifier]; 
} else { 
    [self provideContentForProductIdentifier:transaction.payment.productIdentifier]; 
} 
+0

क्या आप विवरण में इसे समझा सकते हैं? – Gaurav

+0

@ गौरववस्परश परीक्षण के दौरान मैंने पाया कि सर्वर कुछ मूल लेनदेन के लिए शून्य लौट रहा था, क्योंकि मैंने एक शर्त लगाई और वर्तमान लेनदेन के साथ इसे बदल दिया। – Sam

+0

पुष्टि करने के लिए धन्यवाद, मेरे साथ भी हो रहा था और मैंने इसे शून्य से संभालने के द्वारा भी तय किया। – Gaurav

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