【问题标题】:iOS Webhook / Notification for Recurring Payment for AutoRenewable SubscriptionsiOS Webhook / AutoRenewable 订阅的定期付款通知
【发布时间】:2018-01-21 21:28:18
【问题描述】:

在处理定期付款并延长订阅时,iOS 是否会发送自动续订订阅通知? RENEWAL webhook 应该这样解释吗?

【问题讨论】:

标签: ios


【解决方案1】:

我与 Apple 代表交谈过,他们说 Apple 只会发送初次购买的通知。必须像正常交易一样轮询后续续订。

RENEWAL 实际上是在“服务中断和 Apple 的计费重试产品恢复”时发送的。

这是真正的答案,在 Apple 的文档中找不到。我希望这对其他人有所帮助。

【讨论】:

  • 感谢您的回答。 Apple 有没有提到 INTERACTIVE_RENEWAL?根据文档,它应该被发送用于自动续订订阅,但我从你的回答中假设这个事件不是自动发送的,我们需要轮询。
  • 优秀文章逐步讨论如何使用 iOS 处理自动更新订阅:medium.com/@AlexFaunt/…
【解决方案2】:

the documentation 是这么说的:

状态更新通知

statusUpdateNotification 是一种服务器到服务器的通知服务 用于自动更新订阅。通知指定状态 发送通知时的订阅。

为了在您处理事件时获取最新信息,您的应用 应与 App Store 核实最新收据。推荐 您使用状态更新通知服务以及收据 验证以验证用户的当前订阅状态和 为他们提供服务。请参阅收据验证编程指南 有关收据验证的信息。

要接收状态更新通知,请配置订阅 iTunes Connect 中您的应用程序的状态 URL。 App Store 将提供 JSON 对象通过 HTTP POST 发送到您的服务器以进行密钥订阅 表 6-3 中列出的事件。你的服务器负责解析, 解释和回复所有 statusUpdateNotification 帖子。

然后它继续在下面列出通知的条件:

  • INITIAL_BUY 首次购买订阅。将 latest_receipt 作为令牌存储在您的服务器上,以便随时通过 App Store 验证用户的订阅状态。

  • 取消订阅已被 Apple 客户支持取消。检查取消日期以了解取消订阅的日期和时间。

  • RENEWAL 已成功为过期订阅自动续订。检查订阅到期日期以确定下一个续订日期和时间。
  • INTERACTIVE_RENEWAL 客户在订阅到期后以交互方式续订订阅,方法是使用您的应用界面或在 App Store 的帐户设置中。立即提供服务。
  • DID_CHANGE_RENEWAL_PREFERENCE 客户更改了在下一次续订时生效的计划。当前有效的计划不受影响。

所以回答您的问题:是的,成功续订意味着 Apple 收到了您的用户付款(并且您也将获得付款)。

但是,它发送到 iOS,而只是发送到服务器。您需要向 Apple 注册一个 URL,然后他们将在该 URL 上发布这些通知。然后,您的服务器和 iOS 应用实例必须通过您的 Web API 进行通信,以获取应用通知。

【讨论】:

  • 感谢您的回答。我已经设置了 iOS 沙盒环境,并且正在记录 Apple 针对我正在进行的各种测试订阅购买发送的各种通知。但是,我不清楚是否确实发送了 RENEWAL 以进行定期付款,因为 Sandbox 中的行为与此不匹配。
  • 使用 sanbox 测试帐户,事件 INITIAL_BUY 永远不会到达。
【解决方案3】:

是的,根据文档,RENEWAL 在过期订阅自动续订后发送(请注意,这与 INTERACTIVE_RENEWAL 不同,因为 RENEWAL 是由自动续订订阅到期而不是用户操作自动触发的)。

但是,沙盒环境略有不同(参见documentation 中的“测试环境”):

自动更新订阅的行为在测试环境和生产环境之间有所不同。

在测试环境中,订阅续订发生在 加速率,自动续订订阅最多可续订 每天六次。这使您能够测试您的应用程序如何处理 订阅续订、订阅失效和订阅历史 这包括差距。请参阅测试自动续订订阅 iTunes Connect 应用内购买配置指南了解 测试的订阅期限。

由于加快了到期和续订率, 订阅可能在系统尝试续订之前到期 认购,在认购期间留下一个小失误。这样的 由于各种原因,生产中也可能出现失误——使 确保您的应用正确处理它们。

因此,对于您拥有的每个 productId,它在 Sandbox 中每天最多只能自动更新六次。之后,您将停止接收来自 Apple 的 RENEWAL 通知。

【讨论】:

    【解决方案4】:

    您可以使用以下步骤来设置服务器到服务器通知:

    • 登录 App Store Connect 并选择您的应用。
    • 导航到应用信息部分。
    • 将 API-URL 粘贴到“App Store 服务器通知的 URL”字段中。
    • 点击页面顶部的“保存”。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2020-08-15
      • 2011-08-23
      • 2015-09-01
      • 2016-05-11
      • 2014-04-09
      • 2015-07-23
      • 2011-09-15
      相关资源
      最近更新 更多