> ## Documentation Index
> Fetch the complete documentation index at: https://waffo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook - 重试与失败恢复

> Webhook 重试机制与失败恢复策略。

## 重试机制

当商户未返回 `{"message": "success"}`（返回 failed/unknown、HTTP 非 200、请求超时、响应无法解析）时，Waffo 自动重试。

## 重试策略

最多重试 **8 次**（含首次通知），间隔递增：

| 次数    | 间隔    | 累计时间     |
| ----- | ----- | -------- |
| 第 1 次 | 即时    | 0        |
| 第 2 次 | 30 秒  | 30s      |
| 第 3 次 | 1 分钟  | \~1.5min |
| 第 4 次 | 4 分钟  | \~5.5min |
| 第 5 次 | 30 分钟 | \~35min  |
| 第 6 次 | 4 小时  | \~4.5h   |
| 第 7 次 | 8 小时  | \~12.5h  |
| 第 8 次 | 8 小时  | \~20.5h  |

<Note>8 次全部失败后，通知状态标记为最终失败，不再重试。</Note>

## 失败恢复

如果所有重试都失败：

1. **主动查询**：调用订单查询或订阅查询 API 获取最新状态
2. **对账**：定期批量查询订单状态，并与本地记录进行比对
3. **联系支持**：持续收不到 Webhook，检查网络配置或联系 Waffo 技术支持

## 常见失败原因

* 商户 `notifyUrl` 不可达（网络、端口非 80/443）
* 响应 body 不是 `{"message": "success"}`（如拼写错误、多余字段）
* 响应 Content-Type 不是 `application/json`
* 响应缺少 `X-SIGNATURE` Header
* 商户服务端处理超时

## 注意事项

<Note>
  * 重试可能导致事件乱序到达，处理时以终态为准
  * 不要仅依赖 Webhook，建议配合主动查询作为兜底
  * 确保你的 Webhook 处理逻辑具备幂等性
</Note>
