微信支付-JSAPI支付V3-查詢退款


接口地址

接口鏈接: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);
        }

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM