Appearance
统一下单
POST /api/pay/unifiedOrder
创建支付订单,返回收银台跳转数据或渠道支付数据。代码出处:jeepay-payment/pay/rqrs/payorder/UnifiedOrderRQ.java。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mchNo | String(64) | 是 | 商户号 |
| appId | String(64) | 是 | 商户应用 ID |
| mchOrderNo | String | 是 | 商户订单号,商户侧唯一 |
| wayCode | String | 是 | 支付方式编码,如 wxpay_jsapi、wxpay_native、wxpay_bar、wxpay_h5、wxpay_lite、alipay_jsapi、alipay_bar、alipay_wap、alipay_pc、alipay_app、alipay_qr、alipay_lite、qr_cashier、auto_bar、ysf_jsapi、ysf_bar 等 |
| amount | Long | 是 | 支付金额,单位:分,最小 1 |
| currency | String | 是 | 货币代码,如 CNY |
| clientIp | String | 否 | 客户端 IP 地址 |
| subject | String | 是 | 商品标题 |
| body | String | 是 | 商品描述信息 |
| notifyUrl | String | 否 | 异步通知地址(支付结果回调) |
| returnUrl | String | 否 | 支付完成跳转地址 |
| expiredTime | Integer | 否 | 订单失效时间,单位:秒 |
| channelExtra | String | 否 | 特定渠道发起额外参数,JSON 字符串(如 jsapi 类需要 openId) |
| extParam | String | 否 | 商户扩展参数,回调时原样返回 |
| divisionMode | Byte | 否 | 分账模式:0-不允许分账,1-支付成功按配置自动分账,2-商户手动分账 |
| version | String | 是 | 固定 1.0 |
| signType | String | 是 | 固定 MD5 |
| reqTime | String | 是 | 请求时间 yyyyMMddHHmmss |
| sign | String | 是 | 签名值,见鉴权说明 |
响应参数(data)
| 参数 | 类型 | 说明 |
|---|---|---|
| payOrderId | String | 平台支付订单号 |
| mchOrderNo | String | 商户订单号 |
| orderState | Byte | 订单状态:0-订单生成,1-支付中,2-支付成功,3-支付失败 |
| payDataType | String | 支付数据类型,如 payUrl(收银台跳转链接)、qrImg 等 |
| payData | String | 支付数据包,按 payDataType 解释(如跳转 URL) |
| errCode | String | 错误码(失败时) |
| errMsg | String | 错误描述(失败时) |
Java 示例(SDK)
java
JeepayClient client = new JeepayClient("http://<服务器IP>:9216", appSecret);
JeepayResponse resp = client.unifiedOrder(new UnifiedOrderRequest()
.mchNo("M1690858842671").appId("appId-demo")
.mchOrderNo("DEMO-" + System.currentTimeMillis())
.wayCode("qr_cashier").amount(100L).currency("CNY")
.subject("Demo商品").body("Java SDK demo")
.notifyUrl("https://your.domain/notify")
.toParams());
System.out.println(resp.getString("payOrderId"));
System.out.println(resp.getString("payData"));curl 示例
bash
curl -X POST http://<服务器IP>:9216/api/pay/unifiedOrder \
-H 'Content-Type: application/json' \
-d '{"version":"1.0","signType":"MD5","reqTime":"20261105120000","mchNo":"M1690858842671","appId":"appId-demo","mchOrderNo":"DEMO-20261105001","wayCode":"qr_cashier","amount":100,"currency":"CNY","subject":"Demo商品","body":"demo test","notifyUrl":"https://your.domain/notify","sign":"BC6312FEE27C78491B1D11200925BD1F"}'响应示例:
json
{ "code": 0, "msg": "SUCCESS", "data": { "payOrderId": "P20261105000001", "mchOrderNo": "DEMO-20261105001", "orderState": 0, "payDataType": "payUrl", "payData": "http://<服务器IP>:10903/api/pay/payOrder/P20261105000001" }, "sign": "..." }