微信JSAPI支付 統一下單 (.net后台)


 交流QQ群  ASP.NET鷹組 460845632  我會傾囊相授

我們要做微信支付當配置好微信微信商戶和支付配置之后我們首先應該看   https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1#

這是微信統一下單的參數,我將這個參數做成了一個數據模型

 

 

 

當做好這個數據模型之后仔細看一下里面那些參數是必須的,支付金額要注意,微信是按來計算的

 

接下來我們就要生成簽名,我這寫好了個類  生成簽名后 返回提交的值.....先給大家看圖

  注意我這里是先生成簽名,再把簽名拼接到訂單的參數里面並且簽名排序了,下面的代碼可以直接拿來用

 

 

接下來是代碼

 

 public string OrderSign(WXOrder order)  

{       

       Dictionary<string, string> dic = ClassToObject.ClassToType.Test(order);

       dic = dic.OrderBy(m => m.Key).ToDictionary(m => m.Key, m => m.Value);  

       StringBuilder sb = new StringBuilder();      

       StringBuilder sbXml = new StringBuilder();     

        sbXml.Append("<xml>");    

        foreach (var item in dic)        

      { 

                sbXml.Append("<" + item.Key + ">" + item.Value + "</" + item.Key + ">");

                sb.Append(item.Key + "=" + item.Value + "&");       

      }          

       sb.Append("key=" + WXConfig.Config.KEY);          

       string str = sb.ToString().Replace(" ", "");      

       string sign = Common.Tool.GetMD5(str);        

      sbXml.Append("<sign>" + sign + "</sign></xml>");     

        return sbXml.ToString().Replace(" ", "");

}

 

接下來就是統一下單的請求了,

上面的方法會返回一個XML ,將這個XML  POST請求到 https://api.mch.weixin.qq.com/pay/unifiedorder

 

請求之后如果正確返回值是一個XML  解析方方法如下

 

 

將xml解析之后會返回一個鍵值對集合  我只提取了需要的四個值,注意 prepay_id是統一下單后訂單的的信息,jsapi靠這個獲取支付信息

 

之后將使用jsapi 發起支付    如果沒有做過jsapi的請查看我的博客,有非常詳細的講解

 

我們看一下jsapi是怎么發起支付的

我是用ajax 請求的后台拿到上面的數據,返回的json  , 到此微信jsapi支付完成

 

如果你有什么不懂得可以加我的 QQ群  ASP.NET鷹組 460845632  我會傾囊相授

 


免責聲明!

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



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