撤销
2026/3/26大约 7 分钟
统一撤销
商户通过该接口撤销订单,支付网关会对已完成的当日订单进行撤销处理。
下图展示了撤销订单的完整流程:
流程说明:
- 商户调用撤销接口提交撤销请求
- 支付网关向渠道发起撤销操作
- 渠道返回撤销处理结果
- 支付网关将结果返回给商户
- 如有配置异步通知地址,支付网关会额外发送异步通知
接口说明
请求URL:/api/pay/cancel
请求方式: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二者传一即可 |
| 客户端IP | clientIp | 否 | String(32) | 210.73.10.148 | 客户端IPV4地址 |
| 异步通知地址 | notifyUrl | 否 | String(128) | https://www.gnete.com.hk/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方式 |
请求示例数据
{
"mchNo": "M1623984572",
"appId": "60cc09bce4b0f1c0b83761c9",
"payOrderId": "P202106181104177050002",
"mchOrderNo": "20160427210604000490",
"clientIp": "192.166.1.132",
"notifyUrl": "https://www.gnete.com.hk/notify.htm",
"channelExtra": "",
"extParam": "",
"reqTime": "1624006009",
"version": "1.0",
"sign": "46940C58B2F3AE426B77A297ABF4D31E",
"signType": "MD5"
}返回参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 返回状态 | code | 是 | int | 0 | 0-处理成功,其他-处理有误,详见错误码 |
| 返回信息 | msg | 否 | String(128) | 签名失败 | 具体错误原因,例如:签名失败、参数格式校验错误 |
| 签名信息 | sign | 否 | String(32) | CCD9083A6DAD9A2DA9F668C3D4517A84 | 对data内数据签名,如data为空则不返回 |
| 返回数据 | data | 否 | String(512) | {} | 返回下单数据,json格式数据 |
data数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 撤销订单号 | cancelOrderId | 是 | String(30) | C202106181104177050002 | 返回撤销订单号 |
| 撤销状态 | state | 是 | int | 2 | 撤销状态 0-订单生成 1-撤销中 2-撤销成功 3-撤销失败 4-撤销关闭 |
| 渠道退款单号 | channelOrderNo | 否 | String | 20160427210604000490 | 对应渠道的退款单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道撤销返回错误码 |
| 渠道错误描述 | errMsg | 否 | String | 关闭异常 | 渠道撤销返回错误描述 |
返回示例数据
{
"code": 0,
"data": {
"cancelOrderId": "C202106181104177050002",
"state": 2,
"channelOrderNo": "2021061822001423031419593035",
"errCode": "",
"errMsg": ""
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}查询订单
商户通过该接口查询订单,支付网关会返回订单最新的数据
接口说明
请求URL:/api/cancel/query
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 撤销订单号 | cancelOrderId | 是 | String(30) | C20160427210604000490 | 撤销订单号 |
| 请求时间 | reqTime | 是 | long | 1622016572190 | 请求接口时间,13位时间戳 |
| 接口版本 | version | 是 | String(3) | 1.0 | 接口版本号,固定:1.0 |
| 签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名值,详见签名算法 |
| 签名类型 | signType | 是 | String(32) | MD5 | 签名类型,目前只支持MD5方式 |
请求示例数据
{
"cancelOrderId": "C202106181104177050002",
"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数据格式
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 撤销订单号 | cancelOrderId | 是 | String(30) | C202106181104177050002 | 撤销订单号 |
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 支付订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付金额 | payAmount | 是 | long | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | HKD | 三位货币代码,港币:HKD |
| 撤销状态 | state | 是 | int | 2 | 撤销状态 0-订单生成 1-撤销中 2-撤销成功 3-撤销失败 4-撤销关闭 |
| 渠道订单号 | channelOrderNo | 否 | String | 20160427210604000490 | 渠道订单号 |
| 渠道错误码 | errCode | 否 | String | 1002 | 渠道错误码 |
| 渠道错误描述 | errMsg | 否 | String | 业务异常错误 | 渠道错误描述 |
| 扩展参数 | extraParam | 否 | String(512) | 134586944573118714 | 扩展参数 |
| 订单撤销成功时间 | successTime | 否 | long | 1622016572190 | 订单撤销成功时间,13位时间戳 |
| 创建时间 | createdAt | 是 | long | 1622016572190 | 创建时间,13位时间戳 |
返回示例数据
{
"code": 0,
"data": {
"cancelOrderId": "C202106181104177050002",
"payOrderId": "P202106181104177050002",
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"payAmount": 58,
"currency": "HKD",
"state": 2,
"channelOrderNo": "2021061822001423031419593035",
"errCode": "",
"errMsg": "",
"extraParam": "",
"successTime": 1623985554000,
"createdAt": 1623985552769
},
"msg": "SUCCESS",
"sign": "9548145EA12D0CD8C1628BCF44E19E0D"
}撤销通知
当订单撤销成功时,支付网关会向商户系统发起回调通知。如果商户系统没有正确返回,支付网关会延迟再次通知。
接口说明
请求URL:该链接是通过撤销订单接口提交的参数notifyUrl设置,如果无法访问链接,商户系统将无法接收到支付中心的通知。
请求方式:POST
请求类型:application/x-www-form-urlencoded
通知参数
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 撤销订单号 | cancelOrderId | 是 | String(30) | C202106181104177050002 | 支付中心生成的撤销单号 |
| 支付订单号 | payOrderId | 是 | String(30) | P12021022311124442600 | 返回支付系统订单号 |
| 商户号 | mchNo | 是 | String(30) | M1621873433953 | 商户号 |
| 应用ID | appId | 是 | String(24) | 60cc09bce4b0f1c0b83761c9 | 应用ID |
| 支付金额 | payAmount | 是 | int | 100 | 支付金额,单位分 |
| 货币代码 | currency | 是 | String(3) | HKD | 三位货币代码,港币:HKD |
| 撤销状态 | 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 | 签名值,详见签名算法 |
返回结果
业务系统处理后同步返回给支付中心,返回字符串 success 则表示成功,返回非success则表示处理失败,支付中心会再次通知业务系统。(通知频率为0/30/60/90/120/150,单位:秒)
注意:返回的字符串不区分大小写,字符串前后不能有空格和换行符。
通知示例数据
{
"cancelOrderId": "C202106181104177050002",
"payOrderId": "P202106181104177050002",
"mchNo": "M1621873433953",
"appId": "60cc09bce4b0f1c0b83761c9",
"payAmount": 5,
"currency": "HKD",
"state": 2,
"channelOrderNo": "2021061822001423031419593035",
"errCode": "",
"errMsg": "",
"extraParam": "",
"createdAt": "1623985552769",
"successTime": "1623985554000",
"reqTime": "1623985554000",
"sign": "C380BEC2BFD727A4B6845133519F3AD6"
}