首頁 後端開發 C#.Net教程 ASP.NET微信公眾號之用戶分組管理web頁面

ASP.NET微信公眾號之用戶分組管理web頁面

Dec 20, 2016 pm 01:34 PM
微信公眾號

本文實例為大家分享了ASP.NET微信用戶分組管理的具體程式碼,供大家參考,具體內容如下

Model層實體類別:

public class UserList
{
public string total { get; set; }
public string count { get; set; }
public userlistopenid data { get; set; }
public string next_openid { get; set; }
}
 
public class userlistopenid
{
public List<string> openid { get; set; }
}
登入後複製
public class WxGroupsInfo
{
public string Group_ID { get; set; }//分组编号
public string Group_Name { get; set; }//分组名称
public string Group_Count { get; set; }//分组人数
}
登入後複製

WX.aspx內容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WX.aspx.cs" Inherits="test.WX" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <style type="text/css">
 .inputstyle {
 height: 35px;
 line-height: 35px;
 text-indent: 5px;
 width: 350px;
 background-image: url(&#39;images/inputbg.gif&#39;);
 background-repeat: repeat-x;
 border-top: solid 1px #a7b5bc;
 border-left: solid 1px #a7b5bc;
 border-right: solid 1px #ced9df;
 border-bottom: solid 1px #ced9df;
 margin: 15px auto 15px auto;
 }
 
 
 .g_title {
 width: 100%;
 border-bottom: 2px solid #ced9df;
 font-size: 20px;
 font-weight: bold;
 text-align: left;
 text-indent: 5px;
 height: 40px;
 line-height: 40px;
 }
 
 th {
 height: 35px;
 background-color: #31bb34;
 background-repeat: repeat-x;
 }
 
 tr { height: 30px; }
 
 #shownewgroup {
 width: 300px;
 height: 200px;
 background-color: white;
 z-index: 9999;
 border: 2px solid #DDD;
 top: 40%;
 left: 40%;
 background-color: #fff;
 position: fixed;
 margin: -100px auto auto -100px;
 display: none;
 }
 
 #shownewgroupzhezhaoceng {
 height: 200%;
 width: 200%;
 left: 0px;
 top: 0px;
 position: fixed;
 z-index: 9998;
 background: rgb(50, 50, 50);
 background: rgba(0, 0, 0, 0.5);
 display: none;
 }
 
 .closeLogin {
 height: 30px;
 border-bottom: 2px solid #31bb34;
 text-align: right;
 line-height: 30px;
 font-size: 14px;
 font-weight: bold;
 }
 
 a:hover { cursor: pointer; }
 
 .inputstyle22 {
 height: 35px;
 line-height: 35px;
 text-indent: 5px;
 width: 280px;
 background-image: url(&#39;images/inputbg.gif&#39;);
 background-repeat: repeat-x;
 border-top: solid 1px #a7b5bc;
 border-left: solid 1px #a7b5bc;
 border-right: solid 1px #ced9df;
 border-bottom: solid 1px #ced9df;
 float: left;
 margin: auto 5px auto 5px;
 }
 
 
 </style>
 
 <style type="text/css">
 
 .button {
 font: 15px Calibri, Arial, sans-serif; 
 text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.4);
 
 text-decoration: none !important;
 white-space: nowrap;
 
 display: inline-block;
 vertical-align: baseline;
 position: relative;
 cursor: pointer;
 padding: 4px 20px;
 
 background-repeat: no-repeat; 
 background-position: bottom left;
 background-image: url(&#39;button_bg.png&#39;);
 
 background-position: bottom left, top right, 0 0, 0 0;
 background-clip: border-box;
 
 -moz-border-radius: 8px;
 -webkit-border-radius: 8px;
 border-radius: 8px;
 
 -moz-box-shadow: 0 0 1px #fff inset;
 -webkit-box-shadow: 0 0 1px #fff inset;
 box-shadow: 0 0 1px #fff inset;
 
 -webkit-transition: background-position 1s;
 -moz-transition: background-position 1s;
 transition: background-position 1s;
 }
 
 
 .blue.button {
 color: #0f4b6d !important;
 
 border: 1px solid #84acc3 !important;
 
 background-color: #48b5f2;
 
 background-image: url(&#39;button_bg.png&#39;), url(&#39;button_bg.png&#39;),
   -moz-radial-gradient(center bottom, circle,
    rgba(89, 208, 244, 1) 0, rgba(89, 208, 244, 0) 100px),
   -moz-linear-gradient(#4fbbf7, #3faeeb);
 
 background-image: url(&#39;button_bg.png&#39;), url(&#39;button_bg.png&#39;),
   -webkit-gradient(radial, 50% 100%, 0, 50% 100%, 100,
    from(rgba(89, 208, 244, 1)), to(rgba(89, 208, 244, 0))),
   -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4fbbf7), to(#3faeeb));
 }
 
 .blue.button:hover {
 background-color: #63c7fe;
 
 background-image: url(&#39;button_bg.png&#39;), url(&#39;button_bg.png&#39;),
   -moz-radial-gradient(center bottom, circle,
    rgba(109, 217, 250, 1) 0, rgba(109, 217, 250, 0) 100px),
   -moz-linear-gradient(#63c7fe, #58bef7);
 
 background-image: url(&#39;button_bg.png&#39;), url(&#39;button_bg.png&#39;),
   -webkit-gradient(radial, 50% 100%, 0, 50% 100%, 100,
    from(rgba(109, 217, 250, 1)), to(rgba(109, 217, 250, 0))),
   -webkit-gradient(linear, 0% 0%, 0% 100%, from(#63c7fe), to(#58bef7));
 }
 
 
 </style>
 <script src="js/jquery-1.11.2.min.js"></script>
 <script type="text/javascript">
 
 //修改分组名称调用的函数
 function EditRoster(PayNo, name) {
 
 //alert(PayNo+":"+name);
 var url = &#39;Edit.aspx?id=&#39; + PayNo + "&name=" + name; //转向网页的地址; 
 var name = &#39;add&#39;; //网页名称,可为空; 
 var iWidth = 600; //弹出窗口的宽度; 
 var iHeight = 300; //弹出窗口的高度; 
 //获得窗口的垂直位置 
 var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
 //获得窗口的水平位置 
 var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
 window.open(url, name, &#39;height=&#39; + iHeight + &#39;,innerHeight=&#39; + iHeight + &#39;,width=&#39; + iWidth + &#39;,innerWidth=&#39; + iWidth + &#39;,top=&#39; + iTop + &#39;,left=&#39; + iLeft + &#39;,status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no&#39;);
 }
 
 $(document).ready(function() {
 
 $(".newGroups").click(function() {
  $("#shownewgroupzhezhaoceng").show();
  $("#shownewgroup").show();
  }),
  $(&#39;.closeloginpage&#39;).click(function() {
  $("#shownewgroupzhezhaoceng").hide();
  $("#shownewgroup").hide();
  });
 });
 </script>
 </head>
 <body>
 <form id="form1" runat="server">
 <div class="g_title">分组管理</div>
 <div id="shownewgroup">
 <div class="closeLogin">
  <span style="float: left; color: #08a5e0; font-size: 18px; text-indent: 5px;">新建分组</span>
  <a class="closeloginpage button blue ">
  关闭
  </a>
 </div>
 <div style="font-size: 12px; height: 40px; color: red; line-height: 40px;">
  30字符以内
 
 </div>
 <input type="text" id="txtgroupsName" name="txtgroupsName" class="inputstyle22" maxlength="30" runat="server" value="分组名称" onfocus="if(value==defaultValue){value=&#39;&#39;;this.style.color=&#39;#000&#39;}" onblur="if(!value){value=defaultValue;this.style.color=&#39;#999&#39;}" style="color: #999"/>
 <asp:LinkButton ID="LinkBtnCreateGroup" runat="server" OnClick="LinkBtnCreateGroup_Click">
  <div style="background-image: url(&#39;images/buttonbg.png&#39;); width: 111px; height: 35px; line-height: 35px; font-weight: bold; float: left; margin-top: 20px; margin-left: 5px; text-align: center; color: #fff;">
  确定创建
  </div>
 
 </asp:LinkButton>
 </div>
 <div id="shownewgroupzhezhaoceng"></div>
 <table style="width: 1124px; margin: 10px auto 10px auto; border: 1px solid #ecd9df; text-align: center;">
 <asp:Repeater ID="RepeaterGroupList" runat="server" OnItemCommand="RepeaterGroupList_ItemCommand" OnItemDataBound="RepeaterGroupList_ItemDataBound">
  <HeaderTemplate>
  <tr>
  <th>序号</th>
  <th>ID编号</th>
  <th>分组名称</th>
  <th>分组人数</th>
  <th>操作</th>
  </tr>
  </HeaderTemplate>
  <ItemTemplate>
  <tr style=&#39;background-color: <%#(Container.ItemIndex%2 == 0) ? "#fff" : "#ced9ff" %>&#39;>
  <td><asp:Label ID="lbXuHao" runat="server" Text=""></asp:Label></td>
  <td><%# Eval("Group_ID") %></td>
  <td><%# Eval("Group_Name") %></td>
  <td><%# Eval("Group_Count") %></td>
  <td>
  <a class="button blue" onclick=" EditRoster(&#39;<%# Eval("Group_ID") %>&#39;, &#39;<%# Eval("Group_Name") %>&#39;); ">修改分组名称</a>
  <asp:LinkButton ID="LinkBtnDeleteGroup" runat="server" CommandName="DeleteGroups" CommandArgument=&#39;<%# Eval("Group_ID") %>&#39; CssClass="button blue">删除分组</asp:LinkButton>
 
  <asp:LinkButton ID="LinkBtnSendByGroup" runat="server" CommandName="SendByGroups" CommandArgument=&#39;<%# Eval("Group_ID") %>&#39; CssClass="button blue">此分组消息群发</asp:LinkButton>
 
  <asp:LinkButton ID="LinkBtnMoveUserToGroup" runat="server" CommandName="MoveUserToGroup" CommandArgument=&#39;<%# Eval("Group_ID") %>&#39; CssClass="button blue">移动分组</asp:LinkButton>
  </td>
  </tr>
  </ItemTemplate>
 </asp:Repeater>
 </table>
 <a class="newGroups"><div style="background-image: url(&#39;images/buttonbg.png&#39;); width: 111px; height: 35px; line-height: 35px; margin: 10px auto 10px 28px; font-weight: bold; float: left; text-align: center; color: #fff;"> ┼ 新建分组</div></a>
 </form>
 </body>
</html>
登入後複製

WX.aspx.cscs:

public partial class WX : System.Web.UI.Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
 BindGroupList();
 this.DataBind();
 }
 
 
 private void BindGroupList()
 {
 WeiXinServer wxs = new WeiXinServer();
 
 //从缓存读取accesstoken
 string Access_token = Cache["Access_token"] as string;
 
 if (Access_token == null)
 {
 //如果为空,重新获取
 Access_token = wxs.GetAccessToken();
 //设置缓存的数据7000秒后过期
 Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),
  System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 
 string jsonres = "";
 
 string content = Cache["AllGroups_content"] as string;
 
 if (content == null)
 {
 jsonres = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=" + Access_tokento;
 
 HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create(jsonres);
 myRequest.Method = "GET";
 HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse();
 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
 content = reader.ReadToEnd();
 reader.Close();
 
 //设置缓存的数据7000秒后过期
 Cache.Insert("AllGroups_content", content, null, DateTime.Now.AddSeconds(7000),
  System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 //使用前需要引用Newtonsoft.json文件
 JObject jsonObj = JObject.Parse(content);
 
 
 int groupsnum = jsonObj["groups"].Count();
 
 
 List<WxGroupsInfo> wxgrouplist = new List<WxGroupsInfo>();
 
 for (int i = 0; i < groupsnum; i++)
 {
 WxGroupsInfo wginfo = new WxGroupsInfo();
 
 wginfo.Group_ID = jsonObj["groups"][i]["id"].ToString();
 
 wginfo.Group_Name = jsonObj["groups"][i]["name"].ToString();
 
 wginfo.Group_Count = jsonObj["groups"][i]["count"].ToString();
 
 wxgrouplist.Add(wginfo);
 }
 
 this.RepeaterGroupList.DataSource = wxgrouplist;
 this.RepeaterGroupList.DataBind();
 }
 
 
 /// <summary>
 /// 绑定事件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void RepeaterGroupList_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 {
 Label lbXuHao = e.Item.FindControl("lbXuHao") as Label;
 
 int num = 1;
 
 lbXuHao.Text = num.ToString();
 
 for (int i = 0; i < this.RepeaterGroupList.Items.Count; i++)
 {
  num += 1;
  lbXuHao.Text = num.ToString();
 }
 
 
 LinkButton LinkBtnDeleteGroup = e.Item.FindControl("LinkBtnDeleteGroup") as LinkButton;
 LinkButton LinkBtnSendByGroup = e.Item.FindControl("LinkBtnSendByGroup") as LinkButton;
 
 LinkBtnDeleteGroup.Attributes.Add("OnClick", "return confirm(&#39;您确定要删除该分组?删除后该分组内的人员即将恢复到默认分组!&#39;)");
 LinkBtnDeleteGroup.Attributes.Add("OnClick", "return confirm(&#39;您确定要群发消息到该分组?&#39;)");
 }
 }
 
 /// <summary>
 /// 执行事件
 /// </summary>
 /// <param name="source"></param>
 /// <param name="e"></param>
 protected void RepeaterGroupList_ItemCommand(object source, RepeaterCommandEventArgs e)
 { 
 if (e.CommandName == "DeleteGroups")
 {
 WeiXinServer wxs = new WeiXinServer();
 string res = "";
 
 //从缓存读取accesstoken
 string Access_token = Cache["Access_token"] as string;
 
 if (Access_token == null)
 {
  //如果为空,重新获取
  Access_token = wxs.GetAccessToken();
 
  //设置缓存的数据7000秒后过期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),
  System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 
 
 string posturl = "https://api.weixin.qq.com/cgi-bin/groups/delete?access_token=" + Access_tokento;
 
 
 //POST数据例子: POST数据例子:{"group":{"id":108}}
 
 string groupid = e.CommandArgument.ToString();
 
 string postData = "{\"group\":{\"id\":\"" + groupid + "\"}}";
 
 res = wxs.GetPage(posturl, postData);
 
 ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",
  "alert(&#39;删除成功!由于缓存问题,您可能需要重新登录才能看到效果!&#39;);location=&#39;WxGroupManageList.aspx&#39;;", true);
 }
 
 if (e.CommandName == "SendByGroups")
 {
 WeiXinServer wxs = new WeiXinServer();
 string res = "";
 
 //从缓存读取accesstoken
 string Access_token = Cache["Access_token"] as string;
 
 if (Access_token == null)
 {
  //如果为空,重新获取
  Access_token = wxs.GetAccessToken();
 
  //设置缓存的数据7000秒后过期
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),
  System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 
 
 string posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=" + Access_tokento;
 
 string groupid = e.CommandArgument.ToString();
 
 //string postData = "{\"group\":{\"id\":\"" + groupid.ToString() + "\"}}";
 
 JObject postData = new JObject();
  JObject filter = new JObject();
  filter.Add("is_to_all", false);
  filter.Add("group_id", groupid);
 
  JObject text = new JObject();
  text.Add("content", "测试内容!");
 
  postData.Add("filter", filter);
  postData.Add("text", text);
  postData.Add("msgtype", "text");
 
 res = wxs.GetPage(posturl, postData.ToString());
 
 ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",
  "alert(&#39;群发成功!由于缓存问题,您可能需要重新登录才能看到效果!&#39;);location=&#39;WxGroupManageList.aspx&#39;;", true);
 }
 
 if (e.CommandName == "MoveUserToGroup")
 {
 WeiXinServer wxs = new WeiXinServer();
 string res = "";
 string Access_token = Cache["Access_token"] as string;
 
 if (Access_token == null)
 {
  Access_token = wxs.GetAccessToken();
  Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 string posturl = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=" + Access_tokento;
 
 string UserListurl = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + Access_tokento + "&next_openid=";
 
 
 //{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}
 res = wxs.GetPage(UserListurl,"");
 UserList userList= JsonConvert.DeserializeObject<UserList>(res);
 String openid=userList.data.openid.FirstOrDefault();
 int togroup_id = 101;//输入分组ID
 string postData = "{\"openid\":\"" + openid + "\",\"to_groupid\":" + togroup_id + "}";
 res = wxs.GetPage(posturl, postData);
 
 ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",
  "alert(&#39;移动分组成功!由于缓存问题,您可能需要重新登录才能看到效果!&#39;);location=&#39;WxGroupManageList.aspx&#39;;", true);
 }
 }
 
 /// <summary>
 /// 创建分组
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void LinkBtnCreateGroup_Click(object sender, EventArgs e)
 {
 if (this.txtgroupsName.Value.Equals("分组名称"))
 {
 ////
 ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;不能为空!&#39;)", true);
 this.txtgroupsName.Focus();
 return;
 }
 
 
 WeiXinServer wxs = new WeiXinServer();
 string res = "";
 
 ///从缓存读取accesstoken
 string Access_token = Cache["Access_token"] as string;
 
 if (Access_token == null)
 {
 //如果为空,重新获取
 Access_token = wxs.GetAccessToken();
 
 //设置缓存的数据7000秒后过期
 Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),
  System.Web.Caching.Cache.NoSlidingExpiration);
 }
 
 string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 
 
 string posturl = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token=" + Access_tokento;
 
 string postData = "{\"group\":{\"name\":\"" + this.txtgroupsName.Value.ToString().Trim() + "\"}}"; 
 res = wxs.GetPage(posturl, postData); 
 ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",
 "alert(&#39;创建成功!如未显示,请退出重新登录即可!&#39;);location=&#39;WxGroupManageList.aspx&#39;;", true);
 }
 }
登入後複製

WeiXinServer.cs程式碼:

/// <summary>
 /// 微信服务类
 /// </summary>
 public class WeiXinServer
 {
 /// <summary>
 /// 获取通行证
 /// </summary>
 /// <returns></returns>
 public string GetAccessToken()
 {
 string url_token =
 "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx3eb5bf1290db2ca0&secret=e6013be0a7338c7d3e02877db116e231";
 HttpWebRequest myRequest = (HttpWebRequest) WebRequest.Create(url_token);
 myRequest.Method = "GET";
 HttpWebResponse myResponse = (HttpWebResponse) myRequest.GetResponse();
 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
 string content = reader.ReadToEnd();
 reader.Close();
 return content;
 }
 
 public string GetPage(string p, 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(p) 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;
 return string.Empty;
 }
 }
 }
登入後複製

Edit.aspx內容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="test.Edit" %>
 
<html >
 <head runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title></title>
 <style type="text/css">
 .inputstyle {
 height: 35px;
 line-height: 35px;
 text-indent: 5px;
 width: 280px;
 background-image: url(&#39;images/inputbg.gif&#39;);
 background-repeat: repeat-x;
 border-top: solid 1px #a7b5bc;
 border-left: solid 1px #a7b5bc;
 border-right: solid 1px #ced9df;
 border-bottom: solid 1px #ced9df;
 float: left;
 margin: auto 5px auto 5px;
 }
 
 </style>
 </head>
 <body>
 <form id="form1" runat="server">
 <table border="1" style="width: 500px; border-collapse: collapse; margin: 20px auto 20px auto; line-height: 40px;">
 <tr>
  <td style="text-align: right;">分组编号:</td>
  <td> <asp:TextBox ID="txtGroupId" CssClass="inputstyle" Enabled="false" runat="server"></asp:TextBox></td>
 </tr>
 <tr>
  <td style="text-align: right;">分组名称:</td>
  <td> 
  <asp:TextBox ID="txtGroupName" CssClass="inputstyle" runat="server"></asp:TextBox>
  </td>
 </tr>
 <tr>
  <td></td>
  <td>
  <asp:LinkButton ID="LinkBtnSet" runat="server" OnClick="LinkBtnSet_Click" ><div style="background-image: url(&#39;images/buttonbg.png&#39;); width: 111px; height: 35px; line-height: 35px; float: left; font-weight: bold; text-align: center; color: #fff;"> 设 置</div></asp:LinkButton></td>
 </tr>
 </table>
 </form>
 </body>
</html>
登入後複製

Edit.aspx.cs程式碼:

public partial class Edit : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Request.QueryString["id"] != null)
{
 string group_id = Request.QueryString["id"].ToString();
 string group_name = Request.QueryString["name"].ToString();
 this.txtGroupId.Text = group_id.ToString();
 this.txtGroupName.Text = group_name.ToString();
 this.txtGroupName.Focus();
}
}
}
 
/// <summary>
/// 设置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void LinkBtnSet_Click(object sender, EventArgs e)
{
if (String.IsNullOrWhiteSpace(this.txtGroupName.Text.ToString().Trim()))
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;不能为空!&#39;);", true);
this.txtGroupName.Focus();
return;
}
if (this.txtGroupName.Text.Trim().Length > 30)
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;组名称应在30个字符之内!&#39;);", true);
this.txtGroupName.Focus();
return;
}
 
WeiXinServer wxs = new WeiXinServer();
string res = "";
 
//从缓存读取accesstoken
string Access_token = Cache["Access_token"] as string;
 
if (Access_token == null)
{
//如果为空,重新获取
Access_token = wxs.GetAccessToken();
 
//设置缓存的数据7000秒后过期
Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000),
 System.Web.Caching.Cache.NoSlidingExpiration);
}
 
string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);
 
string posturl = "https://api.weixin.qq.com/cgi-bin/groups/update?access_token=" + Access_tokento;
 
//POST数据例子:POST数据例子:{"group":{"id":108,"name":"test2_modify2"}}
 
string postData = "{\"group\":{\"id\":\"" + txtGroupId.Text + "\",\"name\":\"" + this.txtGroupName.Text +
 "\"}}";
res = wxs.GetPage(posturl, postData);
 
//使用Newtonsoft.json
JObject jsonObj = JObject.Parse(res);
 
//获取返回结果的正确|true|false,
string isright = jsonObj["errcode"].ToString(); //0
string istrueorfalse = jsonObj["errmsg"].ToString(); //ok
if (isright.Equals("0") && istrueorfalse.Equals("ok"))
{
//修改成功之后,刷新父窗体,关闭本页
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "",
 "alert(&#39;修改成功!如未正常显示,属缓存问题,请重新登录即可!&#39;);window.open![这里写图片描述](http://img.blog.csdn.net/20161008103126694)er.location.reload();this.close();", true);
}
else
{
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;修改失败!&#39;);this.close();",
 true);
}
}
}
登入後複製

buttonbg.p

ASP.NET微信公眾號之用戶分組管理web頁面

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持PHP中文網。

ASP.NET微信公眾號之用戶分組管理web頁面

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
Scrapy實現微信公眾號文章爬取與分析 Scrapy實現微信公眾號文章爬取與分析 Jun 22, 2023 am 09:41 AM

Scrapy實現微信公眾號文章爬取和分析微信是近年來備受歡迎的社群媒體應用,在其中運作的公眾號也扮演著非常重要的角色。眾所周知,微信公眾號是一個資訊和知識的海洋,因為其中每個公眾號都可以發布文章、圖文訊息等資訊。這些資訊可以被廣泛地應用在許多領域中,例如媒體報道、學術研究等。那麼,本篇文章將介紹如何使用Scrapy框架來實現微信公眾號文章的爬取與分析。 Scr

微信公眾號認證和不認證有哪些差別 微信公眾號認證和不認證有哪些差別 Sep 19, 2023 pm 02:15 PM

微信公眾號認證和不認證的差異在認證識別、功能權限、推播頻率、介面權限和使用者信任度等方面。詳細介紹:1、認證標識,認證公眾號會獲得官方頒發的認證標識,即藍色V標誌,這個標誌可以增加公眾號的可信度和權威性,讓用戶更容易辨別真實的官方公眾號; 2、功能權限,認證公眾號相比未認證的公眾號擁有更多的功能和權限,例如認證公眾號可以申請開通微信支付功能,實現在線支付和商業化運營等等。

Python中的爬蟲實戰:微信公眾號爬蟲 Python中的爬蟲實戰:微信公眾號爬蟲 Jun 10, 2023 am 09:01 AM

Python是一種優雅的程式語言,具有強大的資料處理和網路爬蟲功能。在這個數位時代,網路上充滿了大量的數據,爬蟲已成為獲取數據的重要手段,因此,Python爬蟲在數據分析和挖掘方面有著廣泛的應用。在本文中,我們將介紹如何使用Python爬蟲來取得微信公眾號文章資訊。微信公眾號是一種流行的社交媒體平台,用於線上發布文章,是許多公司和自媒體推廣和行銷的重要工

用PHP建構一個微信公眾號API介面 用PHP建構一個微信公眾號API介面 May 13, 2023 pm 12:01 PM

在當今網路時代,微信公眾號成為了越來越多企業的重要行銷管道。想要自己的微信公眾號實現更多的功能,常常需要寫對應的介面。本文將以PHP語言為例,介紹如何建構一個微信公眾號API介面。一、前置準備在編寫微信公眾號API介面之前,需要開發者擁有一個微信公眾號的帳號,並且在微信公眾平台中申請開發者介面權限。申請成功後,可以取得相關的開發者AppID和AppSe

如何使用Laravel開發一個基於微信公眾號的線上點餐系統 如何使用Laravel開發一個基於微信公眾號的線上點餐系統 Nov 02, 2023 am 09:42 AM

如何使用Laravel開發一個基於微信公眾號的線上點餐系統隨著微信公眾號的廣泛應用,越來越多的企業開始將其作為線上行銷的重要管道。在餐飲業中,開發一個基於微信公眾號的線上點餐系統能夠提高企業的效率和銷售額。本文將介紹如何使用Laravel框架來開發一個這樣的系統,並提供具體的程式碼範例。專案準備首先,需要確保已經在本地環境中安裝了Laravel框架。可以通

公眾號每天只能發一篇文章嗎 公眾號每天只能發一篇文章嗎 Jun 16, 2023 pm 02:04 PM

公眾號每天不是只能發一篇文章,每次最多可以發表八篇文章,多篇文章的發布方法:1、點擊左側的“素材管理”,再點擊“新建圖文素材”開始編輯第一篇文章;2、編輯完第一篇文章之後,點選左側第一篇文章下面的+號,點選「圖文訊息」即可編輯第二篇文章;3、做完多圖文後,點選「保管並群發」即可完成多篇文章的發布。

使用Go語言框架建構微信公眾號應用 使用Go語言框架建構微信公眾號應用 Jun 04, 2023 am 10:40 AM

隨著網路的普及和行動裝置的廣泛使用,微信公眾號已經成為了企業行銷不可或缺的一部分。透過微信公眾號,企業可以實現輕鬆地與用戶互動,推廣產品和服務,提高品牌知名度。為了更好地開發微信公眾號應用,越來越多的開發者和企業選擇使用Go語言來建立微信公眾號應用程式。 Go語言是一種由Google開發的程式語言,它的語法簡潔,適合建立高效能、高並發的即時應用程式。在簡單易用和

PHP與微信公眾號開髮指南 PHP與微信公眾號開髮指南 Jun 11, 2023 pm 03:31 PM

隨著微信公眾號在社群網路中的逐漸普及,越來越多的開發者開始涉足微信公眾號開發領域。在這其中,PHP作為一種常見的後端程式語言,也開始被廣泛應用於微信公眾號的開發。本文將介紹PHP在微信公眾號發展上的基礎知識與常用技巧。一、PHP與微信公眾號開發基礎微信公眾號開發微信公眾號是指一種基於微信平台的互聯網應用程序,可以為用戶提供不同類型的服務和內容,如信息推送

See all articles