Skip to content

统一支付 ​

更新时间:2026/9/23 11:53:42

接口说明 ​

商户系统通过该接口发起支付请求,系统根据支付产品和方式返回对应的支付参数体(payBody),商户前端据此调起支付或展示二维码。

适用于商户后端已确定通道与支付方式的「直连支付」场景;若需由平台收银台/聚合页选择支付方式,请使用 网关预下单。

请求地址 ​

POST /unipay/pay

  • 认证:RSA 签名(@PaymentVerify)
  • 响应:DaxResult<NormalPayResult>

请求参数 ​

基础参数(所有 /unipay/* 接口通用) ​

继承自 PaymentCommonParam / MerchantPaymentCommonParam:

参数类型必填最大长度描述
mchNostring是32商户号
appIdstring否32应用 ID
channelMchNostring否32通道商户号(调试或直接指定通道时传入,正常路由场景留空)
reqIdstring是64请求唯一标识
nonceStrstring否32随机字符串
signstring是1024RSA 签名(Base64)
reqTimestring是—请求时间(yyyy-MM-dd HH:mm:ss,GMT+8)
clientIpstring否64客户端 IP

业务参数 ​

参数类型必填最大长度描述
bizOrderNostring是100商户订单号,商户系统唯一
titlestring是100订单标题
descriptionstring否50订单描述
amountlong是—订单金额,单位分(最小 1,最大 9999999999)
currencystring否8币种(ISO 4217 三位字母代码,如 cny/usd/jpy/eur/hkd/gbp,缺省 cny;国际通道按商户配置或订单参数透传)
productstring否32支付产品编码(为空时由路由引擎自动选择)
methodstring否32支付方式,如 wechat_qr、alipay_pc(见下方码表)
capabilitystring否32支付能力编码(直接指定通道时作为输入参与校验)
openIdstring否128用户标识(微信 jsapi/mini 场景必填)
channelAppIdstring否128通道应用 ID(非空则强制使用,须预先配置)
authCodestring否128授权码(付款码/被扫支付必填)
limitPaystring[]否10限制支付的支付方式列表(如 no_credit 禁用信用卡)
extraParamstring否2048通道扩展参数(JSON)
goodsDetailobject[]否50订单商品明细列表(用于单品营销、电子发票等)
notifyUrlstring否200异步通知地址
returnUrlstring否200同步跳转地址
attachstring否500附加数据,回调时原样返回
expiredTimestring否—订单过期时间(yyyy-MM-dd HH:mm:ss,GMT+8,空则默认 30 分钟)
terminalobject否—终端信息(线下 POS/收银台场景)
allocationboolean否—是否分账订单(传 true 后该笔订单资金将被冻结,仅可通过 发起分账 拆分;默认 false)

method 的必填性

跟随通道路由时一般必填;被扫场景可仅传 authCode(平台按前缀识别回填);已直接指定 channelMchNo + capability 时可空(按能力反推)。

请求示例 ​

json
{
  "mchNo": "M200000001",
  "appId": "APP001",
  "reqId": "REQ20241201001",
  "nonceStr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS",
  "reqTime": "2024-12-01 12:00:00",
  "sign": "Base64签名值",
  "bizOrderNo": "ORDER20241201001",
  "title": "测试商品",
  "amount": 100,
  "method": "wechat_qr",
  "notifyUrl": "https://your-domain.com/notify",
  "returnUrl": "https://your-domain.com/return"
}

响应参数 ​

DaxResult<NormalPayResult>,data 字段结构:

参数类型描述
bizOrderNostring商户订单号
orderNostring平台业务单号
tradeNostring资金交易号
statusstring支付状态(PayStatusEnum)
payBodystring支付参数体(二维码内容、调起参数或跳转地址)
payBodyTypestring支付参数体类型(PayBodyTypeEnum)

说明:2026-09-23 起下单响应不再返回 orderId(内部数据库主键),请使用 bizOrderNo / orderNo / tradeNo 定位订单。

payBodyType 取值 ​

对应后端枚举 PayBodyTypeEnum:

类型说明payBody 示例
link支付链接(跳转)https://open.weixin.qq.com/...
jsapiJSAPI 调起参数对象JSON 字符串,前端直接用于调起 SDK
from表单数据(自动提交表单 HTML)<form action="...">...</form>
identifier标识码(如付款码场景的标识)通道返回的纯标识字符串
qr_code二维码内容(前端渲染成二维码图片)weixin://wxpay/bizpayurl?pr=xxxxx
jsonJSON 对象(通道自定义结构)通道约定的 JSON 字符串

与旧文档差异

旧版文档曾使用 code_url / pay_info / redirect_url,这些不是真实枚举值。请以上表为准。

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "bizOrderNo": "ORDER20241201001",
    "orderNo": "P2024120112345700001",
    "tradeNo": "T2024120112345700001",
    "status": "progress",
    "payBody": "weixin://wxpay/bizpayurl?pr=xxxxx",
    "payBodyType": "qr_code"
  },
  "sign": "Base64签名值",
  "resTime": "2024-12-01 12:00:00",
  "reqId": "REQ20241201001"
}

支付方式(method) ​

method 字段对应 PayMethodEnum,按渠道分组:

微信支付 ​

method说明
wechat_qr微信扫码支付(Native)
wechat_jsapi微信 JSAPI 支付(公众号)
wechat_mini微信小程序支付
wechat_h5微信 H5 支付
wechat_app微信 APP 支付
wechat_barcode微信付款码支付(被扫)
wechat_cashier微信收银台支付

支付宝 ​

method说明
alipay_qr支付宝扫码支付
alipay_jsapi支付宝生活号支付(含小程序)
alipay_pc支付宝 PC 网站支付
alipay_h5支付宝 H5 支付
alipay_app支付宝 APP 支付
alipay_barcode支付宝付款码支付(被扫)

银联 ​

method说明
union_qr银联扫码支付
union_jsapi银联 JSAPI 支付
union_h5银联 H5 支付
union_barcode银联付款码支付(被扫)

抖音支付 ​

method说明
douyin_qr抖音扫码支付
douyin_jsapi抖音 JSAPI 支付
douyin_h5抖音 H5 支付
douyin_app抖音 APP 支付

聚合支付 ​

method说明
aggregate_pay_qrcode聚合扫码支付(通道原生一码多付)

境外卡(预留) ​

method说明
visa_card_gatewayVisa 网关支付
visa_card_presentVisa 刷卡支付
mastercard_card_gatewayMastercard 网关支付
mastercard_card_presentMastercard 刷卡支付

支付状态(PayStatusEnum) ​

status说明
wait等待中(未指定通道和支付方式)
progress处理中(已发起通道调用)
success支付成功
close已关闭
cancel已撤销
fail支付失败
timeout已超时