手机
当前位置:查字典教程网 >编程开发 >C#教程 >使用c#开发公众平台自定义菜单功能
使用c#开发公众平台自定义菜单功能
摘要:复制代码代码如下:test复制代码代码如下:usingSystem;usingSystem.Collections;usingSystem....

复制代码 代码如下:

<%@ 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">

<div>

<asp:Literal ID="lt_msg" runat="server" ></asp:Literal>

</div>

</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 = "{" + "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 = ""; //微信里面开发者模式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#开发公众平台自定义菜单功能】相关文章:

使用@符号让C#中的保留字做变量名的方法详解

C#控制台带参数程序源码编写实例讲解

c# 自定义泛型链表类的详解

C#中使用反射获取结构体实例及思路

C#.NET字符串比较中忽略符号的方法

c#开发的程序安装时动态指定windows服务名称

浅谈Java与C#的一些细微差别

C# zxing二维码写入的实例代码

你是不是这样写异常处理代码的呢?

深入理解C#中常见的委托

精品推荐
分类导航