跳转到主要内容
XPayLabs 根据 NotifyType 枚举发送 Webhook 通知。每个通知对应订单或收款归集的状态变化。

事件类型

事件类型触发时机负载
ORDER_PENDING新订单已创建,等待客户支付NotifyOrder
ORDER_PENDING_CONFIRMATION检测到区块链交易,等待确认NotifyOrder
ORDER_SUCCESS支付已确认,订单成功完成NotifyOrder
ORDER_EXPIRED订单在收到支付前过期NotifyOrder
ORDER_FAILED支付交易失败NotifyOrder
COLLECT_PENDING归集已发起NotifyCollect
COLLECT_SUCCESS归集成功完成NotifyCollect
COLLECT_FAILED归集失败NotifyCollect

订单事件(ORDER_*

ORDER_PENDING

当收款或付款订单创建完毕,正在等待下一步操作时发送。

ORDER_PENDING_CONFIRMATION

当检测到区块链交易但尚未达到所需区块确认数时发送。

ORDER_SUCCESS

当支付完全确认或付款成功完成时发送。

ORDER_EXPIRED

当订单在收到支付之前达到过期时间时发送。

ORDER_FAILED

当付款交易失败或收款交易被区块链拒绝时发送。

收款事件(COLLECT_*

收款事件在网关执行自动热转冷钱包归集时发送。这些与订单事件不同——它们涉及网关钱包之间的内部资金移动。
事件类型触发时机
COLLECT_PENDING从热钱包到冷钱包的归集已发起
COLLECT_SUCCESS归集交易已在链上确认
COLLECT_FAILED归集交易失败

最佳实践

  1. 快速返回 200 立即返回 200 OK,在后台工作器中异步处理事件。
  2. 验证签名。 在处理任何事件之前,始终使用您的 webhook-secret 验证 sign 字段。
  3. 使用 nonce 去重。 同一事件可能被投递多次。在数据库中存储已处理的 nonce 并跳过重复项。
  4. 先检查 notifyType 根据事件类型路由到不同的处理器。
  5. 处理 ORDER_PENDING_CONFIRMATION 在交易完全确认之前,使用此事件在 UI 中显示”检测到支付”。
最后修改于 2026年6月26日