我在一个项目的应用内购买中遇到一个奇怪的错误。
该客户报告说,当他们购买自动续订订阅时,没有任何反应;日志记录表明该应用程序已正确将付款添加到队列中,但从未获得该交易的任何状态更改通知(即它永远保持在购买状态)。
应用启动后,它会注册为付款队列的侦听器(根据Apple的准则),并且可以看到较早的交易仍在购买状态。例如,在我收到的一条日志中,发现队列中有六笔交易,并且它们都处于“购买”状态。
我怀疑正在发生的事情是付款已以某种方式停留在“购买”状态,并且从未转换为“已购买”或“失败”。结果,其他交易正在堆积。但是,我的搜索没有找到其他此类报告。
最终结果是,当用户在其某些设备上(而非全部)上开始进行应用内购买时,不会出现任何用户界面。
我的背景阅读表明它可能与以下问题有关:
但是,当我尝试通过按“主页”按钮以转回它们的行为来重现他们的行为(在事务中间从应用程序转出)时,系统忽略了按钮的按下;我试图通过从Xcode中删除该应用程序来解决该问题,但是实际上,在删除该应用程序时,它只是将UI保留在屏幕上。
并非所有测试人员都报告此问题,我无法自己重现此问题,但是日志很清楚地说明了遇到此问题的设备上的购买行为。我的问题:在什么情况下会发生这样的交易“卡住”?
对于上下文,这一切都在沙盒环境和iOS 11.2及更高版本上。