【发布时间】:2018-01-21 21:28:18
【问题描述】:
在处理定期付款并延长订阅时,iOS 是否会发送自动续订订阅通知? RENEWAL webhook 应该这样解释吗?
【问题讨论】:
-
查看我对这个问题的回答:stackoverflow.com/questions/50947948/…
标签: ios
在处理定期付款并延长订阅时,iOS 是否会发送自动续订订阅通知? RENEWAL webhook 应该这样解释吗?
【问题讨论】:
标签: ios
我与 Apple 代表交谈过,他们说 Apple 只会发送初次购买的通知。必须像正常交易一样轮询后续续订。
RENEWAL 实际上是在“服务中断和 Apple 的计费重试产品恢复”时发送的。
这是真正的答案,在 Apple 的文档中找不到。我希望这对其他人有所帮助。
【讨论】:
the documentation 是这么说的:
状态更新通知
statusUpdateNotification 是一种服务器到服务器的通知服务 用于自动更新订阅。通知指定状态 发送通知时的订阅。
为了在您处理事件时获取最新信息,您的应用 应与 App Store 核实最新收据。推荐 您使用状态更新通知服务以及收据 验证以验证用户的当前订阅状态和 为他们提供服务。请参阅收据验证编程指南 有关收据验证的信息。
要接收状态更新通知,请配置订阅 iTunes Connect 中您的应用程序的状态 URL。 App Store 将提供 JSON 对象通过 HTTP POST 发送到您的服务器以进行密钥订阅 表 6-3 中列出的事件。你的服务器负责解析, 解释和回复所有 statusUpdateNotification 帖子。
然后它继续在下面列出通知的条件:
INITIAL_BUY 首次购买订阅。将 latest_receipt 作为令牌存储在您的服务器上,以便随时通过 App Store 验证用户的订阅状态。
取消订阅已被 Apple 客户支持取消。检查取消日期以了解取消订阅的日期和时间。
所以回答您的问题:是的,成功续订意味着 Apple 收到了您的用户付款(并且您也将获得付款)。
但是,它不发送到 iOS,而只是发送到服务器。您需要向 Apple 注册一个 URL,然后他们将在该 URL 上发布这些通知。然后,您的服务器和 iOS 应用实例必须通过您的 Web API 进行通信,以获取应用通知。
【讨论】:
INITIAL_BUY 永远不会到达。
是的,根据文档,RENEWAL 在过期订阅自动续订后发送(请注意,这与 INTERACTIVE_RENEWAL 不同,因为 RENEWAL 是由自动续订订阅到期而不是用户操作自动触发的)。
但是,沙盒环境略有不同(参见documentation 中的“测试环境”):
自动更新订阅的行为在测试环境和生产环境之间有所不同。
在测试环境中,订阅续订发生在 加速率,自动续订订阅最多可续订 每天六次。这使您能够测试您的应用程序如何处理 订阅续订、订阅失效和订阅历史 这包括差距。请参阅测试自动续订订阅 iTunes Connect 应用内购买配置指南了解 测试的订阅期限。
由于加快了到期和续订率, 订阅可能在系统尝试续订之前到期 认购,在认购期间留下一个小失误。这样的 由于各种原因,生产中也可能出现失误——使 确保您的应用正确处理它们。
因此,对于您拥有的每个 productId,它在 Sandbox 中每天最多只能自动更新六次。之后,您将停止接收来自 Apple 的 RENEWAL 通知。
【讨论】: