API 接口文档
创建码商支付订单。根据金额和支付平台匹配可用收款码账号,生成支付链接。
| 项 | 值 |
|---|---|
| 请求方法 | POST |
| 完整路径 | {server}/api/code/create |
| Content-Type | application/json |
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| merId | String | 是 | 商户号 |
| sign | String | 是 | 请求签名(用商户密钥对参数签名) |
| orderAmt | String | 是 | 订单金额。必须为 10 的整数倍,否则返回 0005 |
| payType | String | 是 | 支付类型:scan(扫码)/ wap(H5) |
| payPlat | String | 是 | 支付平台标识(如 alipay、wxpay) |
| orderTitle | String | 是 | 订单标题 |
| orderDesc | String | 是 | 订单描述 |
| notifyUrl | String | 是 | 异步通知地址(支付成功后回调) |
| callbackUrl | String | 是 | 同步回调地址(支付完成后浏览器跳转) |
| merOrderNo | String | 是 | 商户订单号(需唯一,重复返回 1002) |
| ip | String | 是 | 客户端 IP |
9999 字段[xxx]长度有误,不会进入业务逻辑。
0005user.small,默认 1 元,低于返回 0026user.big,默认 5000 元,超过返回 0023使用 MD5 签名算法。将除 sign 外的所有非空参数按字段名字母升序排列,拼接为 key=value&key=value 格式,末尾追加商户密钥,对整体字符串做 MD5 摘要。
sign 字段本身null 或空字符串的字段key1=value1&key2=value2&...&keyn=valuen&key=商户密钥sign 值假设商户密钥为 5BB0B8583BFB46E0941B61F11A5E96FA,请求参数如下:
sign 本身null 或 "")的字段不参与签名成功返回 CreateDTO(继承 BaseDTO),失败返回 BaseDTO。
| 字段 | 类型 | 说明 |
|---|---|---|
| respCode | String | 响应码,0000 表示成功 |
| respMsg | String | 响应消息 |
| payNo | String | 系统支付订单号 |
| merOrderNo | String | 商户订单号 |
| jumpUrl | String | 支付跳转 URL,引导用户完成支付 |
| realAmt | String | 实际支付金额 |
| respCode | respMsg | 触发条件 |
|---|---|---|
| 9999 | 字段[{key}]长度有误 | Controller 层任意参数为空 |
| 0002 | 商户不存在 | merId 未找到对应商户 |
| 0012 | 商户已经被停用 | 商户状态为 STOP |
| 0004 | 签名错误 | sign 与服务端计算结果不一致 |
| 0005 | 订单金额格式错误 | 金额非数字 或 非 10 的整数倍 |
| 0023 | 最大金额不能超过{max} | 金额超过商户或系统最大值 |
| 0026 | 最小金额不能小于{min} | 金额低于商户或系统最小值 |
| 1002 | 订单号重复 | merOrderNo 已存在 |
| 0021 | 订单并发超限 | 每分钟订单数超过限制 |
| 0020 | 暂无可用账号 | 无匹配金额和支付平台的收款码账号 |
| 0001 | 请求失败 | 订单保存数据库失败 |
查询码商订单状态。根据商户订单号获取订单支付状态及详情。
| 项 | 值 |
|---|---|
| 请求方法 | POST |
| 完整路径 | {server}/api/code/query |
| Content-Type | application/json |
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| merId | String | 是 | 商户号 |
| sign | String | 是 | 请求签名(签名规则同 create 接口) |
| merOrderNo | String | 是 | 商户订单号 |
9999 字段[xxx]长度有误,不会进入业务逻辑。
与 create 接口完全一致。将除 sign 外的所有非空参数按字段名字母升序拼接,末尾追加商户密钥,做 MD5 摘要。
本接口签名字段仅 2 个(排除 sign 后):merId、merOrderNo。
成功返回 OrderDTO(继承 BaseDTO),失败返回 BaseDTO。
| 字段 | 类型 | 说明 |
|---|---|---|
| respCode | String | 响应码,0000 表示成功 |
| respMsg | String | 响应消息 |
| payNo | String | 系统支付订单号 |
| merOrderNo | String | 商户订单号 |
| orderTitle | String | 订单标题 |
| orderDesc | String | 订单描述 |
| payStatus | String | 支付状态,见下表 |
| payDate | String | 支付时间(格式 yyyy-MM-dd HH:mm:ss,未支付时为 null) |
| orderAmt | String | 订单金额 |
| realAmt | String | 实际支付金额 |
| 值 | 说明 |
|---|---|
| 0 | 初始状态(待支付) |
| 1 | 支付中 |
| 2 | 支付成功 |
| -1 | 超时失败 |
| -2 | 未支付 |
| -3 | 金额未匹配 |
| -4 | 已收款未确认 |
| respCode | respMsg | 触发条件 |
|---|---|---|
| 9999 | 字段[{key}]长度有误 | Controller 层任意参数为空 |
| 0002 | 商户不存在 | merId 未找到对应商户 |
| 0012 | 商户已经被停用 | 商户状态为 STOP |
| 0004 | 签名错误 | sign 与服务端计算结果不一致 |
| 0018 | 无此订单记录 | merOrderNo 未找到对应订单 |