通用场景
支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,支付宝系统会将此订单关闭;如果用户支付成功,支付宝系统会将此订单资金退还给用户。
注意:只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款api。提交支付交易后调用【查询订单api】,没有明确的支付结果再调用【撤销订单api】。
注意:只有发生支付系统超时或者支付结果未知时可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款api。提交支付交易后调用【查询订单api】,没有明确的支付结果再调用【撤销订单api】。
公共请求参数
业务请求参数
以下参数 二选一 传入必选
out_trade_nostring[1,64]
【描述】原支付请求的商户订单号,和支付宝交易号不能同时为空
【示例值】20150320010101001
trade_nostring[1,64]
【描述】支付宝交易号,和商户订单号不能同时为空
【示例值】2014112611001004680073956707
常见请求示例
默认示例
curl 'https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.trade.cancel&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=rsa2×tamp=${now}' \
-f 'app_auth_token=${app_auth_token}' \
-f 'biz_content={
"out_trade_no":"20150320010101001",
"trade_no":"2014112611001004680073956707"
}'
说明:本示例仅供参考。
公共响应参数
业务响应参数
out_trade_no必选string(64)
【描述】商户订单号
【示例值】6823789339978248
retry_flag必选string(1)
【描述】是否需要重试
【示例值】n
trade_no可选string(64)
【描述】支付宝交易号;
当发生交易关闭或交易退款时返回;
【示例值】2013112011001004330000121536
action可选string(10)
【描述】本次撤销触发的交易动作,接口调用成功且交易存在时返回。可能的返回值:
close:交易未支付,触发关闭交易动作,无退款;
refund:交易已支付,触发交易退款动作;
未返回:未查询到交易,或接口调用失败;
【示例值】close
响应示例
正常示例
异常示例
{
"alipay_trade_cancel_response": {
"code": "10000",
"msg": "success",
"trade_no": "2013112011001004330000121536",
"out_trade_no": "6823789339978248",
"retry_flag": "n",
"action": "close"
},
"sign": "eritjkeijkjhkkkkkkkhjereeeeeeeeeee"
}
说明:本示例仅供参考。
公共错误码
业务错误码
错误码 | 错误描述 | 凯发app官方网站的解决方案 |
---|---|---|
acq.cancel_not_allowed | 交易不允许撤销 | 该笔交易不支持撤销 |
acq.invalid_parameter | 参数无效 | 请求参数有错,重新检查请求后,再调用撤销 |
acq.reason_trade_been_freezen | 当前交易被冻结,不允许进行撤销 | 联系支付宝小二,确认该笔交易的具体情况 |
acq.reason_trade_refund_fee_err | 退款金额无效 | 请确认交易是否已经发起过退款,已经退款场景下不能再发起撤销 |
acq.seller_balance_not_enough | 商户的支付宝账户中无足够的资金进行撤销 | 商户支付宝账户充值后重新发起撤销即可 |
acq.system_error | 系统异常 | 请过一段时间后进行重试 |
acq.trade_cancel_time_out | 超过撤销时间范围 | 交易超过了撤销的时间范围,可使用退款接口发起交易退款 |
acq.trade_has_finished | 交易已经完结 | 交易已完结状态下不允许退款 |
aqc.system_error | 系统错误 | 请使用相同的参数再次调用 |