2012-01-27 11 views
5

जब मैं एक पूर्व में खरीदे गए "स्वत: अक्षय ग्राहकी" मेरे एप्लिकेशन में खरीद लेते हैं, यहस्वत: अक्षय सदस्यता के लिए सदस्यता खरीद पुनर्स्थापित कर रहा है

You're currently subscribed to this... 

कहा जब मैं ठीक क्लिक किया है, भुगतान के प्रतिनिधि में कतार ..

- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    for (SKPaymentTransaction * transaction in transactions) 
    { 
     switch (transaction.transactionState) 
     { 
      case SKPaymentTransactionStatePurchased: 
       [self completeTransaction:transaction]; 
       break; 
      case SKPaymentTransactionStateFailed: 
       [self failedTransaction:transaction]; // Why this is called? 
       break; 
      case SKPaymentTransactionStateRestored: 
       [self restoreTransaction:transaction]; 
      default: 
       break; 
     } 
    } 
} 

transaction.transactionState लौटे SKPaymentTransactionStateFailed Instea है डी एसकेपेमेंट ट्रांज़ेक्शनस्टेटरेटेड, क्या यह सामान्य है?

तो मैं इसे सही तरीके से कैसे संभाल सकता हूं?

उत्तर

1

मेरे पास एक ही समस्या है और मुझे नहीं लगता कि इस घटना को अन्य त्रुटियों से अलग करने का कोई तरीका है (यह त्रुटि कोड SKErrorPaymentCancelled देता है)। मुझे लगता है कि आप इसे संभालने का एकमात्र तरीका "खरीद पुनर्स्थापित करें" बटन रखते हैं, और जब उपयोगकर्ता इसे दबाता है तो [[SKPaymentQueue defaultQueue] restoreCompletedTransactions] पर कॉल करें।

3

असल में, आप यह निर्धारित नहीं कर सकते कि उपयोगकर्ता पहले से सब्सक्राइब हुआ है या नहीं। आपके पास सदस्यता लें जो नए उपयोगकर्ता सब्सक्राइब करने के लिए उपयोग करते हैं, और पहले से सब्सक्राइब किए गए उपयोगकर्ताओं के लिए बटन पुनर्स्थापित करें।

और जब आप SKPaymentTransactionStateFailed मिल आप एक संदेश उपयोग करने के लिए मामले में बटन उपयोगकर्ता पहले से सदस्यता लिया है पुनर्स्थापित पता चलता है कि दिखा सकते हैं।

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