Skip to content

支付回调(Webhook)API

支付渠道回调接口,用于接收支付结果通知。

路由前缀/webhook

源码apps/backend/src/routes/payment.ts


认证

Webhook 接口无需用户认证,但通过签名机制验证请求来源合法性。


端点

1. 支付回调

POST /webhook/:provider

接收支付渠道的回调通知,验证签名后处理支付结果(更新订单状态、触发履约等)。

路径参数:

参数类型说明
providerProviderCode支付渠道代码:paddleyungouosstripemanualmock

请求头(签名验证):

不同渠道使用不同的签名 Header:

渠道签名 Header
PaddlePaddle-Signature
微信支付X-Wechatpay-Signature
通用X-Signature

请求体:

支持 JSON 和 application/x-www-form-urlencoded 两种格式,具体格式由支付渠道决定。原始请求体会被保留用于签名验证。

响应 200 OK

SUCCESS

返回纯文本 SUCCESS,部分渠道要求此固定响应。

响应 500 Internal Server Error

FAIL

回调处理失败时返回纯文本 FAIL,不暴露详细错误信息。


Mock 支付(开发环境)

以下接口仅在非生产环境可用,用于模拟支付流程。

路由前缀/mock-payment

2. Mock 支付页面

GET /mock-payment/pay

返回一个模拟支付 HTML 页面,包含"支付成功"和"支付失败"按钮。

查询参数:

参数类型必填说明
provider_order_idstring渠道订单 ID
amountnumber金额(分)
currencystring货币(默认 CNY)
methodstring支付方式
return_urlstring支付完成后跳转 URL(默认 /

响应 200 OK

返回 HTML 页面(Content-Type: text/html),用户可点击按钮模拟支付结果。

错误码:

HTTP说明
400Missing provider_order_id

3. Mock 回调触发

POST /mock-payment/callback

手动触发模拟支付回调,用于开发和测试。

请求体:

字段类型必填说明
provider_order_idstring渠道订单 ID
statusstring支付结果:successfailed
amountnumber支付金额(分)

响应 200 OK

json
{
  "success": true,
  "data": {
    "success": true,
    "message": "回调处理完成",
    "orderId": "uuid"
  }
}

错误码:

HTTPcode说明
500INTERNAL_ERROR处理失败

AI Workflow Editor