微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐