我正在尝试检查iOS7上的自动续订订阅是否仍然有效。应用收据具有该订阅的到期日期信息。在此期限过后,我想刷新应用收据以查看订阅是否已续订且未过期。
我们应该如何刷新应用收据而不询问用户的iTunes凭据?
restoreCompletedTransactions和SKReceiptRefreshRequest都需要用户的凭据。
来自Apple's "Working with Subscriptions" doc:
成功续订订阅后,Store Kit会添加一个 用于续订事务队列的事务。 您的应用检查 启动时的事务队列,并以相同的方式处理续订 与任何其他交易一样。 请注意,如果您的应用已在运行 当订阅更新事务时,不会调用观察者; 您的应用会在下次启动时发现续订。
在启动时检查事务队列意味着什么?我想上面提到的任何方法,但是应用程序正在请求用户输入他的凭据。
在iOS7中,我们不应该通过手机查看Apple Server,这是关于检查应用程序的收据,对吗?
顺便说一下,我正在测试环境中开发。应用程序的收据是否有可能在真实环境中自动更新?那就是我的问题的答案。
答案 0 :(得分:3)
所有这一切意味着检查启动时的交易是每次运行应用程序时调用一次,而不仅仅是在购买之前。
[[SKPaymentQueue defaultQueue] addTransactionObserver:anObserver];
这样可以处理任何续订或中断/未完成的交易。
答案 1 :(得分:0)
你不能,它内置于操作系统的核心,这是你能做到的唯一方法。
交易队列是用户购买的iOS仍在处理的事项列表,当您的应用启动商店套件时,将通过此列表并处理它。
苹果意味着你的意思是不要将它存储在你自己的服务器上并以这种方式进行验证。和过去一样,人们只依靠Apple的服务器验证它,然后被中间人攻击,让黑客免费获取东西。
我认为您需要验证收据,并且在订阅更新时,我相信苹果会在用户提供详细信息后立即向您的申请发送新申请。