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