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

互联网 17-3-27
微信公众平台服务号开放了自定义菜单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;          }      }  }

复制代码 代码如下:

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#开发公众平台自定义菜单功能实例代码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:详解Java通过JsApi方式实现微信支付方法

相关资讯