一、菜单定义

先看个直观的图,菜单在公众号的底部,当一个公众号没有设置菜单时是看不到的,设置之后就是下面的样子。

注意事项:

  1. 自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
  2. 一级菜单最多4个汉字,二级菜单最多8个汉字,多出来的部分将会以“...”代替。
  3. 创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。​

自定义菜单接口可实现多种类型按钮,如下:

  1. click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;
  2. view:跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。
  3. scancode_push:扫码推事件用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。
  4. scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。
  5. pic_sysphoto:弹出系统拍照发图用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。
  6. pic_photo_or_album:弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。
  7. pic_weixin:弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。
  8. location_select:弹出地理位置选择器用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。
  9. media_id:下发消息(除文本消息)用户点击media_id类型按钮后,微信服务器会将开发者填写的永久素材id对应的素材下发给用户,永久素材类型可以是图片、音频、视频 、图文消息。请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。
  10. view_limited:跳转图文消息URL用户点击view_limited类型按钮后,微信客户端将打开开发者在按钮中填写的永久素材id对应的图文消息URL,永久素材类型只支持图文消息。请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。
  11. article_id:用户点击 article_id 类型按钮后,微信客户端将会以卡片形式,下发开发者在按钮中填写的图文消息
  12. article_view_limited:类似 view_limited,但不使用 media_id 而使用 article_id

3到8的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。9~12,是专门给第三方平台旗下未微信认证(具体而言,是资质认证未通过)的订阅号准备的事件类型,它们是没有事件推送的,能力相对受限,其他类型的公众号不必使用。

二、接口请求方式

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

一般最常用的是click和view事件,本篇只给出这两种事件的实现。

三、代码实现

虽然代码有点长有点冗余,但是一次性可以配三个一级菜单、15个子菜单,一劳永逸。

还是那句话,本系列文章重在讲解业务逻辑,没有复杂的架构设计,后期会出架构版本系列文章。

SetMenu.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="SetMenu.aspx.cs" Inherits="Jjlm.SetMenu" %><!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>微信公众号菜单设置</title><!-- Bootstrap核心css文件 --><link href="../css/bootstrap.css" rel="stylesheet">
</head><body bgcolor=#DCDCDC><div class="container"><form id="form1" runat="server"><div align="center"><asp:Label id="lblAC" runat="server" align="center" visible="false"/></div><table class="table table-bordered table-striped table-hover table-condensed"><tr><td width="50%"align="center" colspan="2"><font size="3px" color="green">主菜单设置</font></td><td width="50%"align="center" colspan="2"><font size="3px" color="green">子菜单设置</font></td></tr><tr><td rowspan="5"><font size="3px" color="green">主菜单1类型:</font><br/><font size="3px" color="green">主菜单1名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td rowspan="5">  <asp:DropDownList runat="server" ID="ddCDLX1"><asp:ListItem Value="父节点">父节点</asp:ListItem><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxCN1" runat="server" align="center" /><br/><asp:TextBox id="TbxKOU1" runat="server" align="center" /></td> <td width="30%"><font size="3px" color="green">子菜单1类型:</font><br/><font size="3px" color="green">子菜单1名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD11LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC11N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ11KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单2类型:</font><br/><font size="3px" color="green">子菜单2名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD12LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC12N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ12KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单3类型:</font><br/><font size="3px" color="green">子菜单3名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD13LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC13N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ13KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单4类型:</font><br/><font size="3px" color="green">子菜单4名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD14LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC14N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ14KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单5类型:</font><br/><font size="3px" color="green">子菜单5名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD15LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC15N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ15KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td rowspan="5"><font size="3px" color="green">主菜单2类型:</font><br/><font size="3px" color="green">主菜单2名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td rowspan="5">  <asp:DropDownList runat="server" ID="ddCDLX2"><asp:ListItem Value="父节点">父节点</asp:ListItem><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxCN2" runat="server" align="center" /><br/><asp:TextBox id="TbxKOU2" runat="server" align="center" /></td> <td width="30%"><font size="3px" color="green">子菜单1类型:</font><br/><font size="3px" color="green">子菜单1名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD21LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC21N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ21KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单2类型:</font><br/><font size="3px" color="green">子菜单2名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD22LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC22N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ22KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单3类型:</font><br/><font size="3px" color="green">子菜单3名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD23LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC23N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ23KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单4类型:</font><br/><font size="3px" color="green">子菜单4名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"> <asp:DropDownList runat="server" ID="ddZCD24LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC24N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ24KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单5类型:</font><br/><font size="3px" color="green">子菜单5名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td width="70%"> <asp:DropDownList runat="server" ID="ddZCD25LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC25N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ25KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td rowspan="5"><font size="3px" color="green">主菜单3类型:</font><br/><font size="3px" color="green">主菜单3名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td rowspan="5">  <asp:DropDownList runat="server" ID="ddCDLX3"><asp:ListItem Value="父节点">父节点</asp:ListItem><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxCN3" runat="server" align="center" /><br/><asp:TextBox id="TbxKOU3" runat="server" align="center" /></td> <td width="30%"><font size="3px" color="green">子菜单1类型:</font><br/><font size="3px" color="green">子菜单1名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD31LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC31N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ31KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单2类型:</font><br/><font size="3px" color="green">子菜单2名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD32LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC32N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ32KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单3类型:</font><br/><font size="3px" color="green">子菜单3名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD33LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC33N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ33KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单4类型:</font><br/><font size="3px" color="green">子菜单4名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font><br/></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD34LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC34N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ34KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td width="30%"><font size="3px" color="green">子菜单5类型:</font><br/><font size="3px" color="green">子菜单5名称:</font><br/><font size="3px" color="green">EventKey或者URL:</font></td> <td width="70%"><asp:DropDownList runat="server" ID="ddZCD35LX"><asp:ListItem Value="click">click</asp:ListItem><asp:ListItem Value="view">view</asp:ListItem></asp:DropDownList><br/><asp:TextBox id="TbxZC35N" runat="server" align="center" width="100%"/><br/><asp:TextBox id="TbxZ35KOU" runat="server" align="center" width="100%"/><br/></td></tr><tr><td colspan="4" align="center"><asp:Button ID="btnjson" Runat="server" OnClick="json" Text="生成json发送并返回结果" Visible=true></asp:Button></td></tr></table></form><!-- jQuery (necessary for Bootstrap's JavaScript plugins) --><script src="../js/jquery.min.js"></script><!-- Include all compiled plugins (below), or include individual files as needed --><script src="../js/bootstrap.min.js"></script>
</div></body></html>

SetMenu.aspx.cs

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;
using System.IO;
using System.Text;
using System.Collections.Generic;
using System.Net;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using QinMing.Config;
using QinMing.WeixinContainer;namespace Jjlm
{public partial class SetMenu : System.Web.UI.Page{string strConn = QinMingConfig.DatabaseConnStr;protected void Page_Load(object sender, EventArgs e){if(!Page.IsPostBack){//从数据表中读取最近一次菜单配置信息SqlConnection Conn = new SqlConnection(strConn);Conn.Open();SqlCommand Comm = new SqlCommand();Comm.Connection = Conn;SqlDataReader dr;Comm.CommandText="select * from weixin_menu where caidan_id='1' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxCN1.Text=dr["caidan_name"].ToString();TbxKOU1.Text=dr["lu_or_ek"].ToString();ddCDLX1.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='11' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC11N.Text=dr["caidan_name"].ToString();TbxZ11KOU.Text=dr["lu_or_ek"].ToString();ddZCD11LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='12' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC12N.Text=dr["caidan_name"].ToString();TbxZ12KOU.Text=dr["lu_or_ek"].ToString();ddZCD12LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='13' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC13N.Text=dr["caidan_name"].ToString();TbxZ13KOU.Text=dr["lu_or_ek"].ToString();ddZCD13LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='14' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC14N.Text=dr["caidan_name"].ToString();TbxZ14KOU.Text=dr["lu_or_ek"].ToString();ddZCD14LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='15' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC15N.Text=dr["caidan_name"].ToString();TbxZ15KOU.Text=dr["lu_or_ek"].ToString();ddZCD15LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='2' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxCN2.Text=dr["caidan_name"].ToString();TbxKOU2.Text=dr["lu_or_ek"].ToString();ddCDLX2.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='21' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC21N.Text=dr["caidan_name"].ToString();TbxZ21KOU.Text=dr["lu_or_ek"].ToString();ddZCD21LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='22' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC22N.Text=dr["caidan_name"].ToString();TbxZ22KOU.Text=dr["lu_or_ek"].ToString();ddZCD22LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='23' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC23N.Text=dr["caidan_name"].ToString();TbxZ23KOU.Text=dr["lu_or_ek"].ToString();ddZCD23LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='24' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC24N.Text=dr["caidan_name"].ToString();TbxZ24KOU.Text=dr["lu_or_ek"].ToString();ddZCD24LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='25' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC25N.Text=dr["caidan_name"].ToString();TbxZ25KOU.Text=dr["lu_or_ek"].ToString();ddZCD25LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='3' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxCN3.Text=dr["caidan_name"].ToString();TbxKOU3.Text=dr["lu_or_ek"].ToString();ddCDLX3.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='31' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC31N.Text=dr["caidan_name"].ToString();TbxZ31KOU.Text=dr["lu_or_ek"].ToString();ddZCD31LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='32' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC32N.Text=dr["caidan_name"].ToString();TbxZ32KOU.Text=dr["lu_or_ek"].ToString();ddZCD32LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='33' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC33N.Text=dr["caidan_name"].ToString();TbxZ33KOU.Text=dr["lu_or_ek"].ToString();ddZCD33LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='34' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC34N.Text=dr["caidan_name"].ToString();TbxZ34KOU.Text=dr["lu_or_ek"].ToString();ddZCD34LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Comm.CommandText="select * from weixin_menu where caidan_id='35' and isuse='0'";dr=Comm.ExecuteReader();if(dr.Read()){TbxZC35N.Text=dr["caidan_name"].ToString();TbxZ35KOU.Text=dr["lu_or_ek"].ToString();ddZCD35LX.Items.FindByText(dr["caidan_type"].ToString()).Selected=true;}dr.Close();Conn.Close();Conn.Dispose();}}//获取基础access_tokenpublic void  GetToken(){QinMingWeixinContainer gt = new QinMingWeixinContainer();lblAC.Text = gt.GetAccessToken();lblAC.Visible = true;}//向微信服务器发起post请求,json格式public string GetPage(string posturl, string postData){Stream outstream = null;Stream instream = null;StreamReader sr = null;HttpWebResponse response = null;HttpWebRequest request = null;Encoding encoding = Encoding.UTF8;byte[] data = encoding.GetBytes(postData);// 准备请求...try{// 设置参数request = WebRequest.Create(posturl) as HttpWebRequest;CookieContainer cookieContainer = new CookieContainer();request.CookieContainer = cookieContainer;request.AllowAutoRedirect = true;request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded";request.ContentLength = data.Length;outstream = request.GetRequestStream();outstream.Write(data, 0, data.Length);outstream.Close();//发送请求并获取相应回应数据response = request.GetResponse() as HttpWebResponse;//直到request.GetResponse()程序才开始向目标网页发送Post请求instream = response.GetResponseStream();sr = new StreamReader(instream, encoding);//返回结果网页(html)代码string content = sr.ReadToEnd();string err = string.Empty;return content;}catch (Exception ex){string err = ex.Message;Response.Write(err);return string.Empty;}}//设置菜单,构建json格式数据public void json(object sencer,EventArgs e){//防sql注入判断,可用参数法代替if(QinMing.Tools.QinMingTools.IsHasSQLInject(TbxCN1.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(ddCDLX1.SelectedItem.Value) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxKOU1.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC11N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ11KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC12N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ12KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC13N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ13KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC14N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ14KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC15N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ15KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxCN2.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(ddCDLX2.SelectedItem.Value)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxKOU2.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC21N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ21KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC22N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ22KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC23N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ23KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC24N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ24KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC25N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ25KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxCN3.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(ddCDLX3.SelectedItem.Value)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxKOU3.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC31N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ31KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC32N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ32KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC33N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ33KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC34N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ34KOU.Text)|| QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZC35N.Text) || QinMing.Tools.QinMingTools.IsHasSQLInject(TbxZ35KOU.Text)){Response.Write("请勿非法尝试!");Response.End();}GetToken();string weixin1="";weixin1 += "{\n";weixin1 += "\"button\":[\n";if(ddCDLX1.SelectedItem.Value=="click"){weixin1 += "{\n";weixin1 += "\"name\":\""+ TbxCN1.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX1.SelectedItem.Value +"\",\n";weixin1 += "\"key\":\""+ TbxKOU1.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX1.SelectedItem.Value=="view"){weixin1 += "{\n";weixin1 += "\"name\":\""+ TbxCN1.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX1.SelectedItem.Value +"\",\n";weixin1 += "\"url\":\""+ TbxKOU1.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX1.SelectedItem.Value=="父节点"){weixin1 += "{\n";weixin1 += "\"name\":\""+ TbxCN1.Text +" \",\n";weixin1 += "\"sub_button\":[\n";if(TbxZC11N.Text!=""&&TbxZ11KOU.Text!=""){if(ddZCD11LX.SelectedItem.Value=="click"){weixin1 += "{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC11N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ11KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD11LX.SelectedItem.Value=="view"){weixin1 += "{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC11N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ11KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC12N.Text!=""&&TbxZ12KOU.Text!=""){if(ddZCD12LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC12N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ12KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD12LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC12N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ12KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC13N.Text!=""&&TbxZ13KOU.Text!=""){if(ddZCD13LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC13N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ13KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD13LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC13N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ13KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC14N.Text!=""&&TbxZ14KOU.Text!=""){if(ddZCD14LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC14N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ14KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD14LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC14N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ14KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC15N.Text!=""&&TbxZ15KOU.Text!=""){if(ddZCD15LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC15N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ15KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD15LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC15N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ15KOU.Text +"\"\n";weixin1 += "}\n";}}weixin1 += "]\n";weixin1 += "}\n";}if(ddCDLX2.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN2.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX2.SelectedItem.Value +"\",\n";weixin1 += "\"key\":\""+ TbxKOU2.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX2.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN2.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX2.SelectedItem.Value +"\",\n";weixin1 += "\"url\":\""+ TbxKOU2.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX2.SelectedItem.Value=="父节点"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN2.Text +" \",\n";weixin1 += "\"sub_button\":[\n";if(TbxZC21N.Text!=""&&TbxZ21KOU.Text!=""){if(ddZCD21LX.SelectedItem.Value=="click"){weixin1 += "{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC21N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ21KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD21LX.SelectedItem.Value=="view"){weixin1 += "{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC21N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ21KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC22N.Text!=""&&TbxZ22KOU.Text!=""){if(ddZCD22LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC22N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ22KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD22LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC22N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ22KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC23N.Text!=""&&TbxZ23KOU.Text!=""){if(ddZCD23LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC23N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ23KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD23LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC23N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ23KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC24N.Text!=""&&TbxZ24KOU.Text!=""){if(ddZCD24LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC24N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ24KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD24LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC24N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ24KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC25N.Text!=""&&TbxZ25KOU.Text!=""){if(ddZCD25LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC25N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ25KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD25LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC25N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ25KOU.Text +"\"\n";weixin1 += "}\n";}}weixin1 += "]\n";weixin1 += "}\n";}if(ddCDLX3.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN3.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX3.SelectedItem.Value +"\",\n";weixin1 += "\"key\":\""+ TbxKOU3.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX3.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN3.Text +" \",\n";weixin1 += "\"type\":\""+ ddCDLX3.SelectedItem.Value +"\",\n";weixin1 += "\"url\":\""+ TbxKOU3.Text +"\"\n";weixin1 += "}\n";}if(ddCDLX3.SelectedItem.Value=="父节点"){weixin1 += ",{\n";weixin1 += "\"name\":\""+ TbxCN3.Text +" \",\n";weixin1 += "\"sub_button\":[\n";if(TbxZC31N.Text!=""&&TbxZ31KOU.Text!=""){if(ddZCD31LX.SelectedItem.Value=="click"){weixin1 += "{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC31N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ31KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD31LX.SelectedItem.Value=="view"){weixin1 += "{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC31N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ31KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC32N.Text!=""&&TbxZ32KOU.Text!=""){if(ddZCD32LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC32N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ32KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD32LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC32N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ32KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC33N.Text!=""&&TbxZ33KOU.Text!=""){if(ddZCD33LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC33N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ33KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD33LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC33N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ33KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC34N.Text!=""&&TbxZ34KOU.Text!=""){if(ddZCD34LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC34N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ34KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD34LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC34N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ34KOU.Text +"\"\n";weixin1 += "}\n";}}if(TbxZC35N.Text!=""&&TbxZ35KOU.Text!=""){if(ddZCD35LX.SelectedItem.Value=="click"){weixin1 += ",{\n";weixin1 += "\"type\":\"click\",\n";weixin1 += "\"name\":\""+ TbxZC35N.Text +"\",\n";weixin1 += "\"key\":\""+ TbxZ35KOU.Text +"\"\n";weixin1 += "}\n";}if(ddZCD35LX.SelectedItem.Value=="view"){weixin1 += ",{\n";weixin1 += "\"type\":\"view\",\n";weixin1 += "\"name\":\""+ TbxZC35N.Text +"\",\n";weixin1 += "\"url\":\""+ TbxZ35KOU.Text +"\"\n";weixin1 += "}\n";}}weixin1 += "]\n";weixin1 += "}\n";}weixin1 += "]\n";weixin1 += "}\n";string i = GetPage("https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+lblAC.Text+"", weixin1);lblAC.Text += i;lblAC.Text += weixin1;lblAC.Visible = true;SqlConnection Conn = new SqlConnection(strConn);Conn.Open();SqlCommand Comm = new SqlCommand();Comm.Connection = Conn;Comm.CommandText="update weixin_menu set isuse='1' where isuse='0'";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('1','"+ TbxCN1.Text +"','"+ ddCDLX1.SelectedItem.Value +"','','1','"+ TbxKOU1.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('11','"+ TbxZC11N.Text +"','"+ ddZCD11LX.SelectedItem.Value +"','1','2','"+ TbxZ11KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('12','"+ TbxZC12N.Text +"','"+ ddZCD12LX.SelectedItem.Value +"','1','2','"+ TbxZ12KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('13','"+ TbxZC13N.Text +"','"+ ddZCD13LX.SelectedItem.Value +"','1','2','"+ TbxZ13KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('14','"+ TbxZC14N.Text +"','"+ ddZCD14LX.SelectedItem.Value +"','1','2','"+ TbxZ14KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('15','"+ TbxZC15N.Text +"','"+ ddZCD15LX.SelectedItem.Value +"','1','2','"+ TbxZ15KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('2','"+ TbxCN2.Text +"','"+ ddCDLX2.SelectedItem.Value +"','','1','"+ TbxKOU2.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('21','"+ TbxZC21N.Text +"','"+ ddZCD21LX.SelectedItem.Value +"','2','2','"+ TbxZ21KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('22','"+ TbxZC22N.Text +"','"+ ddZCD22LX.SelectedItem.Value +"','2','2','"+ TbxZ22KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('23','"+ TbxZC23N.Text +"','"+ ddZCD23LX.SelectedItem.Value +"','2','2','"+ TbxZ23KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('24','"+ TbxZC24N.Text +"','"+ ddZCD24LX.SelectedItem.Value +"','2','2','"+ TbxZ24KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('25','"+ TbxZC25N.Text +"','"+ ddZCD25LX.SelectedItem.Value +"','2','2','"+ TbxZ25KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('3','"+ TbxCN3.Text +"','"+ ddCDLX3.SelectedItem.Value +"','','1','"+ TbxKOU3.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('31','"+ TbxZC31N.Text +"','"+ ddZCD31LX.SelectedItem.Value +"','3','2','"+ TbxZ31KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('32','"+ TbxZC32N.Text +"','"+ ddZCD32LX.SelectedItem.Value +"','3','2','"+ TbxZ32KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('33','"+ TbxZC33N.Text +"','"+ ddZCD33LX.SelectedItem.Value +"','3','2','"+ TbxZ33KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('34','"+ TbxZC34N.Text +"','"+ ddZCD34LX.SelectedItem.Value +"','3','2','"+ TbxZ34KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Comm.CommandText="insert into weixin_menu(caidan_id,caidan_name,caidan_type,parentid,index_level,lu_or_ek,createtime,isuse)"+"values('35','"+ TbxZC35N.Text +"','"+ ddZCD35LX.SelectedItem.Value +"','3','2','"+ TbxZ35KOU.Text +"',getdate(),'0')";Comm.ExecuteScalar();Conn.Close();Conn.Dispose();}}
}

上面用到了外部类Newtonsoft,请自行到网上下载.dll类文件后放在Bin目录中。

配置页面样式如下:

所用数据库表建表语句为:

--公众号菜单设置表
CREATE TABLE weixin_menu
(caidan_id int,               --菜单idcaidan_name nvarchar(20),    --菜单名称caidan_type nvarchar(10),    --菜单类型parentid int,                --父菜单idindex_level int,             --层级水平lu_or_ek nvarchar(500),      --菜单所转向的链接createtime datetime,         --创建时间isuse int                    --是否在用,0为在用,1为失效
) 

实例:用C#.NET手把手教你做微信公众号开发(9)--菜单设置相关推荐

  1. 实例:用C#.NET手把手教你做微信公众号开发(20)--使用微信支付线上收款:jsapi方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下jsapi支付,场景就是在微信内打开某个页面,完成在线支付,同样一个网页,使用微信打开就是js ...

  2. 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式

    在做线上.线下销售时,可以使用微信便捷支付,通过微信公众号收款有很多种收款方式,如下图: 今天我们来讲一下H5场景支付,使用手机浏览器打开就是H5方式,最常见的推广是短信内置链接,这种场景需要调用微信 ...

  3. 实例:用C#.NET手把手教你做微信公众号开发(22)--网页里通过OAuth获取用户openid

    第一篇:理论 如果一个用户并未关注某个公众号,只是在微信内打开了公众号web服务器上的某个网页,要如何获取用户的openid以及用户的微信信息,以便实现业务逻辑呢?本篇讲述网页授权OAuth获取微信用 ...

  4. 实例:用C#.NET手把手教你做微信公众号开发(3)--普通消息处理之图片

    本着简短.便于理解应用的原则,本系列文章每次只讲一个公众号知识点,给出一个应用实例,通过一个知识点帮助你掌握公众号一类应用的开发方法. 上一篇我们掌握了微信客户端.微信服务器.你的服务器之间的信息互动 ...

  5. 实例:用C#.NET手把手教你做微信公众号开发(19)--使用微信支付转账到微信粉丝零钱账户

    公众号给微信用户支付费用的方式有很多种,最常用的是发红包和转账到零钱账户,上一篇文章详细讲解了使用发红包的过程,从公众号内的配置,到微信支付的配置,再到具体的类实现. 本篇主要讲解转账到零钱,具体的类 ...

  6. 实例:用C#.NET手把手教你做微信公众号开发(13)--事件消息处理之取消关注

    一.取消关注事件 用户在取消关注公众号时,微信会把这个事件推送到开发者填写的URL,方便开发者做帐号的解绑等处理. <xml><ToUserName><![CDATA[t ...

  7. 实例:用C#.NET手把手教你做微信公众号开发(12)--带参数二维码裂变推广

    为什么能裂变推广是营销学和心理学的范畴了,这里举个简单的例子来介绍.公众号有足以吸引粉丝的地方,要么是知识.要么是优惠.要么是服务,反正不同于其他人,能够吸引人关注:有了这个前提,怎么让更多的人知道这 ...

  8. 实例:用C#.NET手把手教你做微信公众号开发(11)--生成带参数二维码

    上一篇讲了普通关注的各种情景,接下来准备详细讲解带参数的二维码的应用实例.在下一篇详解之前,这里先介绍一下如何下载二维码.生成二维码表,为后续的应用做好准备. 为了满足用户渠道推广分析和用户帐号绑定等 ...

  9. 实例:用C#.NET手把手教你做微信公众号开发(10)--事件消息处理之关注公众号(普通关注)

    一.事件消息种类 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到开发者在开发者中心处设置的服务器地址,从而开发者可以获取到该信息.其中,某些事件推送在发生后 ...

  10. 实例:用C#.NET手把手教你做微信公众号开发(6)--普通消息处理之视频、小视频

    本篇讲解微信客户端向公众号发送视频和小视频的处理方式. 视频消息常见应用: 在线教学: 基于公众号的定向类型小视频应用,类似于抖音.快手,但不用再安装app: 视频剪辑.特效添加,比如美颜: 其它视频 ...

最新文章

  1. c# BinaryFormatter 更换了命名空间反序列化遇到的问题
  2. Asp.net Web API 返回Json对象的两种方式
  3. AngularJs 键盘事件和鼠标事件
  4. mysql 存储过程与函数_12 MySQL存储过程与函数
  5. python条码识别
  6. redis单线程为何快
  7. 周鸿祎告诫员工:勿盲目把360看成巨头 不四处出击!
  8. 创建ros的程序包--3
  9. SequenceFile文件的读取
  10. [2077]迷障 sdutOJ
  11. 华为交换机配置链路聚合实验——Eth Trunk
  12. (保姆级)Oracle的下载及安装详细教程
  13. 两向量叉乘的计算公式_高中数学知识背景下对向量叉乘运算的探讨(向东来)
  14. BitComet的简介与下载
  15. DEM+谷歌地球取点工具获取场地地形矢量数据
  16. 高德天气 php,高德开放平台天气查询API
  17. VR垃圾分类游戏的“入门”场景|广州华锐互动
  18. 文秘类计算机,文秘类包括哪些专业
  19. 创新商用沟通协作方式,科天云发布协作云开放平台
  20. CS231n 之 BACK PROPAGATION

热门文章

  1. myeclipse打war包
  2. 怎么将前端项目打成war包
  3. 昨夜,路遇真正的武林高手
  4. 什么叫直流电?交流电?正弦电流?非正弦电流?脉动电流?
  5. android 仿qq群头像,Android仿微信和QQ多图合并框架(类似群头像)的实现方法
  6. 智能家居(8) —— 香橙派摄像头加入设备工厂
  7. mac 版本Jmeter安装教程
  8. 拼助理/拼管家小程序无法查砍价记录了怎么办?
  9. 在GNOME桌面上创建应用程序快捷方式
  10. JVM详解【三】JVM的内存结构