.net mvc 微信公众号 自定义菜单

官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013&token=&lang=zh_CN

创建自定义菜单:

MVC中的接口方法为:

public void CreateMenu()
        {
            string access_token = AdminUtil.GetAccessToken();
            string posturl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + access_token;
            string menuStr = "";// " 菜单结构";
            using (StreamReader sr = new StreamReader(HttpContext.Server.MapPath("/Impl/MyMenu.json")))
            {
                menuStr = sr.ReadToEnd();
            }
            string responseResult = HttpRequestUtil.RequestUrlSendMsg(posturl, "POST", menuStr);
            Response.Write(responseResult);
        }

MyMenu.json文件为:

 {
    "button": [
        {
            "name": "资讯服务",
            "sub_button": [
                {
                    "type": "view",
                    "name": "营业网点查询1",
                    "url": "http://www.soso.com/"
                },              
           
                {
                    "type": "view",
                    "name": "还款计算器",
                    "url": "http://v.qq.com/"
                }
            ]
        },
        {
            "name": "业务中心",
            "sub_button": [
                {
                    "type": "view",
                    "name": "担保业务办理",
                    "url": "http://www.soso.com/"
                },            
                {
                    "type": "click",
                    "name": "公积金担保查询",
                    "key": "V1001_01"
                }                
            ]
        },       
        {
            "name": "个人中心",
            "sub_button": [
                {
                    "type": "view",
                    "name": "优惠券管理",
                    "url": "http://www.soso.com/"
                },
                {
                    "type": "view",
                    "name": "房产中心",
                    "url": "http://v.qq.com/"
                }
            ]
        }
    ]
 }

HttpRequestUtil类中的代码

#region 请求Url,发送json数据
        /// <summary>
        /// 请求Url,发送json数据
        /// </summary>
        public static string RequestUrlSendMsg(string url, string method,string JSONData)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
            // 设置参数
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            CookieContainer cookieContainer = new CookieContainer();
            request.CookieContainer = cookieContainer;
            request.AllowAutoRedirect = true;
            request.Method = method;
            request.ContentType = "text/html";
            request.Headers.Add("charset", "utf-8");
            Stream reqstream = request.GetRequestStream();
            reqstream.Write(bytes, 0, bytes.Length);
            //声明一个HttpWebRequest请求  
            request.Timeout = 90000;
            //设置连接超时时间  
            request.Headers.Set("Pragma", "no-cache");  
            //发送请求并获取相应回应数据
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            //直到request.GetResponse()程序才开始向目标网页发送Post请求
            Stream responseStream = response.GetResponseStream();
            StreamReader sr = new StreamReader(responseStream, Encoding.Default);
            //返回结果网页(html)代码
            string content = sr.ReadToEnd();
            return content;
        }
        #endregion
原文地址:https://www.cnblogs.com/chiyueqi/p/5893784.html