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


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 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
Jan 15 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 Javascript
input链接页面、打开新网页等等的具体实现
Dec 30 Javascript
node.js中的fs.lchmod方法使用说明
Dec 16 Javascript
JavaScript实现模仿桌面窗口的方法
Jul 18 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 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
PHP5中MVC结构学习
2006/10/09 PHP
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
如何利用预加载优化Laravel Model查询详解
2017/08/11 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
js 本地预览的简单实现方法
2014/02/18 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
layui复选框的全选与取消实现方法
2019/09/02 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
让python 3支持mysqldb的解决方法
2017/02/14 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
详解Python 正则表达式模块
2018/11/05 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
python如何进入交互模式
2020/07/06 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
养牛场项目建议书
2014/05/13 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
党组织领导班子整改方案
2014/10/25 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书