撤销订单

更新时间:2025.02.19

支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,微信支付系统会将此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。

注意:

● 7天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】

调用支付接口后请勿立即调用撤销订单API,建议支付后至少15s后再调用撤销订单接口。

接口说明

适用对象: 直连模式 机构模式

请求URL: https://apihk.mch.weixin.qq.com/secapi/pay/reverse

请求方式: POST

是否需要证书: 请求需要双向证书。 详见证书使用

请求参数

参数名

变量

类型

必填

描述

公众账号ID

appid

string(32)

微信分配的公众账号ID(企业号corpid即为此appId)
示例值:wx8888888888888888

商户号

mch_id

string(32)

微信支付分配的商户号
示例值:1900000109

子商户公众账号ID

sub_appid

string(32)

微信分配的子商户公众账号ID
注意:仅适用于机构模式
示例值:wx8888888888888888

子商户号

sub_mch_id

string(32)

微信支付分配的子商户号
注意:仅适用于机构模式
示例值:1900000109

微信订单号

transaction_id

string(32)

微信的订单号,优先使用
示例值:1217752501201407033233368018

商户订单号

out_trade_no

string(32)

商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no
示例值:1217752501201407033233368018

随机字符串

nonce_str

string(32)

随机字符串,不长于32位。推荐随机数生成算法
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS

签名

sign

string(64)

签名,详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6

签名类型

sign_type

string(32)

签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
示例值:HMAC-SHA256

请求示例:

XML
1<xml>
2   <appid>wx2421b1c4370ec43b</appid>  
3   <mch_id>10000100</mch_id>
4   <nonce_str>b7ffb16a7150cf08639db472c5f5bdae</nonce_str>
5   <out_trade_no>1415717424</out_trade_no>
6   <sign>C29DB7DB1FD4136B84AE35604756362C</sign>
7</xml>

返回参数

正常返回

字段名

变量

类型

必填

描述

返回状态码

return_code

string(16)

SUCCESS/FAIL,此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
示例值:SUCCESS

返回信息

return_msg

string(128)

返回信息,如非空,为错误原因;签名失败;具体某个参数格式校验错误.
示例值:签名失败

当return_code为SUCCESS的时候,还会包括以下字段:

字段名

变量

类型

必填

描述

公众账号ID

appid

string(32)

返回提交的公众账号ID
示例值:wx8888888888888888

商户号

mch_id

string(32)

返回提交的商户号
示例值:1900000109

子商户公众账号ID

sub_appid

string(32)

微信分配的子商户公众账号ID
注意:仅适用于机构模式
示例值:wx8888888888888888

子商户号

sub_mch_id

string(32)

微信支付分配的子商户号
注意:仅适用于机构模式
示例值:1900000109

随机字符串

nonce_str

string(32)

微信返回的随机字符串
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS

签名

sign

string(64)

返回数据的签名,详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6

业务结果

result_code

string(16)

SUCCESS/FAIL
示例值:SUCCESS

错误代码

err_code

string(32)

详细参见错误列表
示例值:SYSTEMERROR

错误描述

err_code_des

string(128)

结果信息描述
示例值:系统错误

是否重调

recall

string(1)

是否需要继续调用撤销,Y-需要,N-不需要
示例值:Y

汇率

rate

string(16)

标价币种与支付币种的兑换比例乘以10的8次方即为此值,例如美元兑换人民币的比例为6.5,则rate=650000000
示例值:650000000

举例如下:

XML
1<xml>
2   <return_code><![CDATA[SUCCESS]]></return_code>  
3   <return_msg><![CDATA[OK]]></return_msg>
4   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
5   <mch_id><![CDATA[10000100]]></mch_id>
6   <nonce_str><![CDATA[o5bAKF3o2ypC8hwa]]></nonce_str>
7   <sign><![CDATA[D6C76CB785F07992CDE05494BB7DF7FD]]></sign>
8   <result_code><![CDATA[SUCCESS]]></result_code>
9   <recall><![CDATA[N]]></recall>
10</xml>

错误码

错误码

描述

问题

解决方案

SYSTEMERROR

接口返回错误

系统超时

请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。

INVALID_TRANSACTIONID

无效transaction_id

请求参数未按指引进行填写

参数错误,请重新检查

PARAM_ERROR

参数错误

请求参数未按指引进行填写

请根据接口返回的详细信息检查您的程序

REQUIRE_POST_METHOD

请使用post方法

未使用post传递参数

请检查请求参数是否通过post方法提交

SIGNERROR

签名错误

参数签名结果不正确

请检查签名参数和方法是否都符合签名算法要求

REVERSE_EXPIRE

订单无法撤销

订单有7天的撤销有效期,过期将不能撤销

请检查需要撤销的订单是否超过可撤销有效期

INVALID_REQUEST

无效请求

商户系统异常导致

请检查商户权限是否异常、重复请求支付、证书错误、频率限制等

TRADE_ERROR

订单错误

业务错误导致交易失败

请检查用户账号是否异常、被风控、是否符合规则限制等

USERPAYING

用户支付中

用户正在支付中的订单不允许撤销

用户正在支付中的订单不允许撤销,请稍后再试

 

 

About  WeChat  Pay

Powered By Tencent & Tenpay Copyright©

2005-2025 Tenpay All Rights Reserved.

Contact Us
Wechat Pay Global

WeChat Pay Global

Contact Us

Customer Service Tel

+86 571 95017

9:00-18:00 Monday-Friday GMT+8

Business Development

wxpayglobal@tencent.com

Developer Support

wepayTS@tencent.com

Wechat Pay Global

About Tenpay
Powered By Tencent & Tenpay Copyright© 2005-2025 Tenpay All Rights Reserved.