小编Mik*_*ike的帖子

SKPaymentQueue未完成自动续订订阅产品的SKPaymentTransaction

我正在尝试实施自动续订订阅产品.问题是SKPaymentQueue无法SKPaymentTransaction通过呼叫完成SKPaymentQueue.defaultQueue().finishTransaction(transaction).

func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    if let transactions = transactions as? [SKPaymentTransaction] {
        for transaction in transactions {
            switch transaction.transactionState {
            case .Purchasing:
                break
            case .Purchased:
                queue.finishTransaction(transaction) // finish transaction
                self.purchasedWithTranasction(transaction)
            case .Failed:
                queue.finishTransaction(transaction) // finish transaction
                self.failedWithTransaction(transaction)
            case .Restored:
                queue.finishTransaction(transaction) // finish transaction
                self.restoredWithTransaction(transaction)
            case .Deferred:
                queue.finishTransaction(transaction) // finish transaction
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如上所述,在paymentQueue:updatedTransactions:方法中,queue.finishTransaction(transaction)被称为.通常情况下,交易已完成,不再停留.

但是,当我再次运行该应用程序时,该交易仍未完成.顺便说一句,我在AppDelegate中设置了事务观察器,如下所示.因此,当应用程序启动时,剩余的事务开始通过调用进行处理paymentQueue:updatedTransactions:.这不像我的期望.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: …
Run Code Online (Sandbox Code Playgroud)

xcode storekit in-app-purchase swift skpaymenttransaction

5
推荐指数
1
解决办法
682
查看次数