接口地址
接口鏈接:https://api.mch.weixin.qq.com/pay/refundquery
是否需要證書
不需要。
請求參數
字段名 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
公眾賬號ID |
appid |
是 |
String(32) |
wx8888888888888888 |
微信分配的公眾賬號ID |
商戶號 |
mch_id |
是 |
String(32) |
1900000109 |
微信支付分配的商戶號 |
設備號 |
device_info |
否 |
String(32) |
013467007045764 |
商戶自定義的終端設備號,如門店編號、設備的ID等 |
隨機字符串 |
nonce_str |
是 |
String(32) |
5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
隨機字符串,不長於32位。推薦隨機數生成算法 |
簽名 |
sign |
是 |
String(32) |
C380BEC2BFD727A4B6845133519F3AD6 |
簽名,詳見簽名生成算法 |
微信訂單號 |
transaction_id |
否 |
String(28) |
1217752501201407033233368018 |
微信訂單號 |
商戶訂單號 |
out_trade_no |
是 |
String(32) |
1217752501201407033233368018 |
商戶系統內部的訂單號 |
商戶退款單號 |
out_refund_no |
否 |
String(32) |
1217752501201407033233368018 |
商戶退款單號 |
微信退款單號 |
refund_id |
否 |
String(28) |
1217752501201407033233368018 |
微信退款單號 refund_id、out_refund_no、out_trade_no、transaction_id四個參數必填一個,如果同時存在優先級為: refund_id>out_refund_no>transaction_id>out_trade_no |
返回數據
字段名 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
返回狀態碼 |
return_code |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL |
返回信息 |
return_msg |
否 |
String(128) |
簽名失敗
|
返回信息,如非空,為錯誤原因 簽名失敗 參數格式校驗錯誤 |
以下字段在return_code為SUCCESS的時候有返回
字段名 |
變量名 |
必填 |
類型 |
示例值 |
描述 |
---|---|---|---|---|---|
業務結果 |
result_code |
是 |
String(16) |
SUCCESS |
SUCCESS/FAIL SUCCESS退款申請接收成功,結果通過退款查詢接口查詢 FAIL |
錯誤碼 |
err_code |
是 |
String(32) |
SYSTEMERROR |
錯誤碼詳見第6節 |
錯誤描述 |
err_code_des |
是 |
String(32) |
系統錯誤 |
結果信息描述 |
公眾賬號ID |
appid |
否 |
String(32) |
wx8888888888888888 |
微信分配的公眾賬號ID |
商戶號 |
mch_id |
是 |
String(32) |
1900000109 |
微信支付分配的商戶號 |
設備號 |
device_info |
是 |
String(32) |
013467007045764 |
微信支付分配的終端設備號,與下單一致 |
隨機字符串 |
nonce_str |
是 |
String(28) |
5K8264ILTKCH16CQ2502SI8ZNMTM67VS |
隨機字符串,不長於32位 |
簽名 |
sign |
是 |
String(32) |
C380BEC2BFD727A4B6845133519F3AD6 |
簽名,詳見簽名算法 |
微信訂單號 |
transaction_id |
是 |
String(32) |
1217752501201407033233368018 |
微信訂單號 |
商戶訂單號 |
out_trade_no |
是 |
String(32) |
1217752501201407033233368018 |
商戶系統內部的訂單號 |
訂單總金額 |
total_fee |
是 |
Int |
100 |
訂單總金額,單位為分,只能為整數,詳見支付金額 |
訂單金額貨幣種類 |
fee_type |
否 |
String(8) |
CNY |
訂單金額貨幣類型,符合ISO 4217標准的三位字母代碼,默認人民幣:CNY,其他值列表詳見貨幣類型 |
現金支付金額 |
cash_fee |
是 |
Int |
100 |
現金支付金額,單位為分,只能為整數,詳見支付金額 |
貨幣種類 |
cash_fee_type |
否 |
String(8) |
CNY |
貨幣類型,符合ISO 4217標准的三位字母代碼,默認人民幣:CNY,其他值列表詳見貨幣類型 |
退款金額 |
refund_fee |
是 |
Int |
100 |
退款總金額,單位為分,可以做部分退款 |
代金券或立減優惠退款金額 |
coupon_refund_fee |
否 |
Int |
100 |
代金券或立減優惠退款金額=訂單金額-現金退款金額,注意:滿立減金額不會退回 |
退款筆數 |
refund_count |
是 |
Int |
1 |
退款記錄數 |
商戶退款單號 |
out_refund_no_$n |
是 |
String(32) |
1217752501201407033233368018 |
商戶退款單號 |
微信退款單號 |
refund_id_$n |
是 |
String(28) |
1217752501201407033233368018 |
微信退款單號 |
退款渠道 |
refund_channel_$n |
否 |
String(16) |
ORIGINAL |
ORIGINAL—原路退款 BALANCE—退回到余額 |
退款金額 |
refund_fee_$n |
是 |
Int |
100 |
退款總金額,單位為分,可以做部分退款 |
貨幣種類 |
fee_type_$n |
否 |
String(8) |
CNY |
貨幣類型,符合ISO 4217標准的三位字母代碼,默認人民幣:CNY,其他值列表詳見貨幣類型 |
代金券或立減優惠退款金額 |
coupon_refund_fee_$n |
否 |
Int |
100 |
代金券或立減優惠退款金額<=退款金額,退款金額-代金券或立減優惠退款金額為現金,說明詳見代金券或立減優惠 |
代金券或立減優惠使用數量 |
coupon_refund_count_$n |
否 |
Int |
1 |
代金券或立減優惠使用數量 ,$n為下標,從1開始編號 |
代金券或立減優惠批次ID |
coupon_refund_batch_id_$n_$m |
否 |
String(20) |
100 |
批次ID ,$n為下標,$m為下標,從1開始編號 |
代金券或立減優惠ID |
coupon_refund_id_$n_$m |
否 |
String(20) |
10000 |
代金券或立減優惠ID, $n為下標,$m為下標,從1開始編號 |
單個代金券或立減優惠支付金額 |
coupon_refund_fee_$n_$m |
否 |
Int |
100 |
單個代金券或立減優惠支付金額, $n為下標,$m為下標,從1開始編號 |
退款狀態 |
refund_status_$n |
是 |
String(16) |
SUCCESS |
退款狀態: SUCCESS—退款成功 FAIL—退款失敗 PROCESSING—退款處理中 NOTSURE—未確定,需要商戶原退款單號重新發起 CHANGE—轉入代發,退款到銀行發現用戶的卡作廢或者凍結了,導致原路退款銀行卡失敗,資金回流到商戶的現金帳號,需要商戶人工干預,通過線下或者財付通轉賬的方式進行退款。 |
后台代碼:
/// <summary> /// 查詢退款 /// </summary> /// <param name="trade"></param> /// <returns></returns> public JsonResult RefundQuery(TRADE_Model trade) { string nonceStr = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetNoncestr(); Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null); packageReqHandler.SetKey(Key); packageReqHandler.SetParameter("appid", AppId); packageReqHandler.SetParameter("mch_id", MchId); packageReqHandler.SetParameter("nonce_str", nonceStr); //packageReqHandler.SetParameter("transaction_id", "");//微信訂單號 packageReqHandler.SetParameter("out_trade_no", trade.TRADE_NO);//商戶系統內部的訂單號 //packageReqHandler.SetParameter("out_refund_no", "");//商戶退款單號 //packageReqHandler.SetParameter("refund_id", "");//微信退款單號 //注意:refund_id、out_refund_no、out_trade_no、transaction_id四個參數必填一個,如果同時存在優先級為:refund_id>out_refund_no>transaction_id>out_trade_no string querysign = packageReqHandler.CreateMd5Sign("key", Key); packageReqHandler.SetParameter("sign", querysign); //簽名 string data = packageReqHandler.ParseXML(); var result = Senparc.Weixin.MP.AdvancedAPIs.TenPayV3.RefundQuery(data); var res = System.Xml.Linq.XDocument.Parse(result); string return_code = res.Element("xml").Element("return_code").Value; Hashtable hashtable = new Hashtable(); return Json(hashtable); }