swift – SKPaymentQueue没有为自动续订订阅产品完成SKPaymentTransaction

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

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
            }
        }
    }
}

如上所述,在paymentQueue:updatedTransactions:方法中,调用queue.finishTransaction(事务).通常情况下,交易已完成,不再停留.

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

func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // add transaction observer
    SKPaymentQueue.defaultQueue().addTransactionObserver(CargoBay.sharedManager())

    ....

    return true
}

你们对这个问题有什么看法吗?有没有SKPaymentQueue.defaultQueue().finishTransaction(交易)没有完成交易的情况?

解决方法

您是否有可能再次看到相同的交易,而是从iTunes沙箱中获得新的自动续订交易?

在iTunes沙箱中测试自动续订订阅时,他们会人为地加快续订速度.这会导致每隔几分钟就会出现一个新事务.

Testing Your App and In-App Purchase Products开始:

When testing auto-renewable subscriptions in the test environment,keep in mind that the duration times are compressed. Additionally,test subscriptions only auto-renew a maximum of six times.

  • 1 week : 3 minutes
  • 1 month : 5 minutes
  • 2 months : 10 minutes
  • 3 months : 15 minutes
  • 6 months : 30 minutes
  • 1 year : 1 hour

相关文章

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还...
Appuploader官网--IOS ipa上传发布工具,证书制作工具跨平台...
苹果在9月13号凌晨(北京时间)发布 iOS 16,该系统的设备可...
计算机图形学--OpenGL递归实现光线追踪
Xcode 14打出来的包在低版本系统运行时会崩溃,报错信息是Li...