一.前言
開發之前,我們需要閱讀官方的介面說明文檔,不得不吐槽一下,微信的這個官方文檔真的很爛,但是,為了開發我們需要的功能,我們也不得不去看這些文檔.
介面文件位址:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html
看了這些個文檔,基本上意思明白了,就是我們把我們要創建的菜單創建好,post到微信的伺服器上面,微信伺服器然後給我們一些狀態碼,從而判斷我們的菜單是否創建成功,只是在發送json資料以前我們要做一些身份驗證。
二.準備工作
先把我們要建立的選單寫在一個txt文字中:
{ "button":[ { "type":"view", "name":"付停车费", "url":"http://www.baidu.com" },{ "name":"个人中心", "sub_button":[ { "type":"view", "name":"个人信息", "url":"http://www.baidu.com" }, { "type":"view", "name":"订单查询", "url":"http://www.baidu.com" }, { "type":"view", "name":"使用帮助", "url":"http://www.baidu.com" }, { "type":"view", "name":"下载APP", "url":"http://www.baidu.com" }] }] }
三.開始編碼
首先我們建立一個一般處理程序createMenu.ashx.
這裡要注意的是appid,secret這些參數需要換成我們自己的,這些參數我們可以放在設定檔中。也可以單獨的放在一個幫助類別裡面。
{"access_token":"jVLAT9Rp9dNgxI4pb4RWlSx_9HJLXICmk_uWDlRtAug8wcaWhZZ10eqZCYRZrEwCIJf1-vBhS9YEX00Dj7q__lJCyTI20TruxOd."
上面的GetPage方法的回傳值。這樣我們就可以獲得我們的令牌了。
最後一步:帶上我們的令牌,post我們的json選單資料就可以建立選單了。
當你看到以下程式碼:
{"errcode":0,"errmsg":"ok"}
說明你的選單創建成功了。四:GetPage
public string GetPage(string posturl, string postData) { Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(postData); // 准备请求... try { // 设置参数 request = WebRequest.Create(posturl) as HttpWebRequest; CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码 string content = sr.ReadToEnd(); string err = string.Empty; Response.Write(content); return content; } catch (Exception ex) { string err = ex.Message; return string.Empty; } }
以上所述就是本文的全部內容了,希望大家能夠喜歡