使用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; } }}
复制代码 代码如下: 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中文网其它相关文章! |