配置
在网关配置中设置您的 Webhook 端点 URL 和共享密钥:webhook-secret 用于计算每个 Webhook 负载中的 sign 字段,使您能够验证通知确实来自您的网关。
负载格式
每个 Webhook 回调都是一个POST 请求,JSON 体遵循 NotifyPayload 结构:
示例负载
签名验证
使用您的webhook-secret 验证 Webhook 签名:
算法
- 将
data对象(负载中的data字段)序列化为紧凑 JSON。 - 计算
HMAC-SHA256(data_json, webhook_secret)。 - 转换为小写十六进制并与
sign字段比较。
Node.js
Python
重试策略
如果您的端点在 10 秒内未返回2xx 状态码,XPayLabs 会使用指数退避重试 Webhook:
4 次尝试失败后,通知被标记为失败。失败的 Webhook 会被记录,并可从网关管理面板重新发送。
最佳实践
- 立即响应。 尽快返回
200,然后异步处理事件。 - 验证每个负载。 在处理 Webhook 之前始终检查 HMAC 签名。
- 使用
nonce去重。 存储已处理的 nonce 以处理至少投递一次的模式。 - 检查
notifyType。 根据通知类型路由事件以正确处理每个事件。

