国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - .NET微信公眾號 用戶分組管理

.NET微信公眾號 用戶分組管理

2020-03-28 12:59天風隼 ASP.NET教程

這篇文章主要介紹了.NET微信公眾號 用戶分組管理,web頁面設計,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

Model層實體類:

?
1
2
3
4
5
6
7
public class UserList
 {
   public string total { get; set; }
   public string count { get; set; }
   public userlistopenid data { get; set; }
   public string next_openid { get; set; }
 }
?
1
2
3
4
5
public class userlistopenid
{
  public List<string> openid { get; set; }
}
?
1
2
3
4
5
6
public class WxGroupsInfo
 {
   public string Group_ID { get; set; }//分組編號
   public string Group_Name { get; set; }//分組名稱
   public string Group_Count { get; set; }//分組人數
 }

WX.aspx內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<%@ 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('images/inputbg.gif');
        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('images/inputbg.gif');
        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('button_bg.png');
 
        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('button_bg.png'), url('button_bg.png'),
                 -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('button_bg.png'), url('button_bg.png'),
                 -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('button_bg.png'), url('button_bg.png'),
                 -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('button_bg.png'), url('button_bg.png'),
                 -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 = 'Edit.aspx?id=' + PayNo + "&name=" + name; //轉向網頁的地址;
        var name = 'add'; //網頁名稱,可為空;
        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, 'height=' + iHeight + ',innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');
      }
 
      $(document).ready(function() {
 
        $(".newGroups").click(function() {
            $("#shownewgroupzhezhaoceng").show();
            $("#shownewgroup").show();
          }),
          $('.closeloginpage').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='';this.style.color='#000'}" onblur="if(!value){value=defaultValue;this.style.color='#999'}" style="color: #999"/>
        <asp:LinkButton ID="LinkBtnCreateGroup" runat="server" OnClick="LinkBtnCreateGroup_Click">
          <div style="background-image: url('images/buttonbg.png'); 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='background-color: <%#(Container.ItemIndex%2 == 0) ? "#fff" : "#ced9ff" %>'>
              <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('<%# Eval("Group_ID") %>', '<%# Eval("Group_Name") %>'); ">修改分組名稱</a>
                <asp:LinkButton ID="LinkBtnDeleteGroup" runat="server" CommandName="DeleteGroups" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">刪除分組</asp:LinkButton>
 
                <asp:LinkButton ID="LinkBtnSendByGroup" runat="server" CommandName="SendByGroups" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">此分組消息群發</asp:LinkButton>
 
                <asp:LinkButton ID="LinkBtnMoveUserToGroup" runat="server" CommandName="MoveUserToGroup" CommandArgument='<%# Eval("Group_ID") %>' CssClass="button blue">移動分組</asp:LinkButton>
              </td>
            </tr>
          </ItemTemplate>
        </asp:Repeater>
      </table>
      <a class="newGroups"><div style="background-image: url('images/buttonbg.png'); 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.cs代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
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('您確定要刪除該分組?刪除后該分組內的人員即將恢復到默認分組!')");
        LinkBtnDeleteGroup.Attributes.Add("OnClick", "return confirm('您確定要群發消息到該分組?')");
      }
    }
 
    /// <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('刪除成功!由于緩存問題,您可能需要重新登錄才能看到效果!');location='WxGroupManageList.aspx';", 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('群發成功!由于緩存問題,您可能需要重新登錄才能看到效果!');location='WxGroupManageList.aspx';", 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('移動分組成功!由于緩存問題,您可能需要重新登錄才能看到效果!');location='WxGroupManageList.aspx';", 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('不能為空!')", 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('創建成功!如未顯示,請退出重新登錄即可!');location='WxGroupManageList.aspx';", true);
    }
  }

WeiXinServer.cs代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/// <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內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<%@ 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('images/inputbg.gif');
        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('images/buttonbg.png'); 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代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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('不能為空!');", true);
       this.txtGroupName.Focus();
       return;
     }
     if (this.txtGroupName.Text.Trim().Length > 30)
     {
       ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('組名稱應在30個字符之內!');", 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('修改成功!如未正常顯示,屬緩存問題,請重新登錄即可!');window.open![這里寫圖片描述](http://img.blog.csdn.net/20161008103126694)er.location.reload();this.close();", true);
     }
     else
     {
       ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('修改失敗!');this.close();",
         true);
     }
   }
 }

buttonbg.png

.NET微信公眾號 用戶分組管理

結果如圖:

.NET微信公眾號 用戶分組管理

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 二区在线观看 | 欧美一级在线观看 | 国产成人精品一区二 | 黄色一级视频免费看 | 91久久精品国产 | 成人黄色小视频 | 欧美在线小视频 | 久久国产精品久久久久久电车 | 欧洲精品久久久久69精品 | 一区二区免费在线视频 | 国产高清视频一区二区 | 久久久国产精品视频 | 男人的天堂在线视频 | 亚洲黄色成人 | 亚洲欧美激情精品一区二区 | 国产日韩视频在线观看 | 免费观看一级特黄欧美大片 | 国产高清精品在线 | 羞羞视频在线看 | 午夜电影网址 | 日韩欧美一区视频 | 成人在线免费视频 | 国产精品一区二区三区四区五区 | 在线一区二区三区做爰视频网站 | 视频在线一区二区三区 | 亚洲免费视频一区二区 | 欧美日一区 | 一区二区三区四区免费 | 中文字幕天堂在线 | 国产精品3区 | 天天操夜夜操av | 久久性色 | 日日干狠狠干 | 亚洲国产综合在线 | 日韩免费高清在线 | 欧美视频在线播放 | 国产综合一区二区 | 久久男人精品 | 久草视频在线播放 | 国产一区二区三区久久 | 久草视频免费看 |