🐱 秒切支付 API 接口文档
完整的支付与转账接口开发指南
📋 协议规则
传输方式
提交方式: POST 或 GET
内容类型: application/json
字符编码: UTF-8
签名算法: MD5
参数规范
交易金额
默认为人民币交易,单位为分,参数值不能带小数。
时间参数
所有涉及时间参数均使用精确到毫秒的13位数值,如:1622016572190。时间戳具体是指从格林尼治时间1970年01月01日00时00分00秒起至现在的毫秒数。
🔐 签名算法
签名生成的通用步骤如下:
第一步
设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名进行不区分大小写的自然排序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
- ◆ 参数名不区分大小写的自然排序;
- ◆ 如果参数的值为空不参与签名;
- ◆ 参数名区分大小写;
- ◆ 验证调用返回或支付中心主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
- ◆ 支付中心接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步
在stringA最后拼接上key[即 StringA +"&key=" + 私钥 ] 得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
私钥(key)是商户在支付平台创建应用时系统自动生成的密钥,用于接口签名验证。请登录商户管理后台,在【应用管理】-【应用编辑】中生成并复制您的应用私钥。
注意:私钥信息非常重要,请妥善保管,不要泄露给他人。
签名示例
如请求支付系统参数如下:
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("mchNo", "M1682391685"); // 商户号
paramsMap.put("appId", "6447428682ca7458118af79f"); // 应用ID
paramsMap.put("mchOrderNo", "mho1694051705945"); // 商户订单号
paramsMap.put("wayCode", "ALI_BAR"); // 支付方式
paramsMap.put("amount", 1L); // 金额,单位分
paramsMap.put("currency", "CNY"); // 币种,目前只支持cny
paramsMap.put("clientIp", "192.166.1.132"); // 发起支付请求客户端的IP地址
paramsMap.put("subject", "商品标题"); // 商品标题
paramsMap.put("body", "商品描述"); // 商品描述
paramsMap.put("notifyUrl", "https://miaoqie.com"); // 异步通知地址
paramsMap.put("reqTime", "1694051706"); // 请求时间
paramsMap.put("version", "1.0"); // 接口版本号,固定:1.0
paramsMap.put("signType", "MD5"); // 签名类型
paramsMap.put("channelExtra", "{\"authCode\":\"284957415846666792\"}"); // 渠道参数
待签名值
amount=1&appId=6447428682ca7458118af79f&body=商品描述&channelExtra={"authCode":"284957415846666792"}&clientIp=192.166.1.132¤cy=CNY&mchNo=M1682391685&mchOrderNo=mho1694051705945¬ifyUrl=https://miaoqie.com&reqTime=1694051706&signType=MD5&subject=商品标题&version=1.0&wayCode=ALI_BAR&key=UNpEETkvMpqC9oDLBr9S2X7U92k462h3zhHiy7hj4xbw23PiWhMv6TCAQ2vh8PzynZXZYo9n6puxHkAHG7li6LZi8IpaQrshzydnBll64iKlb4U59ggiyCTaHJeqffiW
签名结果
924065BA077FA461A9B06D2E76E9ED3C
最终请求支付系统参数
{"amount":1,"mchOrderNo":"mho1694051705945","subject":"商品标题","wayCode":"ALI_BAR","sign":"924065BA077FA461A9B06D2E76E9ED3C","reqTime":"1694051706","body":"商品描述","version":"1.0","channelExtra":"{\"authCode\":\"284957415846666792\"}","appId":"6447428682ca7458118af79f","clientIp":"192.166.1.132","notifyUrl":"https://miaoqie.com","signType":"MD5","currency":"CNY","mchNo":"M1682391685"}
📊响应结构
{
"code": 0,
"data": {
""
},
"msg": "SUCCESS",
"sign": "F4DA202C516D1F33A12F1E547C5004FD"
}
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 返回状态,详见返回码 |
| 返回信息 | msg | 是 | String(10) | Success | 具体错误,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 是 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 是 | String(512) | {} | 返回数据,json格式数据,具体响应信息参考接口详情 |
返回码
| code | 描述 | 状态 |
|---|---|---|
| 0 | 成功 | SUCCESS |
| 9999 | 异常,具体错误详见msg字段 | ERROR |
💳 统一支付下单
功能描述
商户通过该接口发起支付订单,支付网关会返回支付参数或支付链接。
接口说明
请求URL: https://payapi.mqiepay.com/api/pay/unifiedOrder
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号 |
| 支付方式 | wayCode | 是 | String(30) | WX_H5 | 支付方式,如微信小程序WX_H5 |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPv4地址 |
| 商品标题 | subject | 是 | String(64) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 异步通知地址 | notifyUrl | 否 | String(128) | https://mqiepay.com/notify.htm | 支付结果异步回调URL,只有传了该值才会发起回调 |
| 跳转通知地址 | returnUrl | 否 | String(128) | https://mqiepay.com/return.htm | 支付结果同步跳转地址URL |
| 失效时间 | expiredTime | 否 | int | 3600 | 订单失效时间,单位秒,默认2小时。订单在创建时间+失效时间后失效 |
| 支付渠道 | channel | 条件必填 | int | 2.0版本必填,WECHAT:微信 ALIPAY:支付宝 | |
| 场景 | scene | 条件必填 | int | ONLINE | 2.0版本必填,channel为WECHAT时,可选值ONLINE/OFFLINE/BAOXIAN/GONGYI/DC_SEPARATION/DIGITAL/REGISTRATION/PRIVATE_EDUCATION/DIRECT; channel为ALIPAY时,可选值OFFLINE/LARGE/REGISTRATION; |
| 分账模式 | divisionMode | 否 | int | 0 | 分账模式: 0-该笔订单不允许分账[默认], 1-支付成功按配置自动完成分账, 2-商户手动分账(解冻商户金额) |
| 渠道参数 | channelExtra | 否 | String(256) | {"buyerUserId":"2088102168611111"} | 特定渠道发起的额外参数,json格式字符串,详见渠道参数说明 |
| 渠道appId | chAppId | 否 | String(256) | wxebbfb0c332a64888 | 用来支付的小程序或公众号的appId,为空默认走渠道商appid |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号 |
| 签名 | sign | 是 | String(32) | C345EC2BFD727A4B6845133519F3RE7 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
响应参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490c | 商户订单号 |
| 支付状态 | orderState | 是 | int | 1 | 支付状态: 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败 |
| 支付参数类型 | payDataType | 否 | String(10) | wxapp | payUrl-跳转链接的方式 form-表单方式 wxapp-微信支付参数(微信公众号,小程序,app支付时) aliapp-支付宝app支付参数 ysfapp-云闪付app支付参数 codeUrl-二维码地址 codeImgUrl-二维码图片地址 none-空支付参数 |
| 支付参数 | payData | 否 | String(128) | 20240515220014102xxxx2268922 | 发起支付用到的支付参数,如果微信公众号支付等 |
| 渠道错误码 | errCode | 是 | String(10) | 00001 | 渠道错误码 |
| 渠道错误描述 | errMsg | 是 | String(128) | 商户状态或信息异常 | 渠道错误描述 |
请求响应示例数据
{
"msg":"SUCCESS",
"code":0,
"data":{
"payOrderId":"P2000109004570791938",
"mchOrderNo":"SN2512131453004600020",
"payData":"{\"appId\":\"wxebbfb0c332a6888\",\"miniProgramOrgId\":\"gh_9457a12c4443\",\"miniProgramPath\":\"pages/fromAppPay/index\",\"orderId\":\"P2000109004570791938\",\"prePayTn\":\"pages/fromAppPay/index?state=40b7076d-4654-4121-9ea7-db0477293f8d&customerNo=10093333333&goodsName=测试产品&customerRequestNo=P2000109004570791938&orderAmount=0.01&launchSource=MINI_PROGRAM\",\"uniqueOrderNo\":\"301320251214000000303714015306\"}",
"payDataType":"wxapp",
"orderState":1
},
"sign":"3CA9B6690E3DDD5E27826A75A8F2F12A"
}
支付方式
| WayCode | 支付方式 |
|---|---|
| ALI_LITE | 支付宝小程序 |
| ALI_JSAPI | 支付宝生活号 |
| WX_JSAPI | 微信公众号 |
| WX_LITE | 微信小程序 |
| WX_APP | 微信APP |
| WX_H5 | 微信H5 |
channelExtra参数说明
当 wayCode=ALI_JSAPI 时,channelExtra必须传buyerUserId,为支付宝用户ID,channelExtra示例数据如:
{"buyerUserId":"2088102168611111"}
当 wayCode=WX_JSAPI 或 wayCode=WX_LITE 时,channelExtra必须传openid,channelExtra示例数据如:
{"openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI"}
🔍 查询支付订单
功能描述
商户通过该接口查询支付订单,支付网关会返回订单最新的数据。
接口说明
请求URL: https://payapi.mqiepay.com/api/pay/query
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付中心生成的订单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号,与payOrderId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
响应参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付订单号 |
| 商户号 | mchNo | 是 | String(30) | 100914522XX | 商户号 |
| 服务商号 | isvNo | 否 | String(30) | 10091452100 | 服务商号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户名称 | mchName | 是 | String(64) | xx阅读 | 商户名称 |
| 商户类型 | mchType | 是 | int | 1 | 1-普通商户, 2-特约商户(服务商模式) |
| 商户订单号 | mchOrderNo | 是 | String(128) | 20160427210604000490 | 商户订单号 |
| 支付接口代码 | ifCode | 是 | String(30) | yeepay | 支付接口代码 |
| 支付方式代码 | mchOrderNo | 是 | String(30) | WX_H5 | 支付方式代码 |
| 支付金额 | amount | 是 | int | 3900 | 单位为分 |
| 商户手续费费率 | mchFeeRate | 是 | Double | 0.011000 | 商户手续费费率 |
| 商户手续费 | mchFeeAmount | 是 | int | 43 | 单位为分 |
| 货币代码 | currency | 是 | String(10) | CNY | 货币代码 |
| 支付状态 | state | 是 | int | 1 | 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败, 4-已撤销, 5-已退款, 6-订单关闭 |
| 渠道订单号 | channelOrderNo | 是 | String(128) | 20160427210604000490 | 渠道订单号 |
| 退款状态 | refundState | 是 | int | 1 | 0-未发生实际退款, 1-部分退款, 2-全额退款 |
| 退款次数 | refundTimes | 是 | int | 1 | 退款次数 |
| 退款总金额 | refundAmount | 是 | int | 3900 | 单位为分 |
| 订单分账模式 | divisionMode | 否 | int | 1 | 0-该笔订单不允许分账, 1-支付成功按配置自动完成分账, 2-商户手动分账(解冻商户金额) |
| 订单分账状态 | divisionState | 否 | int | 3900 | 0-未发生分账, 1-等待分账任务处理, 2-分账处理中, 3-分账任务已结束(不体现状态) |
| 最新分账时间 | divisionLastTime | 否 | long | 1622016572190 | 最新分账时间,13位时间戳 |
| 支付时间 | successTime | 否 | long | 1622016572190 | 支付时间,13位时间戳 |
| 外部商户订单号 | bankOrderId | 否 | String(128) | 20160427210604000490 | 微信商户单号/支付宝商家订单号 |
| 渠道订单号 | uniqueOrderNo | 否 | String(128) | 20160427210604000490 | 渠道订单号 |
| 微信/支付宝订单号 | channelTrxId | 否 | String(128) | 4200002840202508271428 | 微信/支付宝订单号 |
| 渠道错误码 | errCode | 是 | String(10) | 00001 | 渠道错误码 |
| 渠道错误描述 | errMsg | 是 | String(128) | 商户状态或信息异常 | 渠道错误描述 |
🔔 支付结果通知
功能描述
当订单支付成功时,支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
请求URL: 该链接是通过统一下单接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式: POST
请求类型: application/x-www-form-urlencoded
通知参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 支付接口 | ifCode | 是 | String(30) | wxpay | 支付接口编码 |
| 支付方式 | wayCode | 是 | String(30) | WX_LITE | 支付方式,微信小程序WX_LITE |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 商品标题 | subject | 是 | String(64) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 134586944573118714 | 渠道下单返回错误描述 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 成功时间 | successTime | 否 | long | 1622016572190 | 订单支付成功时间,13位时间戳 |
| 通知请求时间 | reqTime | 是 | long | 1622016572190 | 通知请求时间,,13位时间戳 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
通知示例数据
{
"amount": 5,
"body": "商品描述",
"clientIp": "192.166.1.132",
"createdAt": "1622016572190",
"currency": "cny",
"extParam": "",
"ifCode": "yeepay",
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"mchOrderNo": "mho1621934803068",
"payOrderId": "20210525172643357010",
"state": 3,
"subject": "商品标题",
"wayCode": "WX_H5",
"sign": "C380BEC2BFD727A4B6845133519F3AD6",
"channelTrxId": "20210525172643357010",
"channelUser": "13000000000",
}
返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非 success 则表示处理失败,支付中心会再次通知业务系统。
注意:返回的字符串不区分大小写,字符串前后不能有空格和换行符。
🔒 关闭支付订单
功能描述
商户通过该接口关闭订单,支付网关会对订单完成关闭处理。
接口说明
请求URL: https://payapi.mqiepay.com/api/pay/close
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付中心生成的订单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的订单号,与payOrderId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"payOrderId": "P202106181104177050002",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5",
"reqTime": "1624006009",
"mchNo": "M1623984572",
"version": "1.0"
}
响应参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 渠道错误码 | errCode | 是 | String(10) | 00001 | 渠道错误码 |
| 渠道错误描述 | errMsg | 是 | String(128) | 商户状态或信息异常 | 渠道错误描述 |
💰 发起支付退款
功能描述
商户业务系统通过统一退款接口发起退款请求,支付网关会根据商户发起的支付订单号,找到对应到支付通道发起退款。
接口说明
请求URL: https://payapi.mqiepay.com/api/refund/refundOrder
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付订单号 | payOrderId | 是 | String(30) | P20160427210604000490 | 支付中心生成的订单号,与mchOrderNo二者传一即可 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的支付订单号,与payOrderId二者传一即可 |
| 商户退款单号 | mchRefundNo | 是 | String(30) | M27210632100491 | 商户生成的退款单号 |
| 退款金额 | refundAmount | 是 | int | 100 | 退款金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 退款原因 | refundReason | 是 | String(64) | 用户退货 | 退款原因 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 异步通知地址 | notifyUrl | 否 | String(128) | https://mqiepay.com/notify.htm | 退款完成后回调该URL,只有传了该值才会发起回调 |
| 渠道参数 | channelExtra | 否 | String(256) | {"auth_code", "13920933111042"} | 特定渠道发起的额外参数,json格式字符串.详见渠道参数说明 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"payOrderId": "P202106181104177050002",
"extParam": "",
"mchOrderNo": "",
"refundReason": "退款测试",
"sign": "2762CDB48D5179281DB6C0995E4EEDE0",
"reqTime": "1624007315",
"version": "1.0",
"channelExtra": "",
"appId": "60cc09bce4b0f1c0b83761c9",
"mchRefundNo": "mho1624007315478",
"clientIp": "192.166.1.132",
"notifyUrl": "https://www.mqiepay.com",
"refundAmount": 1,
"signType": "MD5",
"currency": "CNY",
"mchNo": "M1623984572"
}
响应参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 退款订单号 | refundOrderId | 是 | String(30) | R20160427210604000490 | 退款订单号 |
| 支付订单号 | mchRefundNo | 是 | String(30) | P196068184057869 | 支付订单号 |
| 订单支付金额 | payAmount | 是 | long | 3000 | 单位为:分 |
| 申请退款金额 | refundAmount | 是 | long | 3000 | 单位为:分 |
| 退款状态 | state | 是 | int | 1 | 0-订单生成,1-退款中,2-退款成功,3-退款失败,4-退款任务关闭 |
| 渠道订单号 | channelOrderNo | 是 | String(30) | R1940703106530594 | 渠道订单号 |
| 渠道错误码 | errCode | 是 | String(10) | 00001 | 渠道错误码 |
| 渠道错误描述 | errMsg | 是 | String(128) | 商户状态或信息异常 | 渠道错误描述 |
🔍 查询退款订单
功能描述
商户通过该接口查询退款订单,支付网关会返回订单最新的数据。
接口说明
请求URL: https://payapi.mqiepay.com/api/refund/query
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 退款订单号 | refundOrderId | 是 | String(30) | R20160427210604000490 | 支付中心生成的退款单号,与mchRefundNo二者传一即可 |
| 商户退款单号 | mchRefundNo | 是 | String(30) | 20160427210604000490 | 商户生成的退款单号,与refundOrderId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"refundOrderId": "P202106181105527690009",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "1484293FCAEAFE11DEC8949DB6B525A9",
"signType": "MD5",
"reqTime": "1624008199",
"mchNo": "M1623984572",
"version": "1.0"
}
响应参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 退款订单号 | refundOrderId | 是 | String(30) | R20160427210604000490 | 退款订单号 |
| 支付订单号 | payOrderId | 是 | String(30) | P196068184057869 | 支付订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户退款单号 | mchRefundNo | 是 | String(30) | 20160427210604000490 | 商户退款单号 |
| 订单支付金额 | payAmount | 是 | long | 3000 | 单位为:分 |
| 申请退款金额 | refundAmount | 是 | long | 3000 | 单位为:分 |
| 渠道退款单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道退款单号 |
| 退款状态 | state | 是 | int | 1 | 0-订单生成,1-退款中,2-退款成功,3-退款失败,4-退款任务关闭 |
| 渠道订单号 | channelOrderNo | 是 | String(30) | R1940703106530594 | 渠道订单号 |
| 渠道错误码 | errCode | 是 | String(10) | 00001 | 渠道错误码 |
| 渠道错误描述 | errMsg | 是 | String(128) | 商户状态或信息异常 | 渠道错误描述 |
🔔 退款结果通知
功能描述
当退款完成时(成功或失败),支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
请求URL: 该链接是通过统一退款接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式: POST
请求类型: application/x-www-form-urlencoded
通知参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 退款订单号 | refundOrderId | 是 | String(30) | R20160427210604000490 | 支付中心生成的退款单号 |
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户退款单号 | mchRefundNo | 是 | String(30) | 20160427210604000490 | 商户生成的退款单号 |
| 支付金额 | payAmount | 是 | int | 100 | 支付金额,单位分 |
| 退款金额 | refundAmount | 是 | int | 100 | 退款金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 退款状态 | state | 是 | int | 2 | 退款状态 0-订单生成 1-退款中 2-退款成功 3-退款失败 4-退款关闭 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 134586944573118714 | 渠道返回错误描述 |
| 扩展参数 | extraParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 成功时间 | successTime | 否 | long | 1622016572190 | 订单支付成功时间,13位时间戳 |
| 通知请求时间 | reqTime | 是 | String(30) | 1622016572190 | 通知请求时间,,13位时间戳 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
通知示例数据
{
"appId": "60cc09bce4b0f1c0b83761c9",
"channelOrderNo": "2021061822001423031419593035",
"createdAt": 1623985552769,
"currency": "cny",
"extParam": "",
"mchNo": "M1623984572",
"mchRefundNo": "mho1623985552430",
"payAmount": 58,
"payOrderId": "P202106181104177050002",
"refundAmount": 4,
"refundOrderId": "P202106181105527690009",
"reqTime": "1623985553",
"sign": "594B2F92F8B4C4A9C5A8A9F4F8B4C4A9",
"state": 2,
"successTime": 1623985553000
}
返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非 success 则表示处理失败,支付中心会再次通知业务系统。
注意:返回的字符串不区分大小写,字符串前后不能有空格和换行符。
💰 聚合支付预支付
功能描述
⚠ 仅1.0版本适用。
商户通过该接口发起聚合支付预支付订单,支持多种支付方式的统一预处理。
接口说明
请求URL: https://payapi.mqiepay.com/api/cashier/aggpayPrePay
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 订单号 | orderId | 是 | String | PAY202401010001 | 支付订单号 |
| 用户标识 | openId | 是 | String | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | 微信用户openId |
| 支付方式 | payWay | 是 | String | WECHAT_OFFIACCOUNT | 支付方式代码 USER_SCAN:用户扫码 MINI_PROGRAM:小程序支付 WECHAT_OFFIACCOUNT:微信公众号 ALIPAY_LIFE:支付宝生活号 JS_PAY:JS支付 SDK_PAY:SDK支付 H5_PAY:H5支付 UNCONSCIOUS_PAY:云微无感支付 DIRECT_PAY:云微直接支付 |
| 支付渠道 | channel | 是 | String | 支付渠道 | |
| 支付场景 | scene | 是 | String | ONLINE | 支付场景 ONLINE:线上 OFFLINE:线下 BAOXIAN:保险 GONGYI:公益 DC_SEPARATION:借贷分离 DIGITAL:数娱 REGISTRATION:报名(需要先优惠费率报名成功,否则会阻断交易) PRIVATE_EDUCATION:民办教育 DIRECT:直连 LARGE:特殊 STORE_ASST:门店助手 GONGJIAO:公缴 |
| 渠道AppId | chAppId | 是 | String | wx****** | 渠道AppId |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"orderId": "PAY202401010001",
"openId": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o",
"payWay": "WECHAT_OFFIACCOUNT",
"channel": "WECHAT",
"scene": "ONLINE",
"chAppId": "wx*******",
"reqTime": 1622016572190,
"version": "1.0",
"sign": "C380BEC2BFD727A4B6845133519F3AD6",
"signType": "MD5"
}
返回参数
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态 | code | int | 0 | 0-成功,其它-失败 |
| 返回信息 | msg | String | SUCCESS | 返回信息 |
| 预支付ID | prePayId | String | PRE20240101001 | 预支付订单ID |
| 支付页面URL | payPageUrl | String | https://pay.mqiepay.com/cashier/aggpay/PRE20240101001 | 聚合支付页面URL |
| 支付方式信息 | payWayInfo | Object | {} | 各支付方式的详细信息 |
🏦 聚合支付托管支付
功能描述
⚠ 仅1.0版本适用。
商户通过该接口发起聚合支付托管支付订单,支持资金托管和分账功能。
接口说明
请求URL: https://payapi.mqiepay.com/api/cashier/aggpayTutelagePay
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 订单号 | orderId | 是 | String | PAY202401010002 | 支付订单号 |
| 支付方式 | payWay | 是 | String | MINI_PROGRAM | 支付方式代码 USER_SCAN:用户扫码 MINI_PROGRAM:小程序支付 WECHAT_OFFIACCOUNT:微信公众号 ALIPAY_LIFE:支付宝生活号 JS_PAY:JS支付 SDK_PAY:SDK支付 H5_PAY:H5支付 UNCONSCIOUS_PAY:云微无感支付 DIRECT_PAY:云微直接支付 |
| 支付渠道 | channel | 是 | String | 支付渠道 WECHAT:微信 ALIPAY:支付宝 | |
| 支付场景 | scene | 是 | String | ONLINE | 支付场景 ONLINE:线上 OFFLINE:线下 BAOXIAN:保险 GONGYI:公益 DC_SEPARATION:借贷分离 DIGITAL:数娱 REGISTRATION:报名(需要先优惠费率报名成功,否则会阻断交易) PRIVATE_EDUCATION:民办教育 DIRECT:直连 LARGE:特殊 STORE_ASST:门店助手 GONGJIAO:公缴 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"orderId": "PAY202401010002",
"payWay": "MINI_PROGRAM",
"channel": "WECHAT",
"scene": "ONLINE",
"reqTime": 1622016572190,
"version": "1.0",
"sign": "C380BEC2BFD727A4B6845133519F3AD6",
"signType": "MD5"
}
返回参数
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态 | code | int | 0 | 0-成功,其它-失败 |
| 返回信息 | msg | String | SUCCESS | 返回信息 |
| 小程序AppId | appId | String | wx1234567890abcdef | 小程序appId |
| 商户收款请求号 | orderId | String | PAY202401010002 | 商户收款请求号 |
| 小程序路径 | miniProgramPath | String | pages/pay/index | 跳转小程序的路径 |
| 小程序原始ID | miniProgramOrgId | String | gh_1234567890ab | 小程序原始id |
接口特色
• 支持微信小程序支付场景
• 返回小程序跳转路径和原始ID
• 适用于小程序内支付流程
• 提供完整的小程序支付参数
👤 获取渠道用户ID
功能描述
商户通过该接口获取渠道的用户ID,如微信的openID,支付宝的userId。该接口通过跳转获取到用户ID后,会跳转到商户上传的redirectUrl地址,并传递用户ID参数。
接口说明
请求URL: https://payapi.mqiepay.com/api/channelUserId/jump
请求方式: GET
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付接口 | ifCode | 是 | String(30) | AUTO | 目前只支持传 AUTO |
| 跳转地址 | redirectUrl | 是 | String | https://www.mqiepay.com | 获取到用户ID后,会携带用户ID参数跳转到该地址 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"ifCode": "yeepay",
"redirectUrl": "https://www.mqiepay.com",
"sign": "A5C93D50743126ED91AA6ED96CDEEEF8",
"signType": "MD5",
"reqTime": "1622011236571",
"version": "1.0"
}
返回参数
当获取到渠道用户ID后,会301重定向到跳转地址,传递参数如下:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 渠道用户ID | channelUserId | 是 | String | o6BcIwvSiRpfS8e_UyfQNrYuk2LI | 渠道用户ID,微信openId或支付宝userId |
💸 发起转账订单
功能描述
商户通过该接口发起转账订单,支持微信和支付宝转账。
接口说明
请求URL: https://payapi.mqiepay.com/api/transferOrder
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的转账订单号 |
| 接口代码 | ifCode | 是 | String(10) | wxpay | wxpay-微信官方接口 ; alipay-支付宝官方接口 |
| 入账方式 | entryType | 是 | String(20) | WX_CASH | 入账方式: WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡 |
| 转账金额 | amount | 是 | int | 100 | 转账金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 收款账号 | accountNo | 是 | String(64) | o6BcIwvTvIqf1zXZohc61biryWik | wxpay-openID, alipay-登录账号 |
| 收款人姓名 | accountName | 否 | String(64) | 张三 | 填入则验证姓名,否则不验证 |
| 收款人开户行名称 | bankName | 否 | String(64) | 中国工商银行 | 当前仅作为记录 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 转账备注信息 | transferDesc | 否 | String(128) | 测试转账 | 转账备注信息 |
| 异步通知地址 | notifyUrl | 否 | String(128) | https://www.mqiepay.com/notify.htm | 转账完成后回调该URL,只有传了该值才会发起回调 |
请求示例数据
{
"ifCode": "yeepay",
"entryType": "YEEPAY_CASH",
"amount": 1,
"accountName": "",
"mchOrderNo": "mho1629106169045",
"sign": "3EB5A3B81E92DB41677E235363E7DDE3",
"transferDesc": "测试转账",
"reqTime": "1629106169",
"version": "1.0",
"appId": "60cc3ba74ee0e6685f57eb1e",
"accountNo": "a6BcIwtTvIqv1zXZohc61biryWok",
"clientIp": "192.166.1.132",
"signType": "MD5",
"currency": "CNY",
"mchNo": "M1623997351"
}
🔍 查询转账订单
功能描述
商户通过该接口查询转账订单,支付网关会返回订单最新的数据。
接口说明
请求URL: https://payapi.mqiepay.com/api/transfer/query
请求方式: POST
请求类型: application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 转账订单号 | transferId | 是 | String(30) | T20160427210604000490 | 支付中心生成的转账单号,与mchOrderNo二者传一即可 |
| 商户转账单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的转账单号,与transferId二者传一即可 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
返回示例数据
{
"code": 0,
"data": {
"accountNo": "o6BcIwvTvIqf1zXZohc61biryWik",
"amount": 1,
"appId": "6113805e42020495c62bd4cb",
"createdAt": 1628818820011,
"currency": "CNY",
"entryType": "YEEPAY_CASH",
"errCode": "OPENID_ERROR",
"errMsg": "openid与商户appid不匹配【openid与商户appid不匹配】",
"ifCode": "yeepay",
"mchNo": "M1623997351",
"mchOrderNo": "1628818820",
"state": 3,
"transferDesc": "测试",
"transferId": "T202108130940200100001"
},
"msg": "SUCCESS",
"sign": "A262DBD3D6182E8A0AEC90EF820F2A5A"
}
🔔 转账结果通知
功能描述
当转账完成时(成功或失败),支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
请求URL: 该链接是通过转账申请接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式: POST
请求类型: application/x-www-form-urlencoded
通知参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 商户生成的转账订单号 |
| 转账订单号 | transferId | 是 | String(30) | T20160427210604000490 | 支付中心生成的转账单号 |
| 转账金额 | amount | 是 | int | 100 | 转账金额,单位分 |
| 货币代码 | currency | 是 | String(3) | cny | 三位货币代码,人民币:cny |
| 接口代码 | ifCode | 是 | String(10) | wxpay | wxpay-微信官方接口 ; alipay-支付宝官方接口 |
| 入账方式 | entryType | 是 | String(20) | WX_CASH | 入账方式: WX_CASH-微信零钱; ALIPAY_CASH-支付宝转账; BANK_CARD-银行卡 |
| 转账状态 | state | 是 | int | 2 | 转账状态0-订单生成1-转账中2-转账成功3-转账失败4-转账关闭 |
| 收款账号 | accountNo | 是 | String(64) | o6BcIwvTvIqf1zXZohc61biryWik | wxpay-openID, alipay-登录账号 |
| 收款人姓名 | accountName | 否 | String(64) | 张三 | 填入则验证姓名,否则不验证 |
| 收款人开户行名称 | bankName | 否 | String(64) | 中国工商银行 | 当前仅作为记录 |
| 转账备注信息 | transferDesc | 否 | String(128) | 测试转账 | 转账备注信息 |
| 渠道转账单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的转账单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 134586944573118714 | 渠道返回错误描述 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 成功时间 | successTime | 否 | long | 1622016572190 | 转账成功时间,13位时间戳 |
通知示例数据
{
"accountNo": "o6BcIwvTvIqf1zXZohc61biryWik",
"amount": 1,
"appId": "6113805e42020495c62bd4cb",
"createdAt": 1628818820011,
"currency": "CNY",
"entryType": "WX_CASH",
"errCode": "OPENID_ERROR",
"errMsg": "openid与商户appid不匹配【openid与商户appid不匹配】",
"ifCode": "wxpay",
"mchNo": "M1623997351",
"mchOrderNo": "1628818820",
"state": 3,
"transferDesc": "测试",
"transferId": "T202108130940200100001"
}
返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非 success 则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)