最新更新时间:2020.5.08 版本说明
支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,微信支付系统会将此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。
● 7天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款API。提交支付交易后调用【查询订单API】,没有明确的支付结果再调用【撤销订单API】
调用支付接口后请勿立即调用撤销订单API,建议支付后至少15s后再调用撤销订单接口。
适用对象:直连模式机构模式
请求URL: https://api.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>
<appid>wx2421b1c4370ec43b</appid>
<mch_id>10000100</mch_id>
<nonce_str>b7ffb16a7150cf08639db472c5f5bdae</nonce_str>
<out_trade_no>1415717424</out_trade_no>
<sign>C29DB7DB1FD4136B84AE35604756362C</sign>
</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>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<nonce_str><![CDATA[o5bAKF3o2ypC8hwa]]></nonce_str>
<sign><![CDATA[D6C76CB785F07992CDE05494BB7DF7FD]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>
<recall><![CDATA[N]]></recall>
</xml>
错误码 | 描述 | 问题 | 解决方案 |
---|---|---|---|
SYSTEMERROR | 接口返回错误 | 系统超时 | 请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。 |
INVALID_TRANSACTIONID | 无效transaction_id | 请求参数未按指引进行填写 | 参数错误,请重新检查 |
PARAM_ERROR | 参数错误 | 请求参数未按指引进行填写 | 请根据接口返回的详细信息检查您的程序 |
REQUIRE_POST_METHOD | 请使用post方法 | 未使用post传递参数 | 请检查请求参数是否通过post方法提交 |
SIGNERROR | 签名错误 | 参数签名结果不正确 | 请检查签名参数和方法是否都符合签名算法要求 |
REVERSE_EXPIRE | 订单无法撤销 | 订单有7天的撤销有效期,过期将不能撤销 | 请检查需要撤销的订单是否超过可撤销有效期 |
INVALID_REQUEST | 无效请求 | 商户系统异常导致 | 请检查商户权限是否异常、重复请求支付、证书错误、频率限制等 |
TRADE_ERROR | 订单错误 | 业务错误导致交易失败 | 请检查用户账号是否异常、被风控、是否符合规则限制等 |
USERPAYING | 用户支付中 | 用户正在支付中的订单不允许撤销 | 用户正在支付中的订单不允许撤销,请稍后再试 |
Customer Service Tel
Business Development
9:00-18:00
Monday-Friday GMT+8
Technical Support
WeChat Pay Global
ICP证