重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

使用c#开发公众平台自定义菜单功能实例代码

时间:2020-09-10 01:00:05 作者:重庆seo小潘 来源:
微信公众平台服务号开放了自定义菜单API,本案例介绍C#开发微信公众号自定义菜单功能。在此基础上可以开发更完善的自定义菜单管理功能 复制代码 代码如下:%@ Page Language=C# AutoEventWireup=true CodeBehind=cm.aspx.cs Inherits=guotaotao_weixin.cm %!D

微信公众平台服务号开放了自定义菜单API,本案例介绍C#开发微信公众号自定义菜单功能。在此基础上可以开发更完善的自定义菜单管理功能

复制代码 代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cm.aspx.cs" Inherits="guotaotao_weixin.cm" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>test</title></head><body><form id="form1" runat="server"><p><asp:Literal ID="lt_msg" runat="server" ></asp:Literal></p></form></body></html>复制代码 代码如下:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;namespace guotaotao_weixin{public partial class cm : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){weixin wx = new weixin();//lt_msg.Text = wx.GetAccessToken();lt_msg.Text = wx.DelMenu();lt_msg.Text += wx.SetMenu();}}}}复制代码 代码如下:namespace guotaotao_weixin {public partial class cm {/// <summary>/// form1 控件。/// </summary>/// <remarks>/// 自动生成的字段。/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。/// </remarks>protected global::System.Web.UI.HtmlControls.HtmlForm form1;/// <summary>/// lt_msg 控件。/// </summary>/// <remarks>/// 自动生成的字段。/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。/// </remarks>protected global::System.Web.UI.WebControls.Literal lt_msg;}}复制代码 代码如下:using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using guotaotao_weixin.database;using guotaotao.database;namespace guotaotao_weixin{public class guotaotao{private string _content = "";private string _FromUserName = "";public int msgType = 0;public int isFirst = 0;public int pid = 0;#region "构造函数"public guotaotao(){}public guotaotao(string content){this._content = content;}public guotaotao(string content,string FromUserName){this._content = content;this._FromUserName = FromUserName;}#endregionpublic string createMenuDate(){string postData = "{" + "rn";postData += ""button":[ " + "rn";postData += "{ " + "rn";postData += ""name":"产品"," + "rn";postData += ""sub_button":[" + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"无糖系列", " + "rn";postData += ""key":"gtt_menu_001001"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"干果系列", " + "rn";postData += ""key":"gtt_menu_001002"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"休闲系列", " + "rn";postData += ""key":"gtt_menu_001003"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"儿童系列", " + "rn";postData += ""key":"gtt_menu_001004"" + "rn";postData += " }]" + "rn";postData += "}," + "rn";postData += "{" + "rn";postData += ""name":"活动", " + "rn";postData += ""sub_button":[" + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"抽奖", " + "rn";postData += ""key":"gtt_menu_002001"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"view"," + "rn";postData += ""name":"获奖名单", " + "rn";postData += ""url":"http://www.aaa.com/apps/honor_list.aspx"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"click"," + "rn";postData += ""name":"优惠券", " + "rn";postData += ""key":"gtt_menu_002003"" + "rn";postData += " }]" + "rn";postData += "}," + "rn";postData += "{" + "rn";postData += ""name":"帮助"," + "rn";postData += ""sub_button":[" + "rn";postData += "{ " + "rn";postData += ""type":"view"," + "rn";postData += ""name":"关于我们", " + "rn";postData += ""url":"http://www.aaa.com/apps/aboutus.aspx"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"view"," + "rn";postData += ""name":"联系我们", " + "rn";postData += ""url":"http://www.aaa.com/apps/contactus.aspx"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"view"," + "rn";postData += ""name":"查询订单", " + "rn";postData += ""url":"http://www.aaa.com/apps/orders_chaxun.aspx"" + "rn";postData += "}," + "rn";postData += "{ " + "rn";postData += ""type":"view"," + "rn";postData += ""name":"留言反馈", " + "rn";postData += ""url":"http://www.aaa.com/apps/feedback.aspx"" + "rn";postData += " }]" + "rn";postData += "}]" + "rn";postData += "}" + "rn";return postData;}}}菜单中的URL地址换成自己的

复制代码 代码如下:using System;using System.Web.Security;using System.Xml;using aaa_weixin.database;using Newtonsoft.Json;namespace aaa_weixin{public class weixin{private string Token = ""; //微信里面开发者模式Tokenprivate string devlopID = "";//微信里面开发者模式:开发者IDprivate string devlogPsw = "";//微信里面开发者模式: 开发者密码public string AccessToken = ""; //获取的通行证public void Auth(){string echoStr = System.Web.HttpContext.Current.Request.QueryString["echoStr"];if (CheckSignature()){if (!string.IsNullOrEmpty(echoStr)){System.Web.HttpContext.Current.Response.Write(echoStr);System.Web.HttpContext.Current.Response.End();}}}public string GetAccessToken() //获取通行证{string url_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + devlopID + "&secret=" + devlogPsw;string result = func.webRequestGet(url_token);accessToken deserializedProduct = (accessToken)JsonConvert.DeserializeObject(result, typeof(accessToken));this.AccessToken= deserializedProduct.access_Token;return this.AccessToken;}public string GetMenu() //获取当前菜单情况{string url_Menu_Get = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=" + this.AccessToken;string output = func.webRequestGet(url_Menu_Get);//wxErr deserializedProduct = (wxErr)JsonConvert.DeserializeObject(output, typeof(wxErr));//return deserializedProduct.errmsg;return output;}public string SetMenu() //设置最新菜单{string url_Menu_Create = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" + this.GetAccessToken();aaa gtt = new aaa();string postData = gtt.createMenuDate();string result = func.webRequestPost(url_Menu_Create,postData);return result;}public string DelMenu() //删除菜单{string url_Menu_Delete = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=" + this.GetAccessToken();string result = func.webRequestGet(url_Menu_Delete);return result;}/// <summary>/// 验证微信签名/// </summary>/// * 将token、timestamp、nonce三个参数进行字典序排序/// * 将三个参数字符串拼接成一个字符串进行sha1加密/// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。/// <returns></returns>private bool CheckSignature(){string signature = System.Web.HttpContext.Current.Request.QueryString["signature"];string timestamp = System.Web.HttpContext.Current.Request.QueryString["timestamp"];string nonce = System.Web.HttpContext.Current.Request.QueryString["nonce"];string[] ArrTmp = { Token, timestamp, nonce };Array.Sort(ArrTmp);//字典排序string tmpStr = string.Join("", ArrTmp);tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");tmpStr = tmpStr.ToLower();if (tmpStr == signature){return true;}else{return false;}}}public class wxErr{private int Errcode;public int errcode{get { return Errcode; }set { Errcode = value; }}private string Errmsg;public string errmsg{get { return Errmsg; }set { Errmsg = value; }}}public class accessToken{private string access_token;public string access_Token{get { return access_token; }set { access_token = value; }}private int expires_in;public int expires_In{get { return expires_in; }set { expires_in = value; }}} }以上就是使用c#开发公众平台自定义菜单功能实例代码的详细内容,更多请关注小潘博客其它相关文章!