我设置了应用内购买,以便当用户单击购买按钮时,会出现“请等待”视图,并将付款添加到支付队列中。这总是导致队列的观察者立即回调,表明事务进入了“购买”状态。
当用户在确认购买对话框弹出之前返回主屏幕,然后取消时,我的问题就发生了。如果在切换回应用程序之前,我在主屏幕上等待了一段时间,应用程序永远不会收到任何关于事务切换状态或被删除的回调。如果我检查支付队列,我可以看到交易仍然在队列中,仍然处于“购买”状态。在恢复应用程序后,有没有什么方法可以让它回调并从队列中删除?
发布于 2011-08-12 03:18:19
如果我没理解错的话,你遇到过这个问题:
In App Purchase user cancels tx while app in background: tx state stays on purchasing
这似乎是Apple商店工具包中的一个错误。如果您在启动购买后立即将应用程序发送到后台,然后在提示购买确认弹出窗口时按取消按钮,则很容易重现此问题。您的应用程序将永远不会收到交易失败(已取消)通知,并将进入阻止状态(如果您禁用了UI,试图阻止用户在购买完成之前与应用程序交互)。
我们必须等待苹果的解决方案。同时,如果你的应用因为你在购买时禁用了UI而进入阻塞状态,你应该实现一些机制来允许用户离开该状态。
祝好运!
发布于 2012-06-09 16:33:45
我也有同样的问题,但是,我只在使用沙箱appstore帐户时成功地重现了它。
有没有人用真正的苹果账号复制了它?
我还没有尝试过,但我正在考虑在应用程序失去焦点的那一刻删除我的SKPaymentTransactionObserver,并在下一次激活时重新添加它。
关于这个bug的奇怪之处在于,你被一个处于购买状态的事务卡住了,然而,当你正确地关闭应用程序并重新启动它时,你会认为处于购买状态的事务仍然存在,但它不是……好像重新添加SKPaymentTransactionObserver触发了它正确地重新评估它的状态。
https://stackoverflow.com/questions/4938048
复制相似问题