Interrupted Purchase not calling delegate after accepting Tamp;C(接受Tamp;C后未调用代理人中断采购)
问题描述
在实际设备上测试中断的购买,下面的项目#10未在同一会话中出现。仅当- 应用程序已重新启动
- 应用程序转到后台,然后返回前台
(对于#2,我假设这是因为当APP返回前台时,会再次调用
TransactionObserver
?)
这也谈到了类似的事情: Apple In App Purchase, Interrupted purchase in sandbox
https://developer.apple.com/documentation/storekit/original_api_for_in-app_purchase/testing_in-app_purchases_with_sandbox/testing_an_interrupted_purchase
推荐答案
我多周来一直在努力寻找解决此问题的方案。浏览了许多这样的帖子,也浏览了苹果论坛的帖子。
引用线程:
- https://developer.apple.com/forums/thread/674081
- https://developer.apple.com/forums/thread/671492
- https://developer.apple.com/forums/thread/685938
- Apple In App Purchase, Interrupted purchase in sandbox
根据Apple Docs,中断的交易应该在用户同意T&;C/继续中断的购买后发送失败然后购买(但实际上似乎没有发生-请参阅上面的链接帖子)
这就是我最终得到的当前解决方案。这不完全是理想的,但考虑到当时的情况,这是(我发现的)最好的。请参阅链接#3,其中用户观察到调用restoreCompletedTransactions()
实际上能够让事务观察器处理(已完成)中断的事务。通过这种方式,用户不必关闭(后台),然后再次打开应用程序。(请注意,我再次尝试了调用事务观察器的各种方法,但都不起作用)
这是我的解决方案。
这是用户按"确定"按钮后调用restoreCompletedPurchases()
的purchaseIapFailed()
的内容。
交易恢复后,将继续触发后续代码进行购买,发送(购买完成/成功)通知,然后弹出警告消息,告知用户购买成功且已入账。
这篇关于接受T&;C后未调用代理人中断采购的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!