esi*_*ver 24 iphone subscription app-store in-app-purchase ios
伙计们,
我正在尝试验证自动续订订阅是否实际在沙箱环境中续订.首先,沙盒中的自动续订订阅似乎仅在5分钟内有效.说得通.我希望如果我等了五分钟,那就打个电话
https://sandbox.itunes.apple.com/verifyReceipt
根据我的收据数据,我应该看到续订的订阅时间再过了五分钟.
不幸的是,事实并非如此.我看到的是latest_expired_receipt_info响应和21006状态,这意味着"这收据是有效的,但订阅已过期"根据苹果的文档.
任何人都可以告诉我他们是否能够端到端地测试自动续订订阅,包括此更新组件?或者我是否必须启动此应用程序并交叉我的手指,prod将如宣传的那样工作?
或者,在将数据重新发布到verifyReceipt URL之前,我是否需要运行某种客户端魔术/ API调用?
有一些关于这个主题在这里讨论,但如果我可以/应该指望通过发布到verifyReceipt URL,或者如果我必须做的事情在客户端能够在服务器端完全重新验证订阅它不是我清楚一边也是.
谢谢!
小智 43
从Apple的开发者论坛复制,对于那些不愿意转到论坛的人...
想出来(但不是感谢Apple文档):
1个月订阅每5分钟自动续订一次.到现在为止还挺好.他们自动续订5次然后停止,所以25分钟后你会收到21006错误.但是,即使重新购买相同的订阅,它也不会在同一测试帐户上再次自动续订,因为它已经自动续订了5次.因此,如果您想测试续订并且您一直在搞乱这些订阅,您需要创建一个新的itunes connect测试用户.诚实地说这非常烦人,如果我们可以重置测试用户帐户的整个购买历史,那将会容易得多.将所有应用内测试信息放在Xcode文档中也会好得多,而不是将其传播到Xcode docs/iTunes Connect doc /人们自己解决问题
希望这可以帮助.
@Lata Sadhwani,应用程序开发人员
为了测试自动续订订阅,沙箱中的过期时间为 5 分钟(至少对于每月订阅而言,不确定不同时期是否不同)。因此,在沙盒中测试自动续订订阅时,它应该每 5 分钟自动续订一次,并且您知道它们工作正常。
但有一个问题。这些订阅仅自动续订 5 次(即购买发生 6 次)。之后,您在验证收据时会收到错误消息。因此,如果您想在此之后进行测试,则需要使用另一个 IAP 测试帐户进行测试(是的,这是一个痛苦的测试,特别是如果您已经这样做了相当长一段时间!)
要检查订阅是否已取消或是否有效,您的收据验证码将需要解析 Apple 服务器的响应,他们说您应该验证每张收据。如果订阅已过期或已取消,将返回相应的错误代码(非零状态)。如果用户已续订,Apple 服务器将返回最新的收据。