PAYWISE
zh
← 全部文章

开发者

测试您的 Webhook 端点:上线前检查清单

Webhook 成功一次还不够。用这份清单确认您的服务器能接收、验证并处理每一个 PAYWISE Webhook,包括重试和失败的情况。

发布于 10 十月 2026 阅读约 2 分钟

其他语言版本: English, Indonesia

测试您的 Webhook 端点:上线前检查清单

Webhook 端点是未付款订单变成已付款订单的地方。如果它出错,顾客付了款却什么也没发生。在切换到正式环境之前,请在沙盒中逐项检查这份清单,在沙盒中您可以自己决定每笔付款的结果。

Webhook 检查清单:可通过 HTTPS 访问、校验签名、快速返回 2xx、每个事件只处理一次、处理失败和过期

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 联系我们。

更多文章

今天就从沙盒密钥开始。

创建账户、生成沙盒密钥,几分钟内即可在调试台发送第一笔交易。