站内搜索

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

微信公众平台服务号开放了自定义菜单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;            }        #endregion                 public string createMenuDate()        {            string postData = "{" + "/r/n";            postData += "/"button/":[ " + "/r/n";            postData += "{ " + "/r/n";            postData += "/"name/":/"产品/"," + "/r/n";            postData += "/"sub_button/":[" + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"无糖系列/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_001001/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"干果系列/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_001002/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"休闲系列/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_001003/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"儿童系列/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_001004/"" + "/r/n";            postData += " }]" + "/r/n";            postData += "}," + "/r/n";            postData += "{" + "/r/n";            postData += "/"name/":/"活动/", " + "/r/n";            postData += "/"sub_button/":[" + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"抽奖/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_002001/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"view/"," + "/r/n";            postData += "   /"name/":/"获奖名单/", " + "/r/n";            postData += "   /"url/":/"http://www.aaa.com/apps/honor_list.aspx/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"click/"," + "/r/n";            postData += "   /"name/":/"优惠券/", " + "/r/n";            postData += "   /"key/":/"gtt_menu_002003/"" + "/r/n";            postData += " }]" + "/r/n";            postData += "}," + "/r/n";            postData += "{" + "/r/n";            postData += "/"name/":/"帮助/"," + "/r/n";            postData += "/"sub_button/":[" + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"view/"," + "/r/n";            postData += "   /"name/":/"关于我们/", " + "/r/n";            postData += "   /"url/":/"http://www.aaa.com/apps/aboutus.aspx/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"view/"," + "/r/n";            postData += "   /"name/":/"联系我们/", " + "/r/n";            postData += "   /"url/":/"http://www.aaa.com/apps/contactus.aspx/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"view/"," + "/r/n";            postData += "   /"name/":/"查询订单/", " + "/r/n";            postData += "   /"url/":/"http://www.aaa.com/apps/orders_chaxun.aspx/"" + "/r/n";            postData += "}," + "/r/n";            postData += "{ " + "/r/n";            postData += "   /"type/":/"view/"," + "/r/n";            postData += "   /"name/":/"留言反馈/", " + "/r/n";            postData += "   /"url/":/"http://www.aaa.com/apps/feedback.aspx/"" + "/r/n";            postData += " }]" + "/r/n";            postData += "}]" + "/r/n";            postData += "}" + "/r/n";            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 = ""; //微信里面开发者模式Token        private string devlopID = "";//微信里面开发者模式:开发者ID        private 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#开发公众平台自定义菜单功能实例代码的详细内容,更多请关注php中文网其它相关文章!

  • 上一篇:详解Java通过JsApi方式实现微信支付方法
  • 下一篇:详解微信支付开发交易通知实例代码