- 支付
- 私域
- 公域
- 营销
- 资金
- 会员
- 信用
- 安全
- 其他
统一收单交易撤销接口
开发环境
http://dev-cn.your-api-server.com
开发环境
http://dev-cn.your-api-server.com
POST
/v3/alipay/trade/cancel
注意:只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】。
公共错误码#
业务错误码#
状态码 | 错误码 | 错误描述 | 解决方案 |
---|---|---|---|
400 | ACQ.CANCEL_NOT_ALLOWED | 交易不允许撤销 | 该笔交易不支持撤销 |
400 | ACQ.INVALID_PARAMETER | 参数无效 | 请求参数有错,重新检查请求后,再调用撤销 |
400 | ACQ.REASON_TRADE_BEEN_FREEZEN | 当前交易被冻结,不允许进行撤销 | 联系 支付宝小二,确认该笔交易的具体情况 |
400 | ACQ.REASON_TRADE_REFUND_FEE_ERR | 退款金额无效 | 请确认交易是否已经发起过退款,已经退款场景下不能再发起撤销 |
400 | ACQ.SELLER_BALANCE_NOT_ENOUGH | 商户的支付宝账户中无足够的资金进行撤销 | 商户支付宝账户充值后重新发起撤销即可 |
400 | ACQ.SYSTEM_ERROR | 系统异常 | 请过一段时间后进行重试 |
400 | ACQ.TRADE_CANCEL_TIME_OUT | 超过撤销时间范围 | 交易超过了撤销的时间范围,可使用退款接口发起交易退款 |
400 | ACQ.TRADE_HAS_FINISHED | 交易已经完结 | 交易已完结状态下不允许退款 |
400 | AQC.SYSTEM_ERROR | 系统错误 | 请使用相同的参数再次调用 |
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location --request POST 'http://dev-cn.your-api-server.com/v3/alipay/trade/cancel' \
--header 'authorization: ALIPAY-SHA256withRSA app_id=$appid,timestamp=$now,nonce=$uuid,expired_seconds=600,sign=$sign' \
--header 'alipay-request-id: $requestid' \
--header 'Content-Type: application/json' \
--data-raw '{
"out_trade_no":"20150320010101001",
"trade_no":"2014112611001004680073956707"
}'
响应示例响应示例
200 - 成功示例
{
"trade_no":"2013112011001004330000121536",
"out_trade_no":"6823789339978248",
"retry_flag":"N",
"action":"close"
}
请求参数
Header 参数
authorization
string
必需
示例值:
ALIPAY-SHA256withRSA app_id=$appid,timestamp=$now,nonce=$uuid,expired_seconds=600,sign=$sign
alipay-request-id
string
必需
示例值:
$requestid
Content-Type
string
必需
示例值:
application/json
Body 参数application/json
out_trade_no
string
必需
trade_no
string
必需
示例
返回响应
🟢200成功
application/json
Body
trade_no
string
必需
out_trade_no
string
必需
retry_flag
string
必需
action
string
必需
🟠400请求有误