国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

.NET微信公眾號開發之創建自定義菜單

2019-11-20 12:02:15
字體:
來源:轉載
供稿:網友

一.前言

開發之前,我們需要閱讀官方的接口說明文檔,不得不吐槽一下,微信的這個官方文檔真的很爛,但是,為了開發我們需要的功能,我們也不得不去看這些文檔.

接口文檔地址: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.

復制代碼 代碼如下:

        public string  access_token { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            FileStream fs1 = new FileStream(Server.MapPath(".") + "//menu.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("UTF-8"));
            string menu = sr.ReadToEnd();
            sr.Close();
            fs1.Close();
            var str = GetPage("            JObject jo = JObject.Parse(str);
            access_token = jo["access_token"].ToString();
            GetPage("
        }

  這里需要注意的是appid,secret這些參數需要換成我們自己的,這些參數我們可以放在配置文件中。也可以單獨的放在一個幫助類里面。

     同時在創建菜單的時候我們需要帶上我的access_token這個令牌來驗證我們的身份,那么我們首先要做的就是獲取我們的這個令牌,那個這個令牌要如何獲取了,我們可以通過一個接口獲取,只需要傳遞我們的appid和secret這個兩個參數

復制代碼 代碼如下:

{"access_token":"jVLAT9Rp9dNgxI4pb4RWlSx_9HJLXICmk_uWDlRtAug8wcaWhZZ10eqZCYRZrEwCIJf1-vBhS9YEX00Dj7q__lJCyTIWOxTruOd25opkf-0","expires_in":7200}

  上面的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;      }    }

以上所述就是本文的全部內容了,希望大家能夠喜歡

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉贤区| 禹城市| 西安市| 牡丹江市| 铁岭市| 喜德县| 康平县| 蓝山县| 镶黄旗| 昭觉县| 威信县| 攀枝花市| 青铜峡市| 乐安县| 儋州市| 沅陵县| 上犹县| 九台市| 汉寿县| 巴里| 武胜县| 泰来县| 元阳县| 永靖县| 兴义市| 鄄城县| 韶山市| 霍邱县| 海原县| 盘锦市| 雷波县| 南漳县| 平安县| 鲜城| 丰台区| 尚志市| 罗田县| 新乡县| 揭东县| 林州市| 罗田县|