#region 公众号创建菜单接口 //创建菜单主方法 private string createMenu() { //1、将创建菜单的JSON数据保存到menu.txt了,也可以直接将JSON写成一个string串 string menu = @" //这个是微信公众号官网的例子,我直接拿来使用了---郑林 2019-11-19 { ""button"":[ { ""type"":""view"", ""name"":""更多优惠券"", ""url"":""http://xxxx.space"" }] } "; //2、获取我的访问令牌 string my_token = getMyWeChatToken(); //3、组合成创建菜单的URL string url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}", my_token); //4、调用创建菜单的方法,并返回结果 return createMenu(url, menu); } //创建菜单 private string createMenu(string url, string menu_txt) { Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(menu_txt); request = WebRequest.Create(url) as HttpWebRequest;//创建请求 //写入数据 CookieContainer cookieContainer = new CookieContainer(); request.CookieContainer = cookieContainer; request.AllowAutoRedirect = true; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = data.Length; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //读取返回结果 response = request.GetResponse() as HttpWebResponse; instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); string content = sr.ReadToEnd(); //读取操作码 JObject my_toke_obj = (JObject)JsonConvert.DeserializeObject(content); string error_code = my_toke_obj["errcode"].ToString(); return error_code; } //获取访问令牌 public string getMyWeChatToken() { string urltemp = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"; //需要填写自己的APPID和APPSECRET string url = string.Format(urltemp, AppID, AppSecret); HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "GET"; request.ContentType = "application/x-www-form-urlencoded";//链接类型 HttpWebResponse response = request.GetResponse() as HttpWebResponse; string access_token = ""; using (Stream s = response.GetResponseStream()) { StreamReader reader = new StreamReader(s, Encoding.UTF8); access_token = reader.ReadToEnd(); } JObject my_toke_obj = (JObject)JsonConvert.DeserializeObject(access_token); string my_token = my_toke_obj["access_token"].ToString(); return my_toke_obj["access_token"].ToString(); } #endregion

浙公网安备 33010602011771号