Skip to content

网关预下单 ​

更新时间:2026/10/9 21:51:38

接口说明 ​

用于「网关支付」场景:商户后端不预先指定支付方式,而是先通过本接口创建网关订单并获得 H5 落地页 URL 与 小程序映射 URL,按用户设备引导用户进入平台收银台或聚合扫码页,由用户在前端选择支付方式后再发起真实支付。

适用于:

  • 统一收银台(cashier):平台提供的多支付方式选择页面
  • 聚合扫码(aggregate):一码多付,自动识别用户钱包

请求地址 ​

POST /unipay/gateway/pre-pay

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

请求参数 ​

基础参数同 统一支付 - 基础参数,业务参数:

参数类型必填最大长度描述
bizOrderNostring是100商户订单号
titlestring是100订单标题
descriptionstring否50订单描述
amountlong是—订单金额(分,最小 1,最大 9999999999)
currencystring否8币种(ISO 4217 三位字母代码,如 cny/usd/jpy/eur/hkd/gbp,缺省 cny;国际通道按商户配置或订单参数透传)
gatewayPayTypestring是32网关类型:cashier(统一收银台)/ aggregate(聚合扫码)
notifyUrlstring否256异步通知地址
returnUrlstring否256同步跳转地址
attachstring否512商户附加参数,回调原样返回
extraParamstring否2048通道扩展参数(JSON)
expiredTimestring否—过期时间(yyyy-MM-dd HH:mm:ss,GMT+8)
storeNostring否64门店号
goodsDetailobject[]否—商品明细列表
allocationboolean否—是否分账订单(传 true 后资金冻结,仅可通过 发起分账 拆分;默认 false)

请求示例 ​

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

响应参数 ​

DaxResult<GatewayPrePayResult>,data 字段结构:

参数类型描述
orderNostring平台网关单号(后续查询/同步用此号)
bizOrderNostring商户业务单号
statusstring业务状态(GatewayOrderStatusEnum,初始为 wait_pay)
gatewayTypestring网关类型(cashier / aggregate,实际生效类型;幂等命中已有订单时为该订单的类型)
h5UrlstringH5 落地页 URL(cashier 为 /cashier/{orderNo},aggregate 为 /aggregate/{orderNo})
miniUrlstring小程序映射 URL(cashier 为 /cm/{orderNo},aggregate 为 /am/{orderNo};通过微信等平台普通链接二维码规则拉起小程序)
expiredTimestring过期时间(北京时间,yyyy-MM-dd HH:mm:ss)

响应示例 ​

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "orderNo": "G2024120112345700001",
    "bizOrderNo": "ORDER20241201001",
    "status": "wait_pay",
    "h5Url": "https://your-domain.com/cashier/G2024120112345700001",
    "miniUrl": "https://your-domain.com/cm/G2024120112345700001",
    "expiredTime": "2024-12-01 12:30:00"
  },
  "sign": "Base64签名值",
  "resTime": "2024-12-01 12:00:00",
  "reqId": "REQ20241201010"
}

后续流程 ​

  1. 商户后端拿到 h5Url 与 miniUrl 后按设备返回给前端:浏览器使用 h5Url,小程序普通链接二维码使用 miniUrl。
  2. cashier 使用 /cm/{orderNo} 映射到统一收银台小程序;aggregate 使用 /am/{orderNo} 映射到聚合支付小程序。
  3. 用户在网关页完成支付后,平台通过 notifyUrl 异步通知商户(事件 pay.success)。
  4. 商户也可通过 网关订单查询 主动查询订单状态。

微信普通链接二维码配置 ​

在微信公众平台/小程序后台配置普通链接二维码规则:

  • /cm/* → pages-weixin/gateway-cashier/index(统一收银台小程序)
  • /am/* → pages-weixin/aggregate-pay/index(聚合支付小程序)

配置规则时平台会要求完成域名归属校验:下载平台下发的随机校验文件,在运营端「支付配置 → 域名校验文件」上传即可(网关自动应答根路径与 /m/、/cm/、/am/ 目录下的同名请求,无需手工放置文件)。支付宝「关联普通二维码」同理(校验文件为 .html)。

小程序从普通链接二维码进入时,微信会把完整 URL 放在 options.q 中;页面分别从 /cm/{orderNo} 或 /am/{orderNo} 提取平台网关单号。