微信公众号平台接口开发 菜单管理的实现


Posted in Javascript onAugust 14, 2019

官方菜单功能介绍

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

请求接口:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

新增菜单管理类

public class MenuFirstLayerModel
  {
    public string name { get; set; }
    public List<MenuTwoLayerModel> sub_button { get; set; }
  }

  public class MenuTwoLayerModel
  {
    public string type { get; set; }
    public string name { get; set; }
    public string key { get; set; }
    public string url { get; set; }
  }

  public class WXMenu 
  {
    public List<MenuFirstLayerModel> button { get; set; }

    public string Create()
    {
      try
      {
        var requestUri = string.Format(@"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}", WeCharBase.AccessToken);
        
        return WeCharBase.Post(requestUri, new StringContent(JsonConvert.SerializeObject(new
        {
          button = button
        })));
      }
      catch (Exception ex)
      {
        return ex.Message;
      }
    }
  }

新增控制器MenuController.cs

public ActionResult ViewMenu()
    {
      return View();
    }

    public ActionResult CreateMenu()
    {
      var wxMenu = new WXMenu()
      {
        button = new List<MenuFirstLayerModel>()
        {
          new MenuFirstLayerModel()
          {
             name="扫码",
             sub_button = new List<MenuTwoLayerModel>()
             {
              new MenuTwoLayerModel()
              {
                type = "scancode_waitmsg",
                name = "扫码带提示", 
                key = "rselfmenu_0_0"
              },
              new MenuTwoLayerModel()
              {
                type = "scancode_push",
                name = "扫码推事件", 
                key = "rselfmenu_0_1"
              }
             },
          },
          new MenuFirstLayerModel()
          {
             name = "发图",
             sub_button = new List<MenuTwoLayerModel>()
             {
              new MenuTwoLayerModel()
              {
                type = "pic_sysphoto",
                name = "系统拍照发图", 
                key = "rselfmenu_1_0"
              },
              new MenuTwoLayerModel()
              {
                type = "pic_photo_or_album",
                name = "拍照或者相册发图", 
                key = "rselfmenu_1_1"
              },
              new MenuTwoLayerModel()
              {
                type = "pic_weixin",
                name = "微信相册发图", 
                key = "rselfmenu_1_2"
              }
             }
          },
          new MenuFirstLayerModel()
          {
            name = "其他",
            sub_button = new List<MenuTwoLayerModel>()
            {
              new MenuTwoLayerModel()
              {
                type = "location_select",
                name = "发送位置", 
                key = "rselfmenu_2_0"
              },
              new MenuTwoLayerModel()
              {
                type = "click",
                name = "今日歌曲", 
                key = "V1001_TODAY_MUSIC"
              },
              new MenuTwoLayerModel()
              {
                type = "view",
                name = "百度", 
                url = "http://www.baidu.com"
              }
            }
          }
        }
      };

      return Content(wxMenu.Create());
    }

新增视图ViewMenu.cshtml

<script type="text/javascript" language="javascript">
  $(document).ready(function () {
    $("#btnCreate").click(function () {
      $.ajax({
        type: "POST",
        url: "/Menu/CreateMenu",
        data: { id: $("#textContent").val() },
        success: function (responseTest) {
          $("#resultMesage").text(responseTest);
        }
      });
    });
  });
</script>

<table>
  <tr>
    <td>
      <div class="title">菜单创建</div>
      <textarea id="textContent" name="textContent" rows="20" cols="100">
        button = new[]
        {
          new
          {
            name="扫码",
            sub_button = new[]
            {
              new
              {
                type = "scancode_waitmsg",
                name = "扫码带提示",
                key = "rselfmenu_0_0"
              },
              new
              {
                type = "scancode_push",
                name = "扫码推事件",
                key = "rselfmenu_0_1"
              }
            }
          },
          new
          {
            name = "发图",
            sub_button = new[]
            {
              new
              {
                type = "pic_sysphoto",
                name = "系统拍照发图",
                key = "rselfmenu_1_0"
              },
              new
              {
                type = "pic_photo_or_album",
                name = "拍照或者相册发图",
                key = "rselfmenu_1_1"
              },
              new
              {
                type = "pic_weixin",
                name = "微信相册发图",
                key = "rselfmenu_1_2"
              }
            }
          },
          new
          {
            name = "其他",
            sub_button = new[]
            {
              new
              {
                type = "location_select",
                name = "发送位置",
                key = "rselfmenu_2_0"
              },
              new
              {
                type = "click",
                name = "今日歌曲",
                key = "V1001_TODAY_MUSIC"
              },
              new
              {
                type = "view",
                name = "百度",
                url = "http://www.baidu.com"
              }
            }
          }
        }

      </textarea>
    </td>
    <td><input class="btncss" id="btnCreate" type="button" value=" 创建 " /></td>
    <td id="resultMesage" class="resultMesage"></td>
  </tr>
</table>

有效代码写完了,看看效果

微信公众号平台接口开发 菜单管理的实现

微信公众号平台接口开发 菜单管理的实现

成功了哦。

Javascript 相关文章推荐
jquery图片上下tab切换效果
Mar 18 Javascript
Jquery AJAX POST与GET之间的区别
Nov 14 Javascript
javascript属性访问表达式用法分析
Apr 25 Javascript
javascript实现鼠标移到Image上方时显示文字效果的方法
Aug 07 Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 Javascript
详解JS中的attribute属性
Apr 25 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
js实现json数组分组合并操作示例
Feb 12 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
Jul 18 Javascript
vue实现行列转换的一种方法
Aug 06 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 #Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
Aug 14 #Javascript
vue filter 完美时间日期格式的代码
Aug 14 #Javascript
如何对react hooks进行单元测试的方法
Aug 14 #Javascript
vue 中 命名视图的用法实例详解
Aug 14 #Javascript
详解vue 命名视图
Aug 14 #Javascript
浅谈JS中this在各个场景下的指向
Aug 14 #Javascript
You might like
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
javascript 闭包详解
2015/02/15 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
express.js中间件说明详解
2019/03/19 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
2020/01/02 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python实现图书管理系统
2018/03/12 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python操作excel的方法
2018/08/16 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
物业经理求职自我评价
2013/09/22 职场文书
毕业自我评价
2014/02/05 职场文书
党务公开方案
2014/05/06 职场文书
学雷锋宣传标语
2014/06/25 职场文书
2014年司法局工作总结
2014/12/11 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书
小学安全教育主题班会
2015/08/12 职场文书