撤銷(xiāo)訂單
應(yīng)用場(chǎng)景
支付交易返回失敗或支付系統(tǒng)超時(shí),調(diào)用該接口撤銷(xiāo)交易。如果此訂單用戶(hù)支付失敗,微信支付系統(tǒng)會(huì)將此訂單關(guān)閉;如果用戶(hù)支付成功,微信支付系統(tǒng)會(huì)將此訂單資金退還給用戶(hù)。
注意:7天以?xún)?nèi)的交易單可調(diào)用撤銷(xiāo),其他正常支付的單如需實(shí)現(xiàn)相同功能請(qǐng)調(diào)用申請(qǐng)退款A(yù)PI。提交支付交易后調(diào)用【查詢(xún)訂單API】,沒(méi)有明確的支付結(jié)果再調(diào)用【撤銷(xiāo)訂單API】。
調(diào)用支付接口后請(qǐng)勿立即調(diào)用撤銷(xiāo)訂單API,建議支付后至少15s后再調(diào)用撤銷(xiāo)訂單接口。接口鏈接
https://api.mch.weixin.qq.com/secapi/pay/reverse
是否需要證書(shū)
請(qǐng)求需要雙向證書(shū)。 詳見(jiàn)證書(shū)使用
請(qǐng)求參數(shù)
字段名 | 變量名 | 類(lèi)型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|---|
公眾賬號(hào)ID | appid | String(32) | 是 | wx8888888888888888 | 微信分配的公眾賬號(hào)ID |
商戶(hù)號(hào) | mch_id | String(32) | 是 | 1900000109 | 微信支付分配的商戶(hù)號(hào) |
子商戶(hù)公眾賬號(hào)ID | sub_appid | String(32) | 否 | wx8888888888888888 | 微信分配的子商戶(hù)公眾賬號(hào)ID |
子商戶(hù)號(hào) | sub_mch_id | String(32) | 是 | 1900000109 | 微信支付分配的子商戶(hù)號(hào) |
微信訂單號(hào) | transaction_id | String(32) | 否 | 1217752501201407033233368018 | 微信的訂單號(hào),優(yōu)先使用 |
商戶(hù)訂單號(hào) | out_trade_no | String(32) | 是 | 1217752501201407033233368018 | 商戶(hù)系統(tǒng)內(nèi)部的訂單號(hào),transaction_id、out_trade_no二選一,如果同時(shí)存在優(yōu)先級(jí):transaction_id> out_trade_no |
隨機(jī)字符串 | nonce_str | String(32) | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 隨機(jī)字符串,不長(zhǎng)于32位。推薦隨機(jī)數(shù)生成算法 |
簽名 | sign | String(64) | 是 | C380BEC2BFD727A4B6845133519F3AD6 | 簽名,詳見(jiàn)簽名生成算法 |
簽名類(lèi)型 | sign_type | 否 | String(32) | HMAC-SHA256 | 簽名類(lèi)型,目前支持HMAC-SHA256和MD5,默認(rèn)為MD5 |
提交參數(shù)舉例如下:
<xml>
? ?<appid>wx2421b1c4370ec43b</appid>
? ?<mch_id>10000100</mch_id>
? ?<nonce_str>b7ffb16a7150cf08639db472c5f5bdae</nonce_str>
? ?<out_trade_no>1415717424</out_trade_no>
? ?<sign>9B2EA16C05A5CEF8E53B14D53932D012</sign>
</xml>
返回結(jié)果
字段名 | 變量名 | 類(lèi)型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|---|
返回狀態(tài)碼 | return_code | String(16) | 是 | SUCCESS | SUCCESS/FAIL,此字段是通信標(biāo)識(shí),非交易標(biāo)識(shí),交易是否成功需要查看result_code來(lái)判斷 |
返回信息 | return_msg | String(128) | 否 | 簽名失敗 | 返回信息,如非空,為錯(cuò)誤原因;簽名失敗;具體某個(gè)參數(shù)格式校驗(yàn)錯(cuò)誤. |
當(dāng)return_code為SUCCESS的時(shí)候,還會(huì)包括以下字段:
字段名 | 變量名 | 類(lèi)型 | 必填 | 示例值 | 描述 |
---|---|---|---|---|---|
公眾賬號(hào)ID | appid | String(32) | 是 | wx8888888888888888 | 返回提交的公眾賬號(hào)ID |
商戶(hù)號(hào) | mch_id | String(32) | 是 | 1900000109 | 返回提交的商戶(hù)號(hào) |
子商戶(hù)公眾賬號(hào)ID | sub_appid | String(32) | 否 | wx8888888888888888 | 微信分配的子商戶(hù)公眾賬號(hào)ID |
子商戶(hù)號(hào) | sub_mch_id | String(32) | 是 | 1900000109 | 微信支付分配的子商戶(hù)號(hào) |
隨機(jī)字符串 | nonce_str | String(32) | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 微信返回的隨機(jī)字符串 |
簽名 | sign | String(64) | 是 | C380BEC2BFD727A4B6845133519F3AD6 | 返回?cái)?shù)據(jù)的簽名,詳見(jiàn)簽名算法 |
業(yè)務(wù)結(jié)果 | result_code | String(16) | 是 | SUCCESS | SUCCESS/FAIL |
錯(cuò)誤代碼 | err_code | String(32) | 否 | SYSTEMERROR | 詳細(xì)參見(jiàn)錯(cuò)誤列表 |
錯(cuò)誤描述 | err_code_des | String(128) | 否 | 系統(tǒng)錯(cuò)誤 | 結(jié)果信息描述 |
是否重調(diào) | recall | String(1) | 是 | Y | 是否需要繼續(xù)調(diào)用撤銷(xiāo),Y-需要,N-不需要 |
匯率 | rate | String(16) | 是 | 1.2567 | 用戶(hù)支付幣種與商戶(hù)結(jié)算幣種的兌換比例關(guān)系 |
返回參數(shù)舉例如下:
? ?<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[6F5080EDDD196FFCDE53F786BBB93899]]></sign>
? ?<result_code><![CDATA[SUCCESS]]></result_code>
? ?<recall><![CDATA[N]]></recall>
</xml>
錯(cuò)誤碼
名稱(chēng) | 描述 | 原因 | 解決方案 |
---|---|---|---|
SYSTEMERROR | 接口返回錯(cuò)誤 | 系統(tǒng)超時(shí) | 請(qǐng)立即調(diào)用被掃訂單結(jié)果查詢(xún)API,查詢(xún)當(dāng)前訂單狀態(tài),并根據(jù)訂單的狀態(tài)決定下一步的操作。 |
INVALID_TRANSACTIONID | 無(wú)效transaction_id | 請(qǐng)求參數(shù)未按指引進(jìn)行填寫(xiě) | 參數(shù)錯(cuò)誤,請(qǐng)重新檢查 |
PARAM_ERROR | 參數(shù)錯(cuò)誤 | 請(qǐng)求參數(shù)未按指引進(jìn)行填寫(xiě) | 請(qǐng)根據(jù)接口返回的詳細(xì)信息檢查您的程序 |
REQUIRE_POST_METHOD | 請(qǐng)使用post方法 | 未使用post傳遞參數(shù) | 請(qǐng)檢查請(qǐng)求參數(shù)是否通過(guò)post方法提交 |
SIGNERROR | 簽名錯(cuò)誤 | 參數(shù)簽名結(jié)果不正確 | 請(qǐng)檢查簽名參數(shù)和方法是否都符合簽名算法要求 |
REVERSE_EXPIRE | 訂單無(wú)法撤銷(xiāo) | 訂單有7天的撤銷(xiāo)有效期,過(guò)期將不能撤銷(xiāo) | 請(qǐng)檢查需要撤銷(xiāo)的訂單是否超過(guò)可撤銷(xiāo)有效期 |
INVALID_REQUEST | 無(wú)效請(qǐng)求 | 商戶(hù)系統(tǒng)異常導(dǎo)致 | 請(qǐng)檢查商戶(hù)權(quán)限是否異常、重復(fù)請(qǐng)求支付、證書(shū)錯(cuò)誤、頻率限制等 |
TRADE_ERROR | 訂單錯(cuò)誤 | 業(yè)務(wù)錯(cuò)誤導(dǎo)致交易失敗 | 請(qǐng)檢查用戶(hù)賬號(hào)是否異常、被風(fēng)控、是否符合規(guī)則限制等 |
USERPAYING | 用戶(hù)支付中 | 用戶(hù)正在支付中的訂單不允許撤銷(xiāo) | 用戶(hù)正在支付中的訂單不允許撤銷(xiāo),請(qǐng)稍后再試 |