分賬回退
應(yīng)用場景
● 此功能需要接收方在商戶平臺-交易中心-分賬-分賬接收設(shè)置下,開啟同意分賬回退后,才能使用。
● 僅對訂單進行退款時,如果訂單已經(jīng)分賬,可以先調(diào)用此接口將指定的金額從分賬接收方(僅限商戶類型的分賬接收方)回退給特約商戶,然后再退款。
● 回退以原分賬請求為依據(jù),可以對分給分賬接收方的金額進行多次回退,只要滿足累計回退不超過該請求中分給接收方的金額。
● 此接口采用同步處理模式,即在接收到商戶請求后,會實時返回處理結(jié)果。
● 分賬回退的時限是180天
接口說明
請求Url | https://api.mch.weixin.qq.com/secapi/pay/profitsharingreturn |
---|---|
是否需要證書 | 請求需要雙向證書。 詳見證書使用 |
請求方式 | post |
簽名方式 | HMAC-SHA256 |
請求參數(shù)
名稱 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
商戶號 |
mch_id |
是 |
string(32) |
1900000100 |
微信支付分配的服務(wù)商商戶號 |
子商戶號 |
sub_mch_id |
是 |
string(32) |
1900000109 |
微信支付分配的子商戶號,即分賬的出資商戶號。 |
公眾賬號ID |
appid |
是 |
string(32) |
wx8888888888888888 |
微信分配的服務(wù)商appid |
子商戶公眾賬號ID |
sub_appid |
否 |
string(32) |
wx8888888888888888 |
微信分配的子商戶公眾賬號ID |
隨機字符串 |
nonce_str |
是 |
string(32) |
5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
隨機字符串,不長于32位。推薦隨機數(shù)生成算法 |
簽名 |
sign |
是 |
string(64) |
C380BEC2BFD727A4B6845133519F3AD6C380BEC2BFD727A4B6845133519F3AD6 |
簽名,詳見簽名生成算法 |
簽名類型 |
sign_type |
否 |
string(32) |
HMAC-SHA256 |
簽名類型,目前只支持HMAC-SHA256 |
微信分賬單號 |
order_id |
二選一 | string(64) |
3008450740201411110007820472 |
原發(fā)起分賬請求時,微信返回的微信分賬單號,與商戶分賬單號一一對應(yīng)。 微信分賬單號與商戶分賬單號二選一填寫 |
商戶分賬單號 |
out_order_no |
string(64) |
P20180806125346 |
原發(fā)起分賬請求時使用的商戶后臺系統(tǒng)的分賬單號。 微信分賬單號與商戶分賬單號二選一填寫 |
|
商戶回退單號 |
out_return_no |
是 |
string(64) |
R20190516001 |
此回退單號是商戶在自己后臺生成的一個新的回退單號,在商戶后臺唯一 只能是數(shù)字、大小寫字母_-|*@ ,同一回退單號多次請求等同一次。 |
回退方類型 |
return_account_type |
是 |
string(32) |
MERCHANT_ID |
枚舉值: MERCHANT_ID:商戶號(mch_id或者sub_mch_id) 暫時只支持從商戶接收方回退分賬金額 |
回退方賬號 |
return_account |
是 |
string(64) |
86693852 |
回退方類型是MERCHANT_ID時,填寫商戶號(mch_id或者sub_mch_id) 只能對原分賬請求中成功分給商戶接收方進行回退 |
回退金額 |
return_amount |
是 |
int |
888 |
需要從分賬接收方回退的金額,單位為分,只能為整數(shù),不能超過原始分賬單分出給該接收方的金額 |
回退描述 |
description |
是 |
string(80) |
用戶退款 |
分賬回退的原因描述 |
舉例如下:
<xml>
<appid>wx2421b1c4370ec43b</appid>
<mch_id>10000100</mch_id>
<sub_appid>wx2203b1494370e08cm</sub_appid>
<sub_mch_id>1415701182</sub_mch_id>
<nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str>
<sign_type>HMAC-SHA256</sign_type>
<sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
<out_order_no>P20150806125346</out_order_no>
<out_return_no>R20190516001</out_return_no>
<return_account_type>MERCHANT_ID </return_account_type>
<return_account>86693852</return_account>
<return_amount>800</return_amount>
<description>用戶退款</description>
</xml>
返回結(jié)果
名稱 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
返回狀態(tài)碼 |
return_code |
是 |
string(32) |
SUCCESS |
枚舉值: SUCCESS:分賬回退處理成功 FAIL:分賬回退處理失敗 |
錯誤代碼 |
error_code |
否 |
string(32) |
SYSTEMERROR |
如果返回狀態(tài)碼為FAIL,則本字段存在,且為失敗的錯誤碼 詳見錯誤碼列表 |
返回信息 |
error_msg |
否 |
string(256) |
參數(shù)格式校驗錯誤 |
如果返回狀態(tài)碼為FAIL,則本字段存在,且為失敗的錯誤信息 |
以下字段在return_code為SUCCESS的時候有返回
名稱 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
商戶號 |
mch_id |
是 |
string(32) |
1900000100 |
調(diào)用接口時提供的商戶號 |
子商戶號 |
sub_mch_id |
是 |
string(32) |
1900000109 |
微信支付分配的子商戶號,即分賬的出資商戶號。 |
公眾賬號ID |
appid |
是 |
string(32) |
wx8888888888888888 |
調(diào)用接口提供的公眾賬號ID |
隨機字符串 |
nonce_str |
是 |
string(32) |
5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
微信返回的隨機字符串 |
簽名 |
sign |
是 |
string(64) |
C380BEC2BFD727A4B6845133519F3AD6 |
微信返回的簽名,詳見簽名算法 |
微信分賬單號 |
order_id |
是 |
string(64) |
3008450740201411110007820472 |
原發(fā)起分賬請求時,微信返回的微信分賬單號 |
商戶分賬單號 |
out_order_no |
是 |
string(64) |
P20150806125346 |
原發(fā)起分賬請求時使用的商戶系統(tǒng)內(nèi)部的分賬單號。 |
商戶回退單號 |
out_return_no |
是 |
string(64) |
R20150806125346 |
調(diào)用接口提供的商戶系統(tǒng)內(nèi)部的回退單號 |
微信回退單號 |
return_no |
是 |
string(64) |
3008450740201411110007820472 |
微信分賬回退單號,微信支付系統(tǒng)返回的唯一標識 |
回退方類型 |
return_account_type |
是 |
string(32) |
MERCHANT_ID |
枚舉值: MERCHANT_ID:商戶號(mch_id或者sub_mch_id) |
回退方賬號 |
return_account |
是 |
string(64) |
86693852 |
回退方類型是MERCHANT_ID時,商戶號(mch_id或者sub_mch_id) |
回退金額 |
return_amount |
是 |
int |
888 |
回退金額,整數(shù),單位為分 |
回退描述 |
description |
是 |
string(80) |
用戶退款 |
分賬回退的原因描述 |
回退結(jié)果 |
result |
是 |
string(32) |
SUCCESS |
枚舉值: PROCESSING:處理中 SUCCESS:已成功 FAILED: 已失敗 如果返回為處理中,請勿變更商戶回退單號,使用相同的參數(shù)再次發(fā)起分賬回退,否則會出現(xiàn)資金風(fēng)險 在處理中狀態(tài)的回退單如果5天沒有成功,會因為超時被設(shè)置為已失敗。 |
失敗原因 |
fail_reason |
否 |
string(32) |
ACCOUNT_ABNORMAL |
枚舉值: ACCOUNT_ABNORMAL:原分賬接收方賬戶異常 TIME_OUT_CLOSED: 超時關(guān)單 此字段僅回退結(jié)果為FAILED時存在 PAYER_ACCOUNT_ABNORMAL:原分賬分出方賬戶異常 |
完成時間 |
finish_time |
是 |
string(16) |
20180608170132 |
分賬回退完成時間 |
舉例:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<mch_id>10000100</mch_id>
<sub_mch_id>1415701182</sub_mch_id>
<appid>wx2421b1c4370ec43b</appid>
<nonce_str>6cefdb308e1e2e8aabd48cf79e546a02</nonce_str>
<sign>FE56DD4AA85C0EECA82C35595A69E153</sign>
<order_id>3008450740201411110007820472</order_id>
<out_order_no>P20150806125346</out_order_no>
<out_return_no>R20190516001</out_return_no>
<return_no>3008450740201411110007820472</return_no>
<return_account_type>MERCHANT_ID </return_account_type>
<return_account>86693852</return_account>
<return_amount>800</return_amount>
<description>用戶退款</description>
<result>SUCCESS</result>
<finish_time>20180608170132</finish_time>
</xml>
錯誤碼列表
名稱 |
描述 |
原因 |
解決方案 |
---|---|---|---|
SYSTEMERROR |
接口返回錯誤 |
系統(tǒng)超時 |
請不要更換商戶分賬單號,請使用相同參數(shù)再次調(diào)用API。否則可能造成資金損失 |
NOTENOUGH |
回退方賬戶余額不足 |
回退方賬戶余額不足,請先充值再回退 |
請不要更換商戶分賬單號,等待充值完畢后,請使用相同參數(shù)再次調(diào)用API。否則可能造成資金損失 |
NOAUTH |
回退方不允許回退 |
回退方不允許分賬回退 |
請先讓回退方打開分賬允許設(shè)置 |
ORDERNOTEXIST |
分賬指令不存在 |
分賬指令不存在 |
分賬指令不存在,請檢查是否有相應(yīng)的分賬單 |
PARAM_ERROR |
參數(shù)不正確,請檢查參數(shù) |
請求參數(shù)未按指引進行填寫 |
return_account與mch_id不能填寫為相同的商戶號,不能自己給自己回退 |
INVALID_REQUEST |
請求不合法 |
參數(shù)中APPID或 MCHID不存在等 |
請檢查請求參數(shù) |
FREQUENCY_LIMITED |
頻率限制 |
請求過多被頻率限制 |
該筆請求未處理,請降低頻率后原單重試,請勿更換商戶回退單號 |
AMOUNT_OVERDUE |
可退余額不足 |
回退金額大于剩余可從接收方回退的金額 |
請檢查請求參數(shù) |