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();
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
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();
Cache.Insert(
"AllGroups_content"
, content,
null
, DateTime.Now.AddSeconds(7000),
System.Web.Caching.Cache.NoSlidingExpiration);
}
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 =
""
;
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/delete?access_token="
+ Access_tokento;
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 =
""
;
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/message/mass/sendall?access_token="
+ Access_tokento;
string
groupid = e.CommandArgument.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="
;
res = wxs.GetPage(UserListurl,
""
);
UserList userList= JsonConvert.DeserializeObject<UserList>(res);
String openid=userList.data.openid.FirstOrDefault();
int
togroup_id = 101;
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();
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
);
}
}