交流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 我會傾囊相授