如何在购买通知中为苹果设置测试和生产环境

Posted

技术标签:

【中文标题】如何在购买通知中为苹果设置测试和生产环境【英文标题】:How to setup test and production environments for apple in purchase notification 【发布时间】:2020-07-25 14:26:57 【问题描述】:

我希望苹果在应用发布后将真实用户的购买通知发送到我的生产环境。

同时,我需要苹果将沙盒测试账户的购买通知发送到我的测试环境。

但是,我只能在苹果连接中从苹果 iap 服务器到服务器通知中配置一个 URL。

我尝试在我的生产环境中接收通知,并解析通知的有效负载,如果是沙箱通知,则将其传递到测试环境。但我认为这不是一个好方法,因为我的测试环境依赖于我的生产环境。

我该如何解决这个问题?

【问题讨论】:

我们有 [dev, test, prod] 环境,无法区分 [dev, test] 环境 【参考方案1】:

很遗憾,您只能配置一个 URL。但是,为什么不自己做分离。创建生产环境和测试环境,并添加一个组件,配置为接收来自 Apple 的通知,然后根据 environment 属性将通知转发到正确的环境。

2021 年更新: 今年晚些时候,Apple 将在 AppStoreConnect 中引入改进的服务器通知部分,您可以在其中配置一个 URL 用于生产,另一个 URL 用于沙盒通知。

【讨论】:

【参考方案2】:

在通知响应中,有一个参数叫做环境(Response body)。这样,您可以确定是应该在生产服务器还是在测试服务器中处理通知。我建议有一个通用 URL 并根据 environment[Sandbox, PROD] 重定向到相应的处理程序。

【讨论】:

以上是关于如何在购买通知中为苹果设置测试和生产环境的主要内容,如果未能解决你的问题,请参考以下文章

如何在 macOS 应用程序的生产环境中测试推送通知?

无需花钱即可在生产环境进行应用内购买测试

如何在单个 iOS 项目/应用程序中为发布和调试模式(测试和生产环境)制作不同的 Firebase 数据库?

推送通知在开发和生产模式下如何工作(pushwoosh)

Firebase 通知测试 生产可能吗?

如何使推送通知在 iOS 的生产环境中工作?