Skip to content

代付回调 ​

平台向该订单的 notify_url 发送 POST JSON。不传 notify_url 则没有该订单回调;浏览器 return_url 与回调无关。

回调字段 ​

字段类型要求说明
tenant_idstring必填商户编号。
platform_order_nostring必填平台订单号。
tenant_order_nostring必填商户订单号。
statusinteger必填结果状态;成功为 20。
pay_timestring选填付款确认时间;失败等情况下为空值会省略。
amountstring必填原订单金额,不是手续费扣除后的金额,也不是实付金额字段。
total_feestring必填该订单手续费。
settlement_amountstring必填代收通常是金额减手续费;代付通常是金额加手续费。
created_atstring必填订单创建时间。
utrstring选填取得时返回支付参考号;没有时省略。
notify_remarkstring选填建单备注,非空时返回。
signaturestring必填回调签名字段;计算时排除它,不是排除 sign。
refund_atstring选填冲正时可返回的退款时间;如出现,参与验签。
refund_reasonstring选填冲正时可返回的说明;不是统一的详细失败原因字段。

日期采用 YYYY-MM-DD HH:mm:ss,不是 ISO8601。验签时保留原值。选填字段为空可省略。代收、代付的金额含义不同。

成功回调正文 ​

json
{
  "tenant_id": "DEMO0001",
  "platform_order_no": "PRT202610051700DEMO0001",
  "tenant_order_no": "DEMO-PAYOUT-001",
  "status": 20,
  "pay_time": "2026-10-05 17:02:00",
  "amount": "500.00",
  "total_fee": "10.00",
  "settlement_amount": "510.00",
  "created_at": "2026-10-05 17:00:00",
  "utr": "123456789012",
  "notify_remark": "demo-payout",
  "signature": "fb6ab8d2792b0249a5e19369466c7dd1"
}

回调示例 · cURL ​

下面的 cURL 用于测试回调接收地址。

bash
curl --request POST 'https://merchant.example/webhooks/payout' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "tenant_id": "DEMO0001",
  "platform_order_no": "PRT202610051700DEMO0001",
  "tenant_order_no": "DEMO-PAYOUT-001",
  "status": 20,
  "pay_time": "2026-10-05 17:02:00",
  "amount": "500.00",
  "total_fee": "10.00",
  "settlement_amount": "510.00",
  "created_at": "2026-10-05 17:00:00",
  "utr": "123456789012",
  "notify_remark": "demo-payout",
  "signature": "fb6ab8d2792b0249a5e19369466c7dd1"
}'

失败回调示例 ​

json
{
  "tenant_id": "DEMO0001",
  "platform_order_no": "PRT202610051700DEMO0001",
  "tenant_order_no": "DEMO-PAYOUT-001",
  "status": 40,
  "amount": "500.00",
  "total_fee": "10.00",
  "settlement_amount": "510.00",
  "created_at": "2026-10-05 17:00:00",
  "notify_remark": "demo-payout",
  "signature": "adf799e94bc2928ba3e2de63cae9fca9"
}

接收应答 ​

返回 HTTP 200,正文为纯文本 success 或 ok。忽略大小写及首尾空白。仅 HTTP 200,或 JSON {"status":200},不足以确认。当前也兼容 {"code":200,"message":"success"}、{"success":true}、{"isSucceed":true}、{"data":"OK"};推荐使用明确的纯文本应答。

http
HTTP/1.1 200 OK
Content-Type: text/plain

success

发送与结果 ​

回调是结果通知,不保证仅发送一次。失败重试有次数上限,同一订单的成功通知可能重复。20 表示成功;更正、过期和冲正见完整状态说明。通知失败不改变付款结果,可通过查单确认。

OpenAPI v1 · Merchant integration