最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信公眾號(hào)開(kāi)發(fā)之設(shè)置自定義菜單實(shí)例代碼【java版】

 更新時(shí)間:2018年06月20日 11:01:00   作者:YuanlongWang  
這篇文章主要介紹了微信公眾號(hào)開(kāi)發(fā)之設(shè)置自定義菜單實(shí)例代碼,本實(shí)例是為了實(shí)現(xiàn)在管理后臺(tái)實(shí)現(xiàn)微信菜單的添加刪除管理。需要的朋友可以參考下

本實(shí)例是為了實(shí)現(xiàn)在管理后臺(tái)實(shí)現(xiàn)微信菜單的添加刪除管理。

1、首先我們需要新建一個(gè)數(shù)據(jù)庫(kù)表用于存放menu菜單項(xiàng)

可包含的字段有id、父類(lèi)id、name、排序、是否顯示、類(lèi)型(view、click)、鏈接、adddate

注意后臺(tái)存menu菜單數(shù)據(jù)時(shí),parentId=-1為一級(jí)菜單,或parendId為一級(jí)菜單的id作為該一級(jí)菜單下的二級(jí)菜單

2、在設(shè)置菜單時(shí)需要向微信接口傳menuJson字符串,所以要先拼接字符串,后臺(tái)定義一個(gè)creatMenu()

public bool creatMenu() 
    { 
      string menuJson = ""; 
      //這里默認(rèn)parentId=-1為最外層菜單,isactive=1為顯示,responseType=1為click類(lèi)型 
      DataTable dtAMenu = Service.SelectDataTable("id, name, responseType, jsonStr,url", "WEIXINMENU", " parentId=-1 and isactive=1 order by sort"); 
      if (dtAMenu.Rows.Count > 0) 
      { 
        menuJson = "{\"button\":["; 
        for (int i = 0; i < dtAMenu.Rows.Count; i++) 
        { 
          DataTable dtBMenu = Service.SelectDataTable("id, name, responseType, jsonStr,url", wx, " parentId=" + dtAMenu.Rows[i]["id"].ToString() + " and isactive=1 order by sort"); 
          if (dtBMenu.Rows.Count > 0) 
          { 
            menuJson += "{\"name\":\"" + dtAMenu.Rows[i]["name"].ToString() + "\",\"sub_button\":["; 
            for (int j = 0; j < dtBMenu.Rows.Count; j++) 
            { 
              if (Convert.ToInt32(dtBMenu.Rows[j]["responseType"]) == 2) 
              { 
                menuJson += "{\"type\":\"view\",\"name\":\"" + dtBMenu.Rows[j]["name"].ToString() + "\",\"url\":\"" + dtBMenu.Rows[j]["jsonStr"].ToString() + "\"},"; 
              } 
              else 
              { 
                menuJson += "{\"type\":\"click\",\"name\":\"" + dtBMenu.Rows[j]["name"].ToString() + "\",\"key\":\"eventKey_" + dtBMenu.Rows[j]["id"].ToString() + "\"},"; 
              } 
            } 
            menuJson = menuJson.TrimEnd(','); 
            menuJson += "]},"; 
          } 
          else 
          { 
            //if (Convert.ToInt32(dtAMenu.Rows[i]["responseType"]) == 2) 
            //{ 
              menuJson += "{\"type\":\"view\",\"name\":\"" + dtAMenu.Rows[i]["name"].ToString() + "\",\"url\":\"" + dtAMenu.Rows[i]["jsonStr"].ToString() + "\"},"; 
            //} 
            //else 
            //{ 
            //  menuJson += "{\"type\":\"click\",\"name\":\"" + dtAMenu.Rows[i]["name"].ToString() + "\",\"key\":\"eventKey_" + dtAMenu.Rows[i]["id"].ToString() + "\"},"; 
            //} 
          } 
          dtBMenu.Dispose(); 
        } 
        dtAMenu.Dispose(); 
        menuJson = menuJson.TrimEnd(','); 
        menuJson += "]}"; 
        menuJson = menuJson.Trim(); 
        return requstZmToCreatMent(menuJson); 
      } 
      else 
      { 
        return false; 
      } 
    } 

3、獲取到menujson字符串后調(diào)用微信接口創(chuàng)建菜單,需先獲取assess token,有關(guān)assess token獲取可參考:獲取AccessToken

/// <summary> 
    /// 向微信服務(wù)器請(qǐng)求創(chuàng)建自定義菜單 
    /// </summary> 
    /// <param name="jsonStr"></param> 
    /// <returns></returns> 
    ///  
    private bool requstZmToCreatMent(string jsonStr) 
    { 
      try 
      { 
        var AccessToken = "";//accesstoken需例外獲取,一般可開(kāi)始時(shí)獲取后存數(shù)據(jù)庫(kù),下次從數(shù)據(jù)庫(kù)取,注意accesstoken有效期為7200秒 
        //聲明一個(gè)HttpWebRequest請(qǐng)求 
        string interfaceUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + AccessToken; 
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(interfaceUrl); 
        //設(shè)置連接超時(shí)時(shí)間  
        request.Timeout = 30000; 
        request.KeepAlive = true; 
        Encoding encodeType = Encoding.GetEncoding("UTF-8"); 
        request.Headers.Set("Pragma", "no-cache"); 
        request.Method = "POST"; 
        request.ContentType = "application/x-www-form-urlencoded"; 
        request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; Maxthon; .NET CLR 1.1.4322); Http STdns"; 
        request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"; 
        request.CookieContainer = new CookieContainer(); 
        byte[] Bytes = encodeType.GetBytes(jsonStr); 
        request.ContentLength = Bytes.Length; 
        request.AllowAutoRedirect = true; 
        //發(fā)送數(shù)據(jù) 
        using (Stream writer = request.GetRequestStream()) 
        { 
          writer.Write(Bytes, 0, Bytes.Length); 
          writer.Close(); 
        } 
        StringBuilder strb = new StringBuilder(); 
        //接收數(shù)據(jù) 
        using (Stream reader = request.GetResponse().GetResponseStream()) 
        { 
          StreamReader sr = new StreamReader(reader, encodeType); 
          strb.Append(sr.ReadToEnd()); 
          sr.Close(); 
          reader.Close(); 
        } 
        if ((strb.ToString().IndexOf("\"errcode\":42001") != -1) || (strb.ToString().IndexOf("\"errcode\":40001") != -1) || (strb.ToString().IndexOf("\"errcode\":40014") != -1) || (strb.ToString().IndexOf("\"errcode\":41001") != -1)) //access_token錯(cuò)誤 
        { 
          // AccessToken = getAccessToken(); 
          getzmAccessToken(); 
          return requstZmToCreatMent(jsonStr); 
        } 
        else 
        { 
          if (strb.ToString() == "{\"errcode\":0,\"errmsg\":\"ok\"}") 
          { 
            return true; 
          } 
          else 
          { 
            return false; 
          } 
        } 
      } 
      catch (Exception exp) 
      { 
        return false; 
      } 
    } 

總結(jié)

以上所述是小編給大家介紹的微信公眾號(hào)開(kāi)發(fā)之設(shè)置自定義菜單實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用

    這篇文章主要介紹了Java INPUTSTREAM如何實(shí)現(xiàn)重復(fù)使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • MyBatis中example.createCriteria()方法的具體使用

    MyBatis中example.createCriteria()方法的具體使用

    本文詳細(xì)介紹了MyBatis的Example工具的使用方法,包括鏈?zhǔn)秸{(diào)用指定字段、設(shè)置查詢條件、支持多種查詢方式等,還介紹了mapper的crud方法、and/or方法的使用,以及如何進(jìn)行多條件和多重條件查詢,感興趣的可以了解一下
    2024-10-10
  • 解決idea中maven項(xiàng)目打包成jar報(bào)錯(cuò):沒(méi)有主清單屬性的問(wèn)題

    解決idea中maven項(xiàng)目打包成jar報(bào)錯(cuò):沒(méi)有主清單屬性的問(wèn)題

    這篇文章主要給大家分享了idea中maven項(xiàng)目打包成jar,報(bào)錯(cuò)沒(méi)有主清單屬性解決方法,文中有詳細(xì)的解決方法,如果又遇到同樣問(wèn)題的朋友可以參考一下本文
    2023-09-09
  • 沒(méi)有外網(wǎng)IDEA離線使用maven倉(cāng)庫(kù)的方法

    沒(méi)有外網(wǎng)IDEA離線使用maven倉(cāng)庫(kù)的方法

    這篇文章主要介紹了沒(méi)有外網(wǎng),IDEA如何離線使用maven倉(cāng)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java中數(shù)據(jù)庫(kù)加密的方式有哪些

    Java中數(shù)據(jù)庫(kù)加密的方式有哪些

    這篇文章主要介紹了Java中數(shù)據(jù)庫(kù)加密的方式有哪些,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Kafka中的producer攔截器與consumer攔截器詳解

    Kafka中的producer攔截器與consumer攔截器詳解

    這篇文章主要介紹了Kafka中的producer攔截器與consumer攔截器詳解,Producer 的Interceptor使得用戶在消息發(fā)送前以及Producer回調(diào)邏輯前有機(jī)會(huì)對(duì)消息做 一些定制化需求,比如修改消息等,需要的朋友可以參考下
    2023-12-12
  • Springboot解決ajax+自定義headers的跨域請(qǐng)求問(wèn)題

    Springboot解決ajax+自定義headers的跨域請(qǐng)求問(wèn)題

    由于瀏覽器同源策略(同源策略,它是由Netscape提出的一個(gè)著名的安全策略,現(xiàn)在所有支持JavaScript 的瀏覽器都會(huì)使用這個(gè)策略。接下來(lái)通過(guò)本文給大家介紹Springboot如何優(yōu)雅的解決ajax+自定義headers的跨域請(qǐng)求 ,需要的朋友可以參考下
    2019-05-05
  • 使用BigInteger實(shí)現(xiàn)除法取余

    使用BigInteger實(shí)現(xiàn)除法取余

    這篇文章主要介紹了使用BigInteger實(shí)現(xiàn)除法取余操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Javaweb mybatis接口開(kāi)發(fā)實(shí)現(xiàn)過(guò)程詳解

    Javaweb mybatis接口開(kāi)發(fā)實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Javaweb mybatis接口開(kāi)發(fā)實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java基礎(chǔ)題新手練習(xí)(一)

    Java基礎(chǔ)題新手練習(xí)(一)

    下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你
    2021-07-07

最新評(píng)論

平和县| 白山市| 平顶山市| 北安市| 任丘市| 龙川县| 银川市| 东平县| 云和县| 从化市| 尼玛县| 秀山| 屯留县| 莱西市| 望谟县| 沙坪坝区| 闽侯县| 富蕴县| 昂仁县| 伊春市| 濮阳市| 塔河县| 北辰区| 六安市| 应用必备| 平安县| 西乌珠穆沁旗| 襄樊市| 遂昌县| 阳春市| 察雅县| 屏边| 兴国县| 吴桥县| 襄汾县| 彰化市| 汕尾市| 青龙| 赞皇县| 微山县| 小金县|