预授权
统一下单(预授权)
商户业务系统通过统一下单接口发起预授权订单,easylink支付网关会根据商户配置的支付通道路由支付通道完成预授权下单。支付网关根据不同的支付方式返回对应的支付参数,业务系统使用支付参数发起预授权。
接口说明
请求URL:/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_LITE | 支付方式,如微信小程序WX_LITE |
| 支付金额 | amount | 是 | int | 100 | 预授权金额,单位分 |
| 货币代码 | currency | 是 | String(3) | HKD | 三位货币代码,港币:HKD |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 商品标题 | subject | 是 | String(64) | 商品标题测试 | 商品标题 |
| 商品描述 | body | 是 | String(256) | 商品描述测试 | 商品描述 |
| 异步通知地址 | notifyUrl | 否 | String(256) | https://www.gnete.com.hk/notify.htm | 支付结果异步回调URL,只有传了该值才会发起回调 |
| 跳转通知地址 | returnUrl | 否 | String(256) | https://www.gnete.com.hk/return.htm | 支付结果同步跳转通知URL |
| 失效时间 | expiredTime | 否 | int | 3600 | 订单失效时间,单位秒,默认2小时.订单在(创建时间+失效时间)后失效 |
| 渠道参数 | channelExtra | 否 | String(256) | {"auth_code", "13920933111042"} | 特定渠道发起的额外参数,json格式字符串.详见渠道参数说明 |
| 预授权标识 | preauthFlag | 是 | String(5) | true | 取值true或false,默认false |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"amount": 8,
"extParam": "",
"mchOrderNo": "mho1624005107281",
"subject": "商品标题",
"wayCode": "WX_H5",
"sign": "84F606FA25A6EC4783BECC08D4FDC681",
"reqTime": "1624005107",
"body": "商品描述",
"version": "1.0",
"channelExtra": "{\"authCode\":\"280812820366966512\"}",
"appId": "60cc09bce4b0f1c0b83761c9",
"clientIp": "192.166.1.132",
"notifyUrl": "https://www.gnete.com.hk/notify.html",
"signType": "MD5",
"currency": "HKD",
"returnUrl": "",
"mchNo": "M1623984572",
"preauthFlag":true
}返回参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付订单号 | payOrderId | 是 | String(30) | U12021022311124442600 | 返回支付系统订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 订单状态 | orderState | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 支付数据类型 | payDataType | 是 | String | payUrl | 支付参数类型 payUrl-跳转链接的方式 form-表单方式 wxapp-微信支付参数(微信公众号,小程序,app支付时) aliapp-支付宝app支付参数 ysfapp-云闪付app支付参数 codeUrl-二维码地址 codeImgUrl-二维码图片地址 none-空支付参数 |
| 支付数据 | payData | 否 | String | http://www.gnete.com.hk/pay.html | 发起支付用到的支付参数,如果微信公众号支付等 |
| 渠道错误码 | errCode | 否 | String | ACQ.PAYMENT_AUTH_CODE_INVALID | 上游渠道返回的错误码 |
| 渠道错误描述 | errMsg | 否 | String | Business Failed 失败 | 上游渠道返回的错误描述 |
返回示例数据
{
"code": 0,
"data": {
"errCode": "ACQ.PAYMENT_AUTH_CODE_INVALID",
"errMsg": "Business Failed【支付失败,获取顾客账户信息失败,请顾客刷新付款码后重新收款,如再次收款失败,请联系管理员处理。[SOUNDWAVE_PARSER_FAIL]】",
"mchOrderNo": "mho1624005752661",
"orderState": 3,
"payOrderId": "P202106181642329900002"
},
"msg": "SUCCESS",
"sign": "F4DA202C516D1F33A12F1E547C5004FD"
}支付方式
| WayCode | 支付方式 |
|---|---|
| ALI_JSAPI | 支付宝生活号 |
| ALI_APP | 支付宝APP |
| ALI_H5 | 支付宝H5 |
| ALI_QR | 支付宝扫码(主扫) |
| WX_JSAPI | 微信公众号 |
| WX_LITE | 微信小程序 |
| WX_APP | 微信APP |
| WX_H5 | 微信H5 |
| WX_QR | 微信扫码(主扫) |
| UP_OP | 银联在线支付 |
| UP_EXPRESS | 银联快捷支付 |
| UP_APP | 银联APP |
| YSF_QR | 云闪付扫码(主扫) |
| NUVEI_H5 | NUVEI H5 |
| NUVEI_CARD | VISA/MC 银行卡 |
| GOOGLE_PAY | Google 支付 |
| APPLE_PAY | Apple 支付 |
channelExtra参数说明
当 wayCode=WX_JSAPI 或 wayCode=WX_LITE 时,channelExtra必须传subAppid、openid,channelExtra示例数据如:
{"subAppid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI", "openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI"}当 wayCode=WX_H5 或 wayCode=WX_APP 时,channelExtra可以传subAppid,channelExtra示例数据如:
{"appid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI"}当 wayCode=ALI_H5 时,channelExtra可以传walletType设置钱包类型。此时walletType可以为:CN-中国大陆钱包,HK-香港钱包,不传walletType默认返回HK类型, channelExtra示例数据如:
{"walletType": "CN"}当 wayCode=ALI_QR 或 wayCode=WX_QR 或 wayCode=YSF_QR 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:codeUrl-二维码地址,codeImgUrl-二维码图片地址,不传payDataType默认返回codeUrl类型, channelExtra示例数据如:
{"payDataType": "codeImgUrl"}当 wayCode=UP_OP 或 wayCode=UP_APP 时,channelExtra可以传accNo锁定银行卡号交易。channelExtra示例数据如:
{"accNo": "6250******0016"}当 wayCode=UP_EXPRESS 时,channelExtra可以传customerInfo输入银行卡验证信息。channelExtra示例数据如:
{"customerInfo": "aN89IpTVcF7EoN9aBbDwjc1BN0nFrcz22trbqalSn4YJzCW3muyO70gIRX9KUblQP57bIJ+/Cg+VacE0r2l82ghRQfAGQTaO3K+Dzj3t97k7p4cl8QtdvbzQBAqIS3O905PMmDsezZmm1Ag5HEjCjfzZke1TZmieof2uRzIO0DD4yWOZu0Qx3VePGt+yrPihwlaK/raXYjKuXSA38sWrKg98B3e7Ie/cilDgYwxvXlRAjABO+ecJq844Kc7v7Dnus7FC0cwu+OLnGT4BJTsXa5ywl4IbUvrvsKBvvxAfMDwkDwgio1+hPORVyDSUpOd/9XSXC9spu+GhkBbWQgXlfA=="}当 wayCode=NUVEI_CARD 时,channelExtra需要传card输入银行卡信息、billingAddress账单地址信息、browserDetails浏览器信息。channelExtra示例数据如:
{
"card": {
"cardNumber": "2******7736",
"cardHolderName": "NAME",
"expirationMonth": "12",
"expirationYear": "25",
"cvv": "123"
},
"billingAddress": {
"country": "US",
"email": "*@email.com",
"phone": "12345",
"firstName": "A",
"lastName": "B"
},
"browserDetails": {
"acceptHeader": "text/html,application/xhtml+xml",
"userAgent": "Mozilla",
"clientIp": "192.168.1.11",
"javaEnabled": "TRUE",
"javaScriptEnabled": "TRUE",
"language": "EN",
"colorDepth": 48,
"screenHeight": 400,
"screenWidth": 600,
"timeZone": "0"
}
}当 wayCode=GOOGLE_PAY 或 wayCode=APPLE_PAY 时,channelExtra需要传paymentToken、billingAddress账单地址信息、browserDetails浏览器信息。channelExtra示例数据如:
{
"paymentToken": "paymentToken",
"billingAddress": {
"country": "US",
"email": "*@email.com",
"phone": "12345",
"firstName": "A",
"lastName": "B"
},
"browserDetails": {
"acceptHeader": "text/html,application/xhtml+xml",
"userAgent": "Mozilla",
"clientIp": "192.168.1.11",
"javaEnabled": "TRUE",
"javaScriptEnabled": "TRUE",
"language": "EN",
"colorDepth": 48,
"screenHeight": 400,
"screenWidth": 600,
"timeZone": "0"
}
}card数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 银行卡号 | cardNumber | 是 | String(20) | 2******7736 | 付款完整银行卡号 |
| 持卡人姓名 | cardHolderName | 是 | String(70) | ZHANSAN | |
| 卡过期年份 | expirationYear | 是 | String(2) | 25 | 2025年过期,则填入25 |
| 卡过期月份 | expirationMonth | 是 | String(2) | 12 | 12月过期,则填入12 |
| 卡安全码 | cvv | 是 | String(3) | 123 |
billingAddress数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 国家码 | country | 是 | String(2) | HK | 2-letter ISO country code |
| 账单邮箱 | 是 | String(100) | xxx@gmail.com | ||
| 账单手机号 | phone | 是 | String(18) | 85212345678 | |
| 名字 | firstName | 是 | String(30) | SAN | |
| 姓氏 | lastName | 是 | String(40) | ZHAN |
browserDetails数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| accept信息 | acceptHeader | 是 | String(2048) | text/html,application/xhtml+xml | 用户浏览器上送http header中的accept信息 |
| userAgent | userAgent信息 | 是 | String(18) | Mozilla | 用户浏览器上送http header中的user-agent信息 |
| 用户浏览器端IP | clientIp | 是 | String() | 192.168.1.1 | |
| 是否支持Java | javaEnabled | 是 | String() | TRUE | 前端通过navigator.javaEnabled获取,固定值:true或false |
| 是否支持JavaScript | javaScriptEnabled | 是 | String(3) | TRUE | 前端通过navigator. javaScriptEnabled 获取,固定值:true或false |
| 浏览器语言类型 | language | 是 | String(8) | EN | 前端通过navigator. language 获取 |
| 浏览器调色板的位深度 | colorDepth | 是 | String(2) | 前端通过navigator. colorDepth获取 | |
| 浏览器屏幕高度 | screenHeight | 是 | String(6) | 前端通过screen.height获取 | |
| 浏览器屏幕宽度 | screenWidth | 是 | String(6) | 前端通过screen.width获取 | |
| 浏览器的时区信息 | timeZone | 是 | String(5) | 前端通过 new Date().getTimezoneOffset()获取 |
查询订单
商户通过该接口查询预授权订单,支付网关会返回订单最新的数据
接口说明
请求URL:/api/preauth/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": "P202106181104177050002",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5",
"reqTime": "1624006009",
"mchNo": "M1623984572",
"version": "1.0"
}| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 预授权订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统预授权订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的订单号 |
| 预授权完成订单号 | preauthOrderId | 否 | String(30) | 20160427210604000490 | 返回系统返回预授权完成订单号 |
| 预授权完成商户请求订单号 | preauthOrderNo | 否 | String(30) | 20160427210604000490 | 返回商户传入的预授权完成请求订单号 |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 否 | String(3) | HKD | 三位货币代码,港币:HKD |
| 订单状态 | 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 | 对应渠道的订单号 |
| 渠道流水号 | traceNo | 否 | String | 20160427210604000490 | 对应渠道的返回的流水号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 业务异常错误 | 渠道下单返回错误描述 |
| 扩展参数 | extParam | 否 | String(512) | 134586944573118714 | 商户扩展参数,回调时会原样返回 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 订单创建时间,13位时间戳 |
| 成功时间 | successTime | 否 | long | 1622016572190 | 订单支付成功时间,13位时间戳 |
返回示例数据
{
"code": 0,
"data": {
"amount": 58,
"appId": "60cc09bce4b0f1c0b83761c9",
"body": "商品描述",
"channelOrderNo": "2021061822001423031419593035",
"clientIp": "192.166.1.132",
"createdAt": 1623985457705,
"currency": "HKD",
"extParam": "",
"ifCode": "alipay",
"mchNo": "M1623984572",
"mchOrderNo": "mho1623985457320",
"payOrderId": "P202106181104177050002",
"state": 2,
"subject": "商品标题",
"successTime": 1623985459000,
"wayCode": "WX_H5"
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}预授权撤销
商户通过该接口撤销预授权订单,支付网关会对预授权订单做撤销处理。
接口说明
请求URL:/api/pay/preauthCancel
请求方式: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二者传一即可 |
| 异步通知地址 | notifyUrl | 是 | String(100) | https://www.gnete.com.hk/notify.html | 异步通知请求地址 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"payOrderId": "P202106181104177050002",
"notifyUrl": "https://www.gnete.com.hk/notify.html",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5",
"reqTime": "1624006009",
"mchNo": "M1623984572",
"version": "1.0"
}| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 预授权撤销订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回预授权撤销订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的预授权撤销订单号 |
| 预授权订单号 | preauthOrderId | 否 | String(30) | 20160427210604000490 | 返回预授权订单号 |
| 商户预授权订单号 | preauthOrderNo | 否 | String(30) | 20160427210604000490 | 返回商户请求预授权订单号 |
| 支付金额 | amount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 否 | String(3) | HKD | 三位货币代码,港币:HKD |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道流水号 | traceNo | 否 | String | 20160427210604000490 | 对应渠道的返回的流水号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 业务异常错误 | 渠道下单返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"amount": 58,
"appId": "60cc09bce4b0f1c0b83761c9",
"channelOrderNo": "2021061822001423031419593035",
"mchNo": "M1623984572",
"mchOrderNo": "mho1623985457320",
"payOrderId": "P202106181104177050002",
"state": 2,
"errCode": "",
"errMsg": ""
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}预授权完成
商户通过该接口完成支付,支付网关会对预授权订单进行预授权完成。
接口说明
请求URL:/api/pay/preauthed
请求方式: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二者传一即可 |
| 完成金额 | totalAmount | 是 | long | 58 | 预授权完成金额 |
| 异步通知地址 | notifyUrl | 是 | String(100) | https://www.gnete.com.hk/notify.html | 异步通知请求地址 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"payOrderId": "P202106181104177050002",
"amount": 58,
"notifyUrl": "https://www.gnete.com.hk/notify.html",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5",
"reqTime": "1624006009",
"mchNo": "M1623984572",
"version": "1.0"
}| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 预授权完成订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回预授权完成订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的预授权完成订单号 |
| 预授权订单号 | preauthOrderId | 否 | String(30) | 20160427210604000490 | 返回预授权订单号 |
| 商户预授权订单号 | preauthOrderNo | 否 | String(30) | 20160427210604000490 | 返回商户请求预授权订单号 |
| 预授权完成金额 | amount | 否 | int | 100 | 预授权完成支付金额,单位分 |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道流水号 | traceNo | 否 | String | 20160427210604000490 | 对应渠道的返回的流水号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 业务异常错误 | 渠道下单返回错误描述 |
返回示例数据 |
{
"code": 0,
"data": {
"amount": 58,
"appId": "60cc09bce4b0f1c0b83761c9",
"channelOrderNo": "2021061822001423031419593035",
"mchNo": "M1623984572",
"mchOrderNo": "mho1623985457320",
"payOrderId": "P202106181104177050002",
"state": 2,
"errCode": "",
"errMsg": ""
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}预授权完成撤销
商户通过该接口撤销预授权完成订单,支付网关会对预授权完成订单做完成撤销处理。
接口说明
请求URL:/api/pay/preauthedCancel
请求方式: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二者传一即可 |
| 异步通知地址 | notifyUrl | 是 | String(100) | https://www.gnete.com.hk/notify.html | 异步通知请求地址 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"payOrderId": "P202106181104177050002",
"notifyUrl": "https://www.gnete.com.hk/notify.html",
"appId": "60cc09bce4b0f1c0b83761c9",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5",
"reqTime": "1624006009",
"mchNo": "M1623984572",
"version": "1.0"
}| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 预授权撤销订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回预授权撤销订单号 |
| 商户订单号 | mchOrderNo | 是 | String(30) | 20160427210604000490 | 返回商户传入的预授权撤销订单号 |
| 预授权订单号 | preauthOrderId | 否 | String(30) | 20160427210604000490 | 返回预授权订单号 |
| 商户预授权订单号 | preauthOrderNo | 否 | String(30) | 20160427210604000490 | 返回商户请求预授权订单号 |
| 支付金额 | amount | 否 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 否 | String(3) | HKD | 三位货币代码,港币:HKD |
| 订单状态 | state | 是 | int | 2 | 支付订单状态 0-订单生成 1-支付中 2-支付成功 3-支付失败 4-已撤销 5-已退款 6-订单关闭 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的订单号 |
| 渠道流水号 | traceNo | 否 | String | 20160427210604000490 | 对应渠道的返回的流水号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道下单返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 业务异常错误 | 渠道下单返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"amount": 58,
"appId": "60cc09bce4b0f1c0b83761c9",
"channelOrderNo": "2021061822001423031419593035",
"mchNo": "M1623984572",
"mchOrderNo": "mho1623985457320",
"payOrderId": "P202106181104177050002",
"state": 2,
"errCode": "",
"errMsg": ""
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}预授权通知
当交易成功时,支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
请求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 | 商户传入的订单号 |
| 预授权完成金额 | preauthedAmount | 否 | int | 1 | 预授权完成金额 |
| 预授权标识 | preauthFlag | 是 | String(5) | true | 预授权标识号 |
| 预授权状态 | preauthState | 否 | String(5) | 1 | 预授权状态: 0-预授权, 1-预授权已完成, 2-预授权已撤销 |
| 支付接口 | ifCode | 是 | String(30) | wxpay | 支付接口编码 |
| 支付方式 | wayCode | 是 | String(30) | WX_LITE | 支付方式,微信小程序WX_LITE |
| 支付金额 | amount | 否 | int | 100 | 交易金额,单位分 |
| 货币代码 | currency | 是 | String(3) | HKD | 三位货币代码,港币:HKD |
| 订单状态 | 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 | 对应渠道的订单号 |
| 渠道用户表示 | channelUser | 否 | String | 625094******0014 | 对应渠道的用户号/卡号 |
| 渠道错误码 | 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 | 签名值,详见签名算法 |
返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)
注意:返回的字符串不区分大小写,字符串前后不能有空格和换行符。
通知示例数据
{
"amount": 5,
"body": "商品描述",
"clientIp": "192.166.1.132",
"createdAt": "1622016572190",
"currency": "HKD",
"extParam": "",
"ifCode": "wxpay",
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"mchOrderNo": "mho1621934803068",
"payOrderId": "20210525172643357010",
"state": 3,
"subject": "商品标题",
"wayCode": "WX_H5",
"preauthedAmount": 0,
"preauthFlag": true,
"preauthState": 2,
"channelUser": "625094******0014",
"sign": "C380BEC2BFD727A4B6845133519F3AD6"
}