9

我正在我的应用程序中实现自动更新订阅,我想知道是否有一种方法可以模拟订阅期何时结束并创建新事务。

该应用程序连接到在线服务,该服务始终跟踪用户以及他们是否具有“高级访问权限”。据了解,有两种方法可以检测何时进行交易。

  1. 该应用程序启动并更新了Transactions:在我的 PaymentObserver 中作为 SKPaymentTransactionStateRestored 调用。然后,我从应用程序将此信息发送到更新订阅的服务器。

  2. 我定期检查 App Store API 并将“最新收据”与我数据库中的收据进行比较。如果有新的,则已经进行了交易,我延长了订阅。

无论哪种方式,我都需要模拟订阅期结束并且 App Store 进行了新交易。我该怎么做呢?

4

4 回答 4

7

沙盒环境自动模拟订阅续订。1 年订阅将每 1 小时更新一次。1 个月的订阅似乎每 5-6 分钟更新一次。

每个订阅似乎续订 5 倍。此时,订阅被取消。每次续订都会触发发送到客户端应用程序的已恢复事务。

这一切都是基于我的经验。我无法从 Apple 找到任何官方文档。

于 2011-05-15T20:20:22.007 回答
3

你确定你需要模拟这个吗?我想你会发现在沙盒中,订阅时间非常短,所以你所要做的就是喝杯咖啡什么的,它们就会过期,然后你就可以测试会发生什么。

时间长短取决于订阅的长度,但我认为 7 天订阅在沙盒中只需几分钟即可到期。

于 2011-04-29T17:47:25.227 回答
1

实际上,更新似乎在 Sandbox 中不起作用。看起来你总是在购买过程中。自动续订应该是“隐藏的”,因为 AppStore 会自动重新执行它,直到用户明确“取消”它。在沙盒中,每 5 分钟您必须重新购买一次。

最后,“您已经在应用程序内购买了该应用程序”中存在一个错误,因为它应该发送正确的交易,但它只是发送错误代码。

于 2011-07-01T13:10:42.713 回答
0

实际上,我体验到沙盒中的更新是非常不可预测的。有时它像描述的那样工作,有时它的工作方式非常不同,有时它根本不起作用(也就是说,作为一个开发人员,在商店里有一个应用程序,实际上使用应用程序内购买和自动更新订阅,显然在生产中成功)。就在此刻,我在沙盒中有一个每月订阅,其原始购买日期为 27 小时前,到期日期为 3 小时前。我真的很想知道如果回答像那样荒谬,你应该如何测试这个。

于 2013-05-15T13:07:54.123 回答