php专区

 首页 > php专区 > PHP应用 > 开放平台 > 微信--自定义菜单(创建和删除) - 微信公众平

微信--自定义菜单(创建和删除) - 微信公众平

分享到:
【字体:
导读:
          微信自定义菜单这个就比较简单,直接贴代码。微信说的注意:目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字...

微信自定义菜单这个就比较简单,直接贴代码。

微信说的注意:

目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。请注意,创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。 

 

         #region 菜单管理
         public ActionResult CreateMenu()
        {
             string access_token = weixin.AccessToken();
            string url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token;
            string data = "";

            using (StreamReader sr = new StreamReader(Server.MapPath("/Config/menu.txt")))
            {
                data = sr.ReadToEnd();
             }
 

             var json = HttpHelper.Post(url, data);
            return Content(json);
         }
 
         public ActionResult DeleteMenu()
        {
            string access_token = weixin.AccessToken();
             string url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + access_token;
 
            var json = HttpHelper.Get(url);
             return Content(json);
         }
        #endregion     #region 菜单管理
         public ActionResult CreateMenu()
        {
             string access_token = weixin.AccessToken();
            string url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token;
            string data = "";

            using (StreamReader sr = new StreamReader(Server.MapPath("/Config/menu.txt")))
            {
                data = sr.ReadToEnd();
             }
 

             var json = HttpHelper.Post(url, data);
            return Content(json);
         }
 
         public ActionResult DeleteMenu()
        {
            string access_token = weixin.AccessToken();
             string url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + access_token;
 
            var json = HttpHelper.Get(url);
             return Content(json);
         }
        #endregion

返回结果

正确时的返回JSON数据包如下:

{"errcode":0,"errmsg":"ok"}

错误时的返回JSON数据包如下(示例为无效菜单名长度):

{"errcode":40018,"errmsg":"invalid button name size"}

 

 

 

menu.txt

{
     "button":[
      {
           "name":"一级标题1",
           "sub_button":[
           {    
               "type":"view",
               "name":"二级标题1",
               "url":"http://xx.xx.com/1.html"
            },
            {
               "type":"view",
               "name":"二级标题2",
               "url":""
            },
            {
               "type":"view",
               "name":"二级标题3",
               "url":""
            },
            {
               "type":"view",
               "name":"二级标题4",
               "url":""
            },
            {
               "type":"view",
               "name":"二级标题5",
               "url":""
            }]
       },
       {
           "type":"view",
           "name":"一级标题2",
           "url":"http://xx.xx.com/2.html"
       },
       {
           "name":"一级标题3",
           "sub_button":[
            {
               "type":"view",
               "name":"二级标题1",
               "url":""
            },
            {
               "type":"view",
               "name":"二级标题2",
               "url":"http://xx.xx.com/3-1.html"
            }]
       }]
 }

分享到:
微信--获取jsapi_ticket 然后在计算出sig...
 最近做微信公众号,记录一下,仅供参看。   关于jsapi_ticket微信公众号有相关说明: 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsap...
由获取微信access_token引出的Java多线程...
背景:       access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。 1、为了保密appsecrect,第三方需要一个access_t...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……