Appearance
订单支付结果通知(Webhook)
当订单状态变为「完成」(status = 1)后,平台将向创建订单时提供的 notify_url 发起异步 HTTP POST 通知。
基础约定
- 请求方式:
POST - 请求头:
Content-Type: application/json - 请求体:JSON
- 成功判定:以 HTTP 状态码为准,商户必须返回 HTTP
200 - 通知可能重复:请按幂等方式处理
来源 IP 校验(强制)
商户侧必须对 Webhook 请求做来源 IP 校验(白名单)。
安全校验
当前通知体会包含 api_key 字段用于校验来源合法性。
- 仅接收 HTTPS
- 在网关/防火墙侧限制来源 IP(强制)
- 校验
api_key是否与平台分配给你的密钥一致
通知参数(JSON)
| 参数名 | 类型 | 说明 |
|---|---|---|
| order_no | string | 平台订单号 |
| trade_no | string | 商户侧订单号 |
| amount | string | 金额(单位元) |
| merchant_no | string | 商户号 |
| status | int | 订单状态 |
| api_key | string | 商户密钥(用于校验) |
示例通知
json
{
"order_no": "SY20250630171835855368",
"trade_no": "external_order_1234567222922",
"amount": "100.00",
"merchant_no": "1751266106011309940263252",
"status": 1,
"api_key": "******"
}幂等处理
- 幂等键建议使用
order_no(或trade_no) - 建议将「是否处理成功」写入持久化存储,重复通知直接返回 HTTP
200
响应规范
- 成功:返回 HTTP
200(响应体可为空或返回 JSON) - 失败:返回非
200或超时会被视为失败,平台将触发重试
重试机制
- 触发条件:HTTP 非
200、网络超时、连接失败 - 重试策略:指数退避重试(可能跨分钟/小时级间隔),最长可持续到平台重试窗口结束
- 重试期间通知可能乱序/重复,商户必须按幂等方式处理