2011-04-06 47 views
7

我在我的应用程序中实现了自动更新订阅,我不知道是否有一种方法来模拟订阅期满和创建新的事务时。如何测试可更新订阅(App Store)

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

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

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

无论采用哪种方式,我需要模拟订阅期结束,App Store创建新的事务。我该怎么做呢?

回答

2

你确定你需要模拟这个吗?我想你会发现,在沙箱中,订阅时长非常短,所以你只需要喝一杯咖啡或什么东西就可以过期,然后你就可以测试发生了什么。

时间长短取决于订阅的长度,但我认为7天订阅会在沙盒中几分钟内过期。

+0

啊,没有注意到,谢谢! – oskob 2011-05-24 14:14:35

+0

权利,7天订阅最后* 3分钟*在沙箱环境。 – yonel 2011-08-31 11:57:44

+2

一个警告:订阅将只自动更新5次。之后,如果您购买,他们将不再自动续订。你必须创建一个新的测试用户来做到这一点! – Jarson 2012-03-10 00:38:44

3

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

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

这都是基于我的经验。我找不到来自Apple的任何官方文档。

+2

这里全部记录(需要开发人员登录):http://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf – TomSwift 2011-08-24 22:38:49

0

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

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

0

其实,我在沙箱中遇到更新是非常不可预测的。有时它的工作原理与上述相同,有时它的工作原理完全不同,有时甚至根本不起作用(说作为一家开发商,其应用程序实际上是通过自动更新订阅使用In-App-Purchases,显然已成功投入生产)。 就在此刻,我在沙盒中订购了一个月,原订购买日期从27个小时后开始,到期日为三个小时。我真的很想知道如果你的回答是荒谬的,你应该怎么测试这个。