我已经阅读了很多关于使用您自己的用户登录系统处理自动更新订阅的SO解答,但有一个问题,我仍然不确定如何处理:在用户注销时触发事务观察器时要执行的操作。自动更新的订阅:当用户注销时处理购买
苹果建议实施权在App委托事务观察员:
添加您的应用在发射观察员将确保自己在你的应用程序的所有发射坚持 ,从而使您的应用程序接收所有 付款队列通知。
说用户开始购买,但它不立即完成(例如,因为它需要由他们的父母批准,或应用程序崩溃等)。用户注销并再次打开该应用程序,由于我们正在观察App Delegate中的事务,所以在启动应用程序时,我们可能会在他登录之前立即收到事务。然后,我们不知道要将哪个用户关联到该订阅。
两个想法:
非理想:我应存储的事实,有一个订阅悬而未决,假设第一个用户登录将是正确的,然后关联在他们登录后以某种方式给他们?如果是这样,我会在哪里保存收据? KeyChain,UserDefaults?这听起来很笨拙。
另一种听起来更好的方式是:我可以在启动时存储有关事务的一些信息,然后使用这些字段中的一个实际确切知道哪些用户的订阅购买刚完成?
(不特别相关,但FYI我使用SwiftyStoreKit)。
谢谢,你的答案有帮助。这基本上意味着忽略completeTransaction步骤 - 意思是我们只需要完成交易,如果needsFinishTransaction,而不是升级任何用户帐户。不完美。但如果我们在购买任何订阅或IAP(我不知道)之前确实可以获取appStoreReceipt来识别它们,这意味着我们可以使用它来检查哪个用户应该升级, completeTransaction,通过在我的数据库中查找收据ID。这样我们可以避免在每个应用程序打开或登录时检查。再次感谢。 – Kqtr
可以有人回答我的问题 https://stackoverflow.com/questions/45433136/how-subscription-status-url-works-for-apple-in-app-purchases-auto-renewable – Sukeshj