我正在应用程序购买中实现恢复。我有一个按钮,其 Action 是
@IBAction func restorePurchases(send : AnyObject){
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
// if (success) {
// I want to do something here
// }
}
我的问题是。
- 这是正确的恢复方式吗?
- 我们如何验证恢复购买的操作是否成功?
最佳答案
不要忘记检查您是否可以付款:
if (SKPaymentQueue.canMakePayments()) {
SKPaymentQueue.default().restoreCompletedTransactions()
}
要检查恢复是否正常,您必须遵循以下协议(protocol):
SKPaymentTransactionObserver
然后实现方法:
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!)
并通过以下方式订阅事件:
SKPaymentQueue.default().add(self)
最后,这是我如何检查结果的一个例子:
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
}
}
}
关于ios - 使用 swift、iOS 恢复应用内购买,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28734890/