Skip to main content
Webhook 是 PayMatrix 向商户服务端推送实时事件通知的机制。当支付、退款、争议等关键事件发生时,平台会主动向商户配置的回调地址发送 HTTP POST 请求。

为什么需要 Webhook

  • 实时性:支付状态变更后秒级通知,无需轮询
  • 可靠性:平台保证至少投递一次,支持失败重试
  • 权威性:Webhook 是订单状态变更的权威来源

回调请求格式

HTTP 方法

POST,Content-Type 为 application/json

请求头

Header说明
Content-Typeapplication/json
X-Merchant-Id商户 ID
X-Pmp-Event-Id事件唯一 ID(如 evt_xxx
X-Pmp-Event-Type事件类型(如 order.payment.succeeded
X-Pmp-TimestampUnix 秒级时间戳
X-Pmp-SignatureHMAC-SHA256 签名(用于验签)

请求体结构

{
  "event_id": "evt_test_8f2c1d3a5b7e9f01",
  "event_type": "order.payment.succeeded",
  "timestamp": 1749081600,
  "data": {
    "order_id": "1000126011700000100001",
    "merchant_transaction_id": "ORDER-20260101-001",
    "amount": 100.00,
    "currency_code": "USD",
    "status": 2,
    "payment_method": "card",
    "paid_at": "2026-01-01T12:30:00Z"
  }
}
字段类型说明
event_idString事件唯一 ID,用于幂等去重
event_typeString事件类型
timestampLong事件发生时间(Unix 秒)
dataObject事件负载,内容随事件类型变化

配置 Webhook

登录商户门户,进入「开发者设置 → Webhook 管理」:
  1. 点击「添加 Webhook」
  2. 填写你的回调 URL(必须 HTTPS
  3. 设置签名密钥(用于验签,可自动生成)
  4. 勾选需要订阅的事件类型
  5. 保存
建议为沙盒和生产环境分别配置不同的 Webhook URL,便于区分测试与生产事件。

测试 Webhook

配置完 Webhook 后,可以使用「测试发送」功能验证:
  1. 在 Webhook 列表中选择要测试的 Webhook
  2. 点击「测试发送」
  3. 选择事件类型
  4. 可选填写自定义 Payload
  5. 点击发送
平台会向你的回调地址发送一条测试通知,你可以查看投递结果。

投递重试机制

  • 首次投递失败后,平台会自动重试
  • 重试间隔:1min、5min、15min、30min、1h(指数退避)
  • 超过最大重试次数后标记为失败
  • 可在商户门户查看投递日志和审计记录

商户服务端要求

  • 响应时间:请在 10 秒内返回 HTTP 2xx 状态码,否则视为投递失败
  • 幂等处理:同一 event_id 可能被重复投递,务必做幂等处理
  • 签名验证:收到回调后先验签,确认请求来自 PayMatrix

签名验签

详见 Webhook 签名验签