शायद आप ऐप खरीद में रे वंडरलिच के ट्यूटोरियल कोड का उपयोग कर रहे हैं। वहाँ कोड का कहना है:
- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers {
if ((self = [super init])) {
// Store product identifiers
_productIdentifiers = productIdentifiers;
// Check for previously purchased products
_purchasedProductIdentifiers = [NSMutableSet set];
for (NSString * productIdentifier in _productIdentifiers) {
BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier];
if (productPurchased) {
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; // CHECK THIS
[_purchasedProductIdentifiers addObject:productIdentifier];
NSLog(@"Previously purchased: %@", productIdentifier);
} else {
NSLog(@"Not purchased: %@", productIdentifier);
}
}
वहाँ आप देख सकते हैं, कि addTransactionObserver केवल, कहा जाता है कि अगर उत्पाद पहले से ही pruchased है। यदि आप क्वेरी के सामने कोड की इस पंक्ति को ले जाते हैं तो आपको वांछित परिणाम मिलेंगे।
[[SKPaymentQueue defaultQueue] addTransactionObserver:self]; // MOVE HERE
if (productPurchased) {
[_purchasedProductIdentifiers addObject:productIdentifier];
NSLog(@"Previously purchased: %@", productIdentifier);
} else {
NSLog(@"Not purchased: %@", productIdentifier);
}
failedTransaction विधि में अब तुम अब कॉल कर सकते हैं
[[NSNotificationCenter defaultCenter] postNotificationName:IAPHelperProductPurchasedNotification object:nil userInfo:nil];
आप अपने वर्तमान दृश्य
स्रोत
2013-01-21 13:41:23
इसके बारे में अजीब हिस्सा है यही कारण है कि। जब मैं रद्द बटन दबाता हूं तब भी मुझे भुगतान में SKPaymentTransactionStateFailed प्राप्त होता है Queue: अद्यतन ट्रांज़ेक्शन: विधि और निम्न त्रुटि: त्रुटि डोमेन = SKErrorDomain कोड = 2 "आईट्यून्स स्टोर से कनेक्ट नहीं हो सकता" – dariaa
यह दुर्भाग्यपूर्ण है।इसलिए मैं ऐप्पल की रीचैबिलिटी क्लास का उपयोग कर इंटरनेट कनेक्टिविटी की जांच करूंगा, और यदि आपके पास कनेक्टिविटी है, तो आप जानते हैं कि इसे या तो रद्द कर दिया गया था या किसी भी तरह से सर्वर के साथ खरीद विफल रही थी। मैं एक बग रिपोर्ट भी दर्ज करूंगा जिसमें कहा गया है कि त्रुटि प्रॉपर्टी दस्तावेज के रूप में काम नहीं करती है, और एक फिक्स के लिए पूछती है। –
यह कनेक्टिविटी समस्या नहीं है - किसी कारण से, लेनदेन को रद्द करते समय या जब यह किसी अन्य कारण से विफल रहता है तो त्रुटि समान होती है। – Stavash