我已經完成了一個小應用程序,我有一個非消耗購買選項。它在App Store上。恢復購買:非消耗品
購買產品運行正常。這是我的恢復購買功能,似乎什麼都不做。
我加入此代碼爲恢復購買@IBAction
:
@IBAction func restorePurchases(sender: AnyObject) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
但沒有任何反應,當我打的恢復購買按鈕。
我想我必須添加一個函數來檢查恢復是否成功。我打算修改以下代碼:
@IBAction func restorePurchases(sender: AnyObject) {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
for transaction:AnyObject in transactions {
if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{
switch trans.transactionState {
case .Restored:
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
var alert = UIAlertView(title: "Thank You", message: "Your purchase(s) were restored.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
break;
case .Failed:
SKPaymentQueue.defaultQueue().finishTransaction(transaction as SKPaymentTransaction)
var alert = UIAlertView(title: "Sorry", message: "Your purchase(s) could not be restored.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
break;
default:
break;
}
}
}
這是否有訣竅?
我已經完成了與恢復購買交易有關的每個線索,而且我的研究使我得到了上述結論。所以我不認爲這是一個問題的重複,但也許可以澄清如何成功恢復面臨類似情況的其他人的採購。
已採納您的代碼。 100%完美:-) –
我的快樂,快樂的編碼 – crashoverride777
從Xcode 7.3和swift 2.2開始,這個代碼必須稍微改變,因爲錯誤現在在枚舉中處理。我稍後會更新我的答案。查看http://stackoverflow.com/questions/36156724/unresolved-identifier-skerrorpaymentcancelled – crashoverride777