微信支付-JSAPI支付V3-查詢訂單

接口連接

https://api.mch.weixin.qq.com/pay/orderqueryphp

 

請求參數:算法

字段名api

變量名微信

必填app

類型微信支付

示例值spa

描述code

公衆帳號IDxml

appidblog

String(32)

wx8888888888888888

微信分配的公衆帳號ID

商戶號

mch_id

String(32)

1900000109

微信支付分配的商戶號

微信訂單號

transaction_id

String(32)

013467007045764

微信的訂單號,優先使用

商戶訂單號

out_trade_no

String(32)

1217752501201407033233368018

商戶系統內部的訂單號,當沒提供transaction_id時須要傳這個。

隨機字符串

nonce_str

String(32)

C380BEC2BFD727A4B6845133519F3AD6

隨機字符串,不長於32位。推薦隨機數生成算法

簽名

sign

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

簽名,詳見簽名生成算法

返回結果

字段名

變量名

必填

類型

示例值

描述

返回狀態碼

return_code

String(16)

SUCCESS

SUCCESS/FAIL

此字段是通訊標識,非交易標識,交易是否成功須要查看trade_state來判斷

返回信息

return_msg

String(128)

簽名失敗

 

返回信息,如非空,爲錯誤緣由

簽名失敗

參數格式校驗錯誤

如下字段在return_code爲SUCCESS的時候有返回

 

字段名

變量名

必填

類型

示例值

描述

公衆帳號ID

appid

String(32)

wx8888888888888888

微信分配的公衆帳號ID

商戶號

mch_id

String(32)

1900000109

微信支付分配的商戶號

隨機字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

隨機字符串,不長於32位。推薦隨機數生成算法

簽名

sign

String(32)

C380BEC2BFD727A4B6845133519F3AD6

簽名,詳見簽名生成算法

業務結果

result_code

String(16)

SUCCESS

SUCCESS/FAIL

錯誤代碼

err_code

String(32)

SYSTEMERROR

詳細參見第6節錯誤列表

錯誤代碼描述

err_code_des

String(128)

系統錯誤

結果信息描述

如下字段在return_code 和result_code都爲SUCCESS的時候有返回

字段名

變量名

必填

類型

示例值

描述

設備號

device_info

String(32)

013467007045764

微信支付分配的終端設備號,

用戶標識

openid

String(128)

wxd930ea5d5a258f4f

用戶在商戶appid下的惟一標識

是否關注公衆帳號

is_subscribe

String(1)

Y

用戶是否關注公衆帳號,Y-關注,N-未關注,僅在公衆帳號類型支付有效

交易類型

trade_type

String(16)

JSAPI

調用接口提交的交易類型,取值以下:JSAPI,NATIVE,APP,MICROPAY,詳細說明見參數規定

交易狀態

trade_state

String(32)

SUCCESS

SUCCESS—支付成功

REFUND—轉入退款

NOTPAY—未支付

CLOSED—已關閉

REVOKED—已撤銷

USERPAYING--用戶支付中

PAYERROR--支付失敗(其餘緣由,如銀行返回失敗)

付款銀行

bank_type

String(16)

CMC

銀行類型,採用字符串類型的銀行標識

總金額

total_fee

Int

100

訂單總金額,單位爲分

貨幣種類

fee_type

String(8)

CNY

貨幣類型,符合ISO 4217標準的三位字母代碼,默認人民幣:CNY,其餘值列表詳見貨幣類型

現金支付金額

cash_fee

Int

100

現金支付金額訂單現金支付金額,詳見支付金額

現金支付貨幣類型

cash_fee_type

String(16)

CNY

貨幣類型,符合ISO 4217標準的三位字母代碼,默認人民幣:CNY,其餘值列表詳見貨幣類型

代金券或立減優惠金額

coupon_fee

Int

100

「代金券或立減優惠」金額<=訂單總金額,訂單總金額-「代金券或立減優惠」金額=現金支付金額,詳見支付金額

代金券或立減優惠使用數量

coupon_count

Int

1

代金券或立減優惠使用數量

代金券或立減優惠批次ID

coupon_batch_id_$n

String(20)

100

代金券或立減優惠批次ID ,$n爲下標,從1開始編號

代金券或立減優惠ID

coupon_id_$n

String(20)

10000 

代金券或立減優惠ID, $n爲下標,從1開始編號

單個代金券或立減優惠支付金額

coupon_fee_$n

Int

100

單個代金券或立減優惠支付金額, $n爲下標,從1開始編號

微信支付訂單號

transaction_id

String(32)

1217752501201407033233368018

微信支付訂單號

商戶訂單號

out_trade_no

String(32)

1217752501201407033233368018

商戶系統的訂單號,與請求一致。

商家數據包

attach

String(128)

123456

商家數據包,原樣返回

支付完成時間

time_end

String(14)

20141030133525

訂單支付時間,格式爲yyyyMMddHHmmss,如2009年12月25日9點10分10秒錶示爲20091225091010。其餘詳見時間規則

交易狀態描述

trade_state_desc

String(256)

支付失敗,請從新下單支付

對當前查詢訂單狀態的描述和下一步操做的指引

後臺代碼:

/// <summary>
        /// 訂單查詢
        /// </summary>
        /// <returns></returns>
        public JsonResult OrderQuery(WXM_TRADE_Model trade)
        {
          
            string nonceStr = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetNoncestr();

            Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null);

            //設置package訂單參數
            packageReqHandler.SetParameter("appid", AppId);          //公衆帳號ID
            packageReqHandler.SetParameter("mch_id", MchId);          //商戶號
            //packageReqHandler.SetParameter("transaction_id", "");       //填入微信訂單號 
            packageReqHandler.SetParameter("out_trade_no", trade.TRADE_NO);         //填入商家訂單號
            packageReqHandler.SetParameter("nonce_str", nonceStr);             //隨機字符串

            string querysign = packageReqHandler.CreateMd5Sign("key", Key);

            packageReqHandler.SetParameter("sign", querysign);                        //簽名

            string data = packageReqHandler.ParseXML();

            var result = Senparc.Weixin.MP.AdvancedAPIs.TenPayV3.OrderQuery(data);
            var res =System.Xml.Linq.XDocument.Parse(result);

            string return_code = res.Element("xml").Element("return_code").Value;
            string trade_state = res.Element("xml").Element("trade_state").Value;//SUCCESS-支付成功,REFUND-轉入退款,NOTPAY-未支付,CLOSED-已關閉,REVOKED-已撤銷,USERPAYING-用戶支付中,PAYERROR-支付失敗

            Hashtable hashtable = new Hashtable();

            hashtable.Add("trade_state", trade_state);

            return Json(hashtable);
        }
相關文章
相關標籤/搜索