在其他设备上恢复应用内购买时,请恢复购买而非恢复来电
按钮已正确连接
如果先前已按下购买(即使已取消),即使该应用已进入后台,也会解决此问题。
仅在其他设备上恢复购买时出现
自动续订订阅
按下购买
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().addPayment(pay as SKPayment)
Storekit
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
println("Purchasing")
恢复按下
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
Storekit应该致电
func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {
println("transactions restored")
实际上是打电话(如果先前没有点过购买,则在另一台设备上打电话)
func paymentQueue(queue: SKPaymentQueue!, updatedTransactions transactions: [AnyObject]!) {
println("Purchasing")
更新
添加
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
})
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
对于大部分时间的恢复按下修复,可以使用更永久的解决方案
答案 0 :(得分:0)
您应该尽快设置事务观察器(调用application:didFinishLaunchingWithOptions:
时),而不是在处理恢复按钮时设置。根据{{3}}:
您的应用程序应在应用程序初始化期间将观察者添加到付款队列。如果没有观察员附加到队列,则支付队列不会将其待处理事务列表与Apple App Store同步,因为没有观察者响应更新的事务。