Apple iOS 应用内购买服务器到服务器通知的“取消”通知案例?
Posted
技术标签:
【中文标题】Apple iOS 应用内购买服务器到服务器通知的“取消”通知案例?【英文标题】:Apple iOS Inapp purchase Server to Server Notifications' 'Cancel' notification cases? 【发布时间】:2019-10-14 18:39:51 【问题描述】:我们一直在沙盒环境中反复测试 In App purchase Server to Server 通知。 Apple 的文档 here 声明 Cancel 类型通知:
表示订阅已被 Apple 客户支持或在用户升级订阅时被 App Store 取消。 cancel_date 键包含取消或升级订阅的日期和时间。
因此,当我们从订阅组执行产品升级时,我们应该收到Cancel
通知,但我们却收到了INTERACTIVE_RENEWAL
?这是因为我们在沙盒环境中进行测试。我们是否在生产中获得了CANCEL
,如果是,我们是否还应该期待另一个INTERACTIVE_RENEWAL
在生产中。
【问题讨论】:
【参考方案1】:如果订阅已由 Apple 支持部门退还,您只会收到 CANCEL
通知。您应该期待 INTERACTIVE_RENEWAL
升级事件。
【讨论】:
没错,这就是我所观察到的。但是 Apple 的文档明确提到,对于升级,CANCEL
也应该出现。你有同样的支持证词吗?另外,我只在 Sandbox 中进行了测试,不确定生产中是否会有不同的行为。
WWDC 2019 在他们的一个演示文稿中提到,如果升级,您应该期待两个通知 CANCEL
和 INTERACTIVE_RENEWAL
。【参考方案2】:
这是因为我们在沙盒环境中进行测试。我们是否在生产中获得了 CANCEL,如果是,我们是否还应该期待另一个 INTERACTIVE_RENEWAL 在生产中。
正确。此行为是由于 Sandbox env 造成的。 在生产中,您会同时收到通知。
来自 Apple 文档: CANCEL - 表示当用户升级订阅时,Apple 客户支持或 App Store 取消了订阅。 cancel_date 键包含取消或升级订阅的日期和时间。
https://developer.apple.com/documentation/storekit/in-app_purchase/enabling_server-to-server_notifications
【讨论】:
【参考方案3】:如果您今天查看 CANCEL
(20210404) 的文档,您会看到 CANCEL 通知不再提及升级时发送的部分。他们更改了文档(我想也更改了行为),但没有明确提及(例如更改日志),并且不包括文档页面的修改时间。因此,作为开发人员,我们很难以一种简单的方式检测到变化。
【讨论】:
以上是关于Apple iOS 应用内购买服务器到服务器通知的“取消”通知案例?的主要内容,如果未能解决你的问题,请参考以下文章
ios:应用内购买内容在下载 95% 后停止从 Apple 服务器下载