测试您的 Webhook 端点:上线前检查清单
Webhook 成功一次还不够。用这份清单确认您的服务器能接收、验证并处理每一个 PAYWISE Webhook,包括重试和失败的情况。
发布于 10 十月 2026 阅读约 2 分钟
Webhook 端点是未付款订单变成已付款订单的地方。如果它出错,顾客付了款却什么也没发生。在切换到正式环境之前,请在沙盒中逐项检查这份清单,在沙盒中您可以自己决定每笔付款的结果。

1. 可以访问
- URL 是公开的,以
https://开头,并且证书有效。 - 在网站与 Webhook 页面点击发送测试 Webhook。测试会发送一个已签名的
webhook.test事件,不会创建真实交易。 - 打开投递历史,确认响应是 HTTP 2xx。
- 如果防火墙只接受已知地址,请放行同一页面列出的 Webhook 发送 IP。
2. 校验签名
- 用签名密钥对原始请求体计算 HMAC-SHA256,并与
X-PAYWISE-Signature请求头比较。 - 故意改错密钥中的一个字符再发送测试:服务器此时必须拒绝。
- 使用文档中的签名工具,把您的计算结果与正确结果进行比较。
3. 快速响应
先返回 2xx,再发送邮件或更新库存。响应过慢或失败会被视为投递失败,稍后重试。
4. 处理每种事件
创建沙盒付款,并让它们以每种方式结束:
| 事件 | 您的店铺应该怎么做 |
|---|---|
payment.paid |
把订单标记为已支付并发货 |
payment.expired |
订单保持未付款,让顾客重新尝试 |
payment.failed |
订单保持未付款,并提供其他付款方式 |
每个 Webhook 都包含 event 和 data.reference。可以忽略不使用的事件,但仍需返回 2xx。
5. 每个事件只处理一次
重试可能再次发送同一事件。请保存已处理的付款参考号和事件,遇到重复时跳过。可以对已投递的事件点击立即重试来测试:订单不能被处理两次。
6. 能应对您自己的服务器宕机
停止端点几分钟,把一笔沙盒付款设为已支付,然后再启动端点。PAYWISE 会在大约 1 分钟、5 分钟、30 分钟和 2 小时后重试,因此订单仍应变为已支付。
7. 提现事件(如使用 API)
如果您的系统通过 API 申请提现,还需处理 withdrawal.* 事件,以便记录提现何时完成或失败。
都完成了?
切换到正式环境,创建正式密钥,并自己完成一笔小额真实付款。如有问题,请查看10 个常见对接错误,或通过 Telegram @paywise_asia 联系我们。

