关闭撤销订单
接口说明
关闭指定订单。只有未支付(wait / progress)的订单可以被关闭。
部分通道支持撤销方式(如微信、银联的当天撤销),通过 useCancel=true 触发;不支持的通道会忽略该参数并统一走关单逻辑。
关闭与撤销的区别
- 关闭(close):订单未支付时主动终止,资金未发生,幂等。
- 撤销(cancel):针对当日已扣款但未最终确认的交易,触发通道撤销(如银联当日撤销),资金会退回买家。
请求地址
POST /unipay/close
- 认证:RSA 签名(
@PaymentVerify) - 响应:
DaxResult<Void>
请求参数
基础参数同 统一支付 - 基础参数,业务参数:
| 参数 | 类型 | 必填 | 最大长度 | 描述 |
|---|---|---|---|---|
| orderNo | string | 否* | 100 | 平台业务单号 |
| bizOrderNo | string | 否* | 100 | 商户订单号 |
| useCancel | boolean | 否 | — | 是否使用撤销方式关闭(部分通道支持,默认 false) |
*
orderNo、bizOrderNo至少传一个,优先级:orderNo > bizOrderNo
请求示例
json
{
"mchNo": "M200000001",
"appId": "APP001",
"reqId": "REQ20241201002",
"reqTime": "2024-12-01 12:05:00",
"sign": "Base64签名值",
"orderNo": "P2024120112345700001",
"useCancel": false
}响应参数
DaxResult<Void>,data 为 null。
响应示例
json
{
"code": 0,
"msg": "success",
"data": null,
"sign": "Base64签名值",
"resTime": "2024-12-01T04:05:00Z",
"reqId": "REQ20241201002"
}支持撤销的通道
| 通道 | 关闭 | 撤销 |
|---|---|---|
| 支付宝 | ✓ | ✓ |
| 微信支付 | ✓ | ✗(V3 仅关单) |
| 银联商务 | ✓ | ✓ |
| 拉卡拉 | ✓ | 视签约 |
| 富友 | ✓ | ✗ |
| 杉德 | ✓ | ✗ |
useCancel 被忽略不报错
当通道不支持撤销时,useCancel=true 会被静默忽略,请求仍以关单方式处理,不会返回错误。生产对接时请按上表确认通道是否支持撤销。