2015-02-26 12 views
5

मैं ऐप खरीद में पुनर्स्थापित कर रहा हूं। मेरे पास एक बटन है जिसका कार्यस्विफ्ट का उपयोग करके इनएप खरीद को पुनर्स्थापित करें, आईओएस

@IBAction func restorePurchases(send : AnyObject){ 

SKPaymentQueue.defaultQueue().restoreCompletedTransactions() 
// if (success) { 
// I want to do something here  
// } 
} 

मेरा प्रश्न है।

  1. क्या यह बहाल करने का सही तरीका है?
  2. हम खरीदारी को बहाल करने के लिए सफलता की कार्रवाई कैसे सत्यापित कर सकते हैं?

उत्तर

23

मत भूलना आप भुगतान कर सकते हैं, तो जाँच करने के लिए: SKPaymentTransactionObserver और फिर विधि को लागू: जांच अगर बहाल अच्छा था आप प्रोटोकॉल का पालन करने के लिए है के लिए

if (SKPaymentQueue.canMakePayments()) { 
    SKPaymentQueue.default().restoreCompletedTransactions() 
} 

SKPaymentQueue.default().addTransactionObserver(self) 
012:
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) 

और ऐसा करके घटना की सदस्यता

func paymentQueue(_ queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) { 
    print("Received Payment Transaction Response from Apple"); 
    for transaction in transactions { 
    switch transaction.transactionState { 
    case .purchased, .restored: 
     print("Purchased purchase/restored") 
     SKPaymentQueue.default().finishTransaction(transaction as SKPaymentTransaction) 
     break 
    case .failed: 
     print("Purchased Failed") 
     SKPaymentQueue.default().finishTransaction(transaction as SKPaymentTransaction) 
     break 
    default: 
     print("default") 
     break 
    } 
    } 
} 
: अंत में यहाँ

कैसे मैं परिणाम की जाँच का एक उदाहरण है

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