2012-05-16 8 views
9

मेरे पास एक परीक्षण खाता है जिसमें अपने लेनदेन इतिहास में बिल्कुल दो खरीदारियां हैं। दोनों उत्पाद गैर उपभोग्य हैं।लापता SKPaymentTransactions कैसे पुनर्प्राप्त करें?

मैं आईपैड 1 पर में लॉग इन और उत्पाद ए खरीदा

तब मैं आईपैड 1 से लॉग आउट किया और iPad 2 पर में लॉग इन और उत्पाद बी खरीदा

तब मैं [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; का उपयोग कर पिछले लेनदेन को बहाल करने का प्रयास किया आईपैड पर उत्पाद ए को अनलॉक करने के लिए 2.

जब कॉल वापस आती है, तो उत्पाद बी केवल बहाली लेनदेन की सूची में है।

इसके अतिरिक्त

, जब मैं

SKPayment *payment = [SKPayment paymentWithProduct:productA]; 
[[SKPaymentQueue defaultQueue] addPayment:payment]; 

का उपयोग कर मैं एक पॉपअप कह 'आपने पहले ही इस खरीदा है मिल iPad 2 पर फिर से उत्पाद एक खरीदने के लिए प्रयास करते हैं। इसे फिर से डाउनलोड करने के लिए ठीक टैप करें। '

यदि मैंने पहले ही उत्पाद ए खरीदा है, तो जब मैं पिछली खरीदारी को पुनर्स्थापित करने का प्रयास करता हूं तो उत्पादों की सूची में क्यों नहीं है? मुझे उपयोगकर्ता को फिर से खरीदने का प्रयास क्यों करना है?

संपादित करें:
मुझे पता चला है कि यह कोई फर्क नहीं पड़ता कि जो आईपैड मैं का उपयोग करें (आईपैड 1 या iPad 2), केवल उत्पाद बी अप restorable लेनदेन की सूची में पता चलता है और उत्पाद एक पुनर्खरीद की जरूरत है।

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

अब कुछ भी पुन: प्रयास लेनदेन की सूची में दिखाई देता है लेकिन जब मैं उत्पाद खरीदने का प्रयास करता हूं तो वही पॉपअप दिखाई देता है।

टूटने वाले ऐप्पल उपकरणों के साथ खरगोश छेद के नीचे एक और यात्रा।

संपादित करें:
इस जांच के लिए प्रेरणा गुम एंटाइटेलमेंट के बारे में उपयोगकर्ता शिकायतों का एक दिक्कत है। यह काफी हद तक एक मुद्दा बनना शुरू हुआ जब उपयोगकर्ता अपने आईपैड 2 से नए आईपैड 3 एस में स्विच कर रहे थे। यह मेरे सभी उपयोगकर्ताओं के बीच संगत नहीं है, लेकिन उनमें से पर्याप्त ने इसे प्राथमिकता देने के लिए इसके बारे में एक झुकाव उठाया है, और ऐप्पल ग्राहक समर्थन ने उन्हें वापस निर्देशित किया है, लेकिन मुझे यकीन नहीं है कि यह एक समस्या है जिसे मैं ठीक कर सकता हूं , खासकर जब से ऐप्पल इन-ऐप क्रय के लिए नकद रजिस्टर होने पर जोर देता है।

+0

मैं यह भी सोच रहा हूं कि यह सामान्य व्यवहार है, यह मेरे लिए समान व्यवहार करता है। – ggfela

+0

यह सामान्य नहीं हो सकता है। किसी भी डिवाइस पर किसी भी डिवाइस पर उपयोगकर्ता का पूरा लेनदेन इतिहास उपलब्ध होना चाहिए। – Hyperbole

+0

मुझे आईओएस 7 में यह समस्या आ रही है। पुनर्स्थापना बटन असफल हो जाएगा, लेकिन यदि उपयोगकर्ता फिर से खरीद करने का प्रयास करता है, तो यह कहेंगे कि उन्होंने पहले ही आइटम खरीदा है और पूछें कि क्या वे इसे डाउनलोड करना चाहते हैं। अंत में इसे हल करने के बारे में आप कैसे गए? – SAHM

उत्तर

3

मेरे पास यह अच्छा अधिकार है कि यह ऐप्पल के सर्वर सॉफ़्टवेयर में कहीं भी एक बग है।

+2

मैं इस समस्या को हर समय देखता हूं, खासकर परीक्षण आईट्यून खातों के साथ। आईओएस 7 जीएम में समस्या अभी भी मौजूद है। – jjxtra

3

यह संदेश 'आप इसे पहले से ही खरीद चुके हैं। इसे फिर से डाउनलोड करने के लिए ठीक टैप करें। ' आमतौर पर तब दिखाई देता है जब आप डिफ़ॉल्ट कतार में भुगतान लेनदेन जोड़ते हैं और लेनदेन को पूरा नहीं करते हैं, इसलिए StoreKit मान लीजिए कि उपयोगकर्ता ने आइटम खरीदा है लेकिन यह आपके एप्लिकेशन द्वारा डाउनलोड नहीं किया गया है, इसलिए सुनिश्चित करें कि आपको डिलीवर किया गया है उपयोगकर्ता के लिए आइटम और लेन-देन समाप्त ... I'v उपयोगकर्ता खरीदी गई वस्तुओं और मेरे लिए अपने अच्छे काम को पुनः प्राप्त करने के लिए एक रास्ता मिल गया .. यह

- (void) checkPurchasedItems 
{ 
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 
}//You Call This Function 

//Then this delegate Function Will be fired 
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue 
{ 
    purchasedItemIDs = [[NSMutableArray alloc] init]; 

    NSLog(@"received restored transactions: %i", queue.transactions.count); 
    for (SKPaymentTransaction *transaction in queue.transactions) 
    { 
     NSString *productID = transaction.payment.productIdentifier; 
     [purchasedItemIDs addObject:productID]; 
    } 

} 

purchasedItemIDs कोशिश सभी उत्पाद आईडी में शामिल होंगे उपयोगकर्ता ने इसे खरीदा

+0

हाँ, मैं यह करता हूं। इस कॉलबैक में 'कतार' पैरामीटर लेनदेन पर्यवेक्षक कॉलबैक के जितना खाली है। – Hyperbole

+0

आपको उन सभी उत्पादों के लिए वापस बुलाया नहीं जाता है जिन्हें कभी-कभी बहाल किया जाना चाहिए। आईओएस 7 जीएम में यह अभी भी एक बग है। – jjxtra