0

我正在尝试在我们的服务器后端实现对应用内购买退款通知的处理(App Store 将 responseBody JSON 数据发送到应用开发人员键入的服务器通知 url)。但是在应用内购买成功退款后,我无法从 App Store 收到任何通知。

这是我在我们的服务器中处理退款通知所做的事情的列表。

  1. 转到App Store Connect > 输入“App Store Notification Url”:“https://ourServerUrl/notifyRefund”(支持 TLS 1.2)

  2. 我们的服务器接受“POST”请求并定义 @RequestBody 参数,如responseBody中所述

  3. 从我们的 iOS 应用程序购买产品(“消耗品”)(约 0.99 美元)-purchase_date = 2021-03-03

  4. 转到reportaproblem.apple.com并申请退款。-> 第二天 App Store 处理了退款,我的 0.99 美元成功退还到我的银行账户。退款日期 = 2021-03-04

完成上述步骤后,我仍然无法从 App Store 收到通知。我读了一篇关于通知延迟的帖子,但我不确定这是因为延迟还是我的服务器配置有问题。

苹果文档。

4

1 回答 1

0

2021-03-24 更新在 Server <--> App (iOS/Android) 通信中,我们服务器的视图解析器 (ContentNegotiatingViewResolver) 根据请求标头 (Content-Type, Accept) 确定默认视图 (TextPlainView, JsonView)

由于苹果通知回调响应(对我们服务器的请求)没有“Accept”标头,因此我们的服务器在“servlet-context.xml”中的服务器配置之后将默认视图解析器设置为 TextPlainView 它已导致错误,因为 Apple 通知响应在json格式。

将我们的服务器默认视图设置更改为 json 视图后,我们能够解析苹果通知 responseBody。我希望它可以帮助开发人员处理类似的问题。

于 2021-03-24T05:13:25.743 回答