【发布时间】:2017-04-17 21:41:48
【问题描述】:
我正在尝试在 Swift 3 中使用应用内购买。我可以在我的测试设备上成功付款。单击时我在屏幕顶部有一个恢复按钮应该恢复所有以前的购买。这是我用来恢复的代码。我在函数中的队列总是空的。请帮我解决这个问题。
func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
for transaction in queue.transactions{
let trans: SKPaymentTransaction = transaction as SKPaymentTransaction
let prodID = trans.payment.productIdentifier as String
switch prodID {
case "some_iap":
print("Do something")
finishTransaction(trans)
default: break
}
}
updatePurchases()
}
func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error) {
print("error in restore")
}
func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for trans in queue.transactions{
let trans: SKPaymentTransaction = trans as SKPaymentTransaction
print(trans.transactionState.rawValue)
switch (trans.transactionState) {
case .purchased:
let prodID = p.productIdentifier as String
switch prodID {
case "some_iap":
print("do something")
updatePurchases()
finishTransaction(trans)
default:
print("defualt")
finishTransaction(trans)
}
case .failed: break
default: break
}
}
}
func finishTransaction(_ trans:SKPaymentTransaction){
SKPaymentQueue.default().finishTransaction(trans)
SKPaymentQueue.default().remove(self)
}
func paymentQueue(_ queue: SKPaymentQueue, removedTransactions transactions: [SKPaymentTransaction]) {
}
【问题讨论】:
标签: ios in-app-purchase swift3