1

我正在尝试检查自动续订订阅在 iOS7 上是否仍然有效。应用收据包含该订阅的到期日期信息。过了那个期限后,我想刷新一下应用收据,看看订阅是否已经续订并且没有过期。

我们应该如何在不询问用户 iTunes 凭据的情况下刷新应用收据?

restoreCompletedTransactions和SKReceiptRefreshRequest需要用户的凭据。

来自Apple 的“使用订阅”文档

订阅成功续订后,Store Kit 将续订事务添加到事务队列中。您的应用程序在启动时检查事务队列,并以与任何其他事务相同的方式处理更新。请注意,如果您的应用程序在订阅更新时已经在运行,则不会调用事务观察器;您的应用会在下次启动时发现续订

启动时检查事务队列是什么意思?我想上面提到的任何方法,但是应用程序要求用户输入他的凭据。

在iOS7中,我们不应该从手机上检查Apple Server,而是检查应用程序的收据,对吧?

顺便说一句,我正在测试环境中开发。应用程序的收据是否有可能在真实环境中自动更新?那将是我的问题的答案。

4

2 回答 2

3

在启动时检查交易的所有含义是每次运行应用程序时调用一次,而不仅仅是在购买之前。

[[SKPaymentQueue defaultQueue] addTransactionObserver:anObserver];

这样就可以处理任何续订或中断/不完整的交易。

于 2013-11-08T05:02:14.713 回答
0

你不能,它内置在操作系统的核心中,这是你能做到的唯一方法。

交易队列是用户购买的东西的列表,iOS 仍在处理,当您的应用启动时,商店工具包将通过此列表并处理它。

苹果的意思是您不应该将其存储在自己的服务器上并以这种方式进行验证。与过去一样,人们只是依靠 Apple 的服务器对其进行验证,然后受到中间人的攻击,这使得黑客可以免费获取东西。

我认为您需要验证收据,并且当订阅更新时,我相信苹果会在用户提供他的详细信息后立即向您的应用程序发送一个新应用程序。

于 2013-10-18T12:12:05.347 回答