2

我正在实现管理 IOS 应用程序订阅的服务器端应用程序。要在后端控制帐户状态(订阅是否处于活动状态),我正在使用Apple Server-to-Server Notifications

文档说:

响应服务器到服务器的通知您的服务器应该发送一个 HTTP 状态代码来指示服务器到服务器的通知发布是否成功:

如果发布成功,则发送 HTTP 200。您的服务器不需要返回数据值。

如果发布不成功,发送 HTTP 50x 或 40x 让 App Store 重试通知。App Store 在一段时间内多次尝试重试通知,但在连续尝试失败后最终停止。

但是,如果我这边出现服务器错误,目前尚不清楚苹果会遵循哪个重试策略。我正在寻找以下问题的答案

  1. 苹果会重试多少次?
  2. 重试之间的间隔是多少?
4

3 回答 3

1

正如您所说,Apple 没有在文档中提供明确的答案。但是,来自 Apple WWDC 2019 会议视频:https ://developer.apple.com/videos/play/wwdc2019/302/?time=637

“但是,如果您不返回 200 响应,我们将重试最多 3 次以重新向您发送通知”

一些手动测试建议他们重试消息一小时。

于 2020-04-22T18:38:09.677 回答
0

Apple 将在 3 天内尝试重试 3 次。

于 2020-06-20T13:06:06.860 回答
0

参考:https ://developer.apple.com/documentation/appstoreservernotifications/your_server

收到服务器通知后,如果发布成功,则使用 HTTP 状态代码 200 响应 App Store。如果发布不成功,请发送 HTTP 50x 或 40x 让 App Store 重试通知。

如果 App Store 服务器在初始通知尝试后未从您的服务器收到 200 响应,它会重试 3 次。App Store 在首次尝试后的 6、24 和 48 小时后重试。虽然 App Store 服务器通知会实时报告状态变化,但您始终可以启动收据验证以获取最新的收据。了解更多信息

于 2021-09-08T14:12:33.730 回答