撤销订单
支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,微信支付系统会将此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。 官方文档
js
wxpay.v2.secapi.pay.reverse.post({
appid,
mch_id,
transaction_id,
out_trade_no,
}, { security })
.then(
({
data: {
return_code,
appid,
mch_id,
nonce_str,
sign,
result_code,
err_code,
err_code_des,
recall,
},
}) => return_code === 'SUCCESS' && result_code === 'SUCCESS' && recall === 'N'
)
注意:
- wxpay 构造实例化时,需要显式初始化 secret、 merchant.key 以及 merchant.cert 字段,此HTTPS请求为私有TLS加密协议,需要双向证书;
- 7天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】;
- 调用支付接口后请勿立即调用撤销订单API,建议支付后至少15s后再调用撤销订单接口;
- 请求参数 transaction_id、out_trade_no二选一,如果同时存在优先级: transaction_id > out_trade_no;
- 请求第二型参 security 需要显式传 true,即告诉SDK此请求需要使用商户私钥及证书进行通信;
- 返回值 recall 是否需要继续调用撤销,Y-需要,N-不需要;