小编Mad*_*han的帖子

在 swift、iOS 中恢复 InApp 购买总是失败并出现错误

我正在尝试使用带有真实设备的沙盒测试用户购买一些自动更新订阅,一切正常,当时我可以看到此 SKPaymentTransactionObserver 方法也成功运行:

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    for transaction:AnyObject in transactions {
        if let trans = transaction as? SKPaymentTransaction {
            switch trans.transactionState {
                
            case .purchased:
                print("Success")
                SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                break
            case .failed:
                print("Fail")
                SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                break
            case .restored:
                print("restored")
                SKPaymentQueue.default().finishTransaction(transaction as! SKPaymentTransaction)
                break
            default:
                print("Called .purchasing .deferred state")
                break
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还添加了另外两个可选的 SKPaymentTransactionObserver 方法,当用户要恢复购买时使用它们,以下是这些方法:

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {
            print("Restore completed")
            
            let transactionCount = queue.transactions.count
            if transactionCount == 0{
                print("No previous transactions found") …
Run Code Online (Sandbox Code Playgroud)

itunes-store in-app-purchase ios swift auto-renewable

8
推荐指数
1
解决办法
204
查看次数