交流QQ群 ASP.NET鷹組 460845632 我會傾囊相授 我們要做微信支付當配置好微信微信商戶和支付配置之後我們首先應該看 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1# 這是微信統一下單的參數,我將這個參數做成 ...
交流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 我會傾囊相授