asp.net微信开发中有关高级群发文本的示例分析
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,小编给大家分享一下asp.net微信开发中有关高级群发文本的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先我们
千家信息网最后更新 2025年11月16日asp.net微信开发中有关高级群发文本的示例分析
小编给大家分享一下asp.net微信开发中有关高级群发文本的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
首先我们先来讲解一下群发文本信息的过程,我个人开发程序是首先要有UI才能下手去写代码,界面如下,
看图我们也可以看出首先我们要获取该微信号本月还能群发几条信息,关于怎么计算,就是群发成功一条信息,就在本地数据库存储一条信息,用来计算条数,(这个我相信都会),大于4条就不能发送(这里我已经限制死了,因为服务号每月只能发送4条,多发送也没用,用户只能收到4条,除非使用预览功能,挨个发送,但预览功能也只能发送100次,或许可能使用开发者模式下群发信息可以多发送N次哦,因为我群发了两次之后,再进入到微信公众平台官网后台看到的居然还能群发4条,有点郁闷哦!),群发对象可选择为全部用户或分组用户,和由于节省群发次数,这里我就不测试群发文字信息了,具体参考如下代码:
绑定本月剩余群发条数
////// 绑定本月剩余群发条数 /// private void BindMassCount() { WxMassService wms = new WxMassService(); Listwxmaslist = wms.GetMonthMassCount(); //官方微信服务号每月只能群发4条信息,(订阅号每天1条)多余信息,将不会成功推送,这里已经设定为4 this.lbMassCounts.Text = (4 - int.Parse(wxmaslist.Count.ToString())).ToString(); if (wxmaslist.Count >= 4) { this.LinkBtnSubSend.Enabled = false; this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm('群发信息已达上限!请下月初再试!')"); } else { this.LinkBtnSubSend.Enabled = true; this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm('您确定要群发此条信息??')"); } }
绑定分组列表
////// 绑定分组列表 /// 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.dll文件 JObject jsonObj = JObject.Parse(content); int groupsnum = jsonObj["groups"].Count(); this.DDLGroupList.Items.Clear();//清除 for (int i = 0; i < groupsnum; i++) { this.DDLGroupList.Items.Add(new ListItem(jsonObj["groups"][i]["name"].ToString() + "(" + jsonObj["groups"][i]["count"].ToString() + ")", jsonObj["groups"][i]["id"].ToString())); } } ////// 选择群发对象类型,显示隐藏分组列表项 /// /// /// protected void DDLMassType_SelectedIndexChanged(object sender, EventArgs e) { if (int.Parse(this.DDLMassType.SelectedValue.ToString()) > 0) { this.DDLGroupList.Visible = true; } else { this.DDLGroupList.Visible = false; } }
群发
////// 群发 /// /// /// protected void LinkBtnSubSend_Click(object sender, EventArgs e) { //根据单选按钮判断类型,发送 ///如果选择的是文本消息 if (this.RadioBtnList.SelectedValue.ToString().Equals("0")) { if (String.IsNullOrWhiteSpace(this.txtwenben.InnerText.ToString().Trim())) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请输入您要群发文本内容!');", true); return; } if (this.txtwenben.InnerText.ToString().Trim().Length<10) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('文本内容至少需要10个字符以上!');", true); return; } WxMassService wms = new WxMassService(); Listwxmaslist = wms.GetMonthMassCount(); if (wxmaslist.Count >= 4) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('本月可群发消息数量已达上限!');", true); return; } else { //如何群发类型为全部用户,根据openID列表群发给全部用户,订阅号不可用,服务号认证后可用 if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { StringBuilder sbs = new StringBuilder(); sbs.Append(GetAllUserOpenIDList()); 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 posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=" + Access_tokento; ///群发POST数据示例如下: // { // "touser":[ // "OPENID1", // "OPENID2" // ], // "msgtype": "text", // "text": { "content": "hello from boxer."} //} string postData = "{\"touser\":[" + sbs.ToString() + "],\"msgtype\":\"text\",\"text\":{\"content\":\"" + this.txtwenben.InnerText.ToString() + "\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { //群发成功后,保存记录 WxMassInfo wmi = new WxMassInfo(); wmi.ImageUrl = ""; wmi.type = "文本"; wmi.contents = this.txtwenben.InnerText.ToString().Trim(); wmi.title = this.txtwenben.InnerText.ToString().Substring(0, 10) + "..."; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务提交失败!!');", true); return; } } else { string group_id = this.DDLGroupList.SelectedValue.ToString(); 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 posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=" + Access_tokento; ///群发POST数据示例如下: // { // "filter":{ // "is_to_all":false // "group_id":"2" // }, // "text":{ // "content":"CONTENT" // }, // "msgtype":"text" //} //} string postData = "{\"filter\":{\"is_to_all\":\"false\"\"group_id\":\"" + group_id + "\"},\"text\":{\"content\":\"" + this.txtwenben.InnerText.ToString() + "\"},\"msgtype\":\"text\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { //群发成功后,保存记录 WxMassInfo wmi = new WxMassInfo(); wmi.ImageUrl = ""; wmi.type = "文本"; wmi.contents = this.txtwenben.InnerText.ToString().Trim(); wmi.title = this.txtwenben.InnerText.ToString().Substring(0, 10) + "..."; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务提交失败!!');", true); return; } } } } //如果选择的是图文消息 if (this.RadioBtnList.SelectedValue.ToString().Equals("1")) { if (String.IsNullOrWhiteSpace(this.lbtuwenmedai_id.Text.ToString().Trim())) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请选择或新建图文素材再进行群发!');", true); return; } WxMassService wms = new WxMassService(); List wxmaslist = wms.GetMonthMassCount(); if (wxmaslist.Count >= 4) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('本月可群发消息数量已达上限!');", true); return; } else { //如何群发类型为全部用户,根据openID列表群发给全部用户,订阅号不可用,服务号认证后可用 if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { StringBuilder sbs = new StringBuilder(); sbs.Append(GetAllUserOpenIDList()); 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 posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=" + Access_tokento; ///群发POST数据示例如下: // { // "touser":[ // "OPENID1", // "OPENID2" // ], // "mpnews":{ // "media_id":"123dsdajkasd231jhksad" // }, // "msgtype":"mpnews" //} string postData = "{\"touser\":[" + sbs.ToString() + "],\"mpnews\":{\"media_id\":\"" + this.lbtuwenmedai_id.Text.ToString() + "\"},\"msgtype\":\"mpnews\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { Session["media_id"] = null; WxMassInfo wmi = new WxMassInfo(); if (Session["wmninfo"] != null) { WxMpNewsInfo wmninfo = Session["wmninfo"] as WxMpNewsInfo; wmi.title = wmninfo.title.ToString(); wmi.contents = wmninfo.contents.ToString(); wmi.ImageUrl = wmninfo.ImageUrl.ToString(); wmi.type = "图文"; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } else { wmi.title = ""; wmi.contents = ""; wmi.ImageUrl = ""; wmi.type = "图文"; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!图文部分数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务提交失败!!');", true); return; } } else { //根据分组进行群发,订阅号和服务号认证后均可用 string group_id = this.DDLGroupList.SelectedValue.ToString(); 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 posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=" + Access_tokento; ///群发POST数据示例如下: // { // "filter":{ // "is_to_all":false // "group_id":"2" // }, // "mpnews":{ // "media_id":"123dsdajkasd231jhksad" // }, // "msgtype":"mpnews" //} string postData = "{\"filter\":{\"is_to_all\":\"false\"\"group_id\":\""+group_id+ "\"},\"mpnews\":{\"media_id\":\"" + this.lbtuwenmedai_id.Text.ToString() + "\"},\"msgtype\":\"mpnews\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { Session["media_id"] = null; WxMassInfo wmi = new WxMassInfo(); if (Session["wmninfo"] != null) { WxMpNewsInfo wmninfo = Session["wmninfo"] as WxMpNewsInfo; wmi.title = wmninfo.title.ToString(); wmi.contents = wmninfo.contents.ToString(); wmi.ImageUrl = wmninfo.ImageUrl.ToString(); wmi.type = "图文"; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } else { wmi.title = ""; wmi.contents = ""; wmi.ImageUrl = ""; wmi.type = "图文"; if (this.DDLMassType.SelectedValue.ToString().Equals("0")) { wmi.massObject = this.DDLMassType.SelectedItem.Text.ToString(); } else { wmi.massObject = this.DDLGroupList.SelectedItem.Text.ToString(); } wmi.massStatus = "成功";//群发成功之后返回的状态码 wmi.massMessageID = jsonObj["msg_id"].ToString();//群发成功之后返回的消息ID wmi.massDate = System.DateTime.Now.ToString(); int num = wms.AddWxMassInfo(wmi); if (num > 0) { Session["wmninfo"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!图文部分数据已保存!');location='WxMassManage.aspx';", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务已提交成功!!!数据保存失败!');", true); return; } } } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群发任务提交失败!!');", true); return; } } } } }
发送前预览
////// 发送前预览 /// /// /// protected void LinkBtnSendPreview_Click(object sender, EventArgs e) { 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 posturl = "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=" + Access_tokento; ///如果选择的是文本消息 if (this.RadioBtnList.SelectedValue.ToString().Equals("0")) { if (String.IsNullOrWhiteSpace(this.txtwenben.InnerText.ToString().Trim())) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请输入您要发送预览的文本内容!');", true); return; } if (this.txttoUserName.Value.ToString().Trim().Equals("请输入用户微信号")) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请输入接收消息的用户微信号!');", true); return; } //文本消息的json数据{ // "touser":"OPENID", 可改为对微信号预览,例如towxname:zhangsan // "text":{ // "content":"CONTENT" // }, // "msgtype":"text" //} string postData = "{\"towxname\":\"" + this.txttoUserName.Value.ToString() + "\",\"text\":{\"content\":\"" + this.txtwenben.InnerText.ToString() + "\"},\"msgtype\":\"text\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('发送预览成功!!');", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('发送预览失败!!');", true); return; } } //如果选择的是图文消息 if (this.RadioBtnList.SelectedValue.ToString().Equals("1")) { if(String.IsNullOrWhiteSpace(this.lbtuwenmedai_id.Text.ToString().Trim())) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请选择要预览的图文素材!');", true); return; } if (this.txttoUserName.Value.ToString().Trim().Equals("请输入用户微信号")) { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('请输入接收消息的用户微信号!');", true); return; } //图文消息的json数据{ // "touser":"OPENID", 可改为对微信号预览,例如towxname:zhangsan // "mpnews":{ // "media_id":"123dsdajkasd231jhksad" // }, // "msgtype":"mpnews" //} string postData = "{\"towxname\":\"" + this.txttoUserName.Value.ToString() + "\",\"mpnews\":{\"media_id\":\"" + this.lbtuwenmedai_id.Text.ToString() + "\"},\"msgtype\":\"mpnews\"}"; string tuwenres = wxs.GetPage(posturl, postData); //使用前需药引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(tuwenres); if (jsonObj["errcode"].ToString().Equals("0")) { Session["media_id"] = null; ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('发送预览成功!!');", true); return; } else { ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('发送预览失败!!');", true); return; } } }
关键部分,获取全部用户的openID并串联成字符串:
////// 获取所有微信用户的OpenID /// ///protected string GetAllUserOpenIDList() { StringBuilder sb = new StringBuilder(); 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["AllUserOpenList_content"] as string; if (content == null) { jsonres = "https://api.weixin.qq.com/cgi-bin/user/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("AllUserOpenList_content", content, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration); } //使用前需要引用Newtonsoft.json.dll文件 JObject jsonObj = JObject.Parse(content); if (jsonObj.ToString().Contains("count")) { int totalnum = int.Parse(jsonObj["count"].ToString()); for (int i = 0; i < totalnum; i++) { sb.Append('"'); sb.Append(jsonObj["data"]["openid"][i].ToString()); sb.Append('"'); sb.Append(","); } } return sb.Remove(sb.ToString().LastIndexOf(","),1).ToString(); }
以上是"asp.net微信开发中有关高级群发文本的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
成功
数据
任务
消息
缓存
用户
文本
图文
信息
文件
选择
信号
示例
状态
输入
内容
分组
服务
开发
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术人员个人工作总结
苹果手动设置dns服务器
闽政通打开显示无法连接服务器
涉密软件开发保密室清单
战地5我的服务器为何没人加
大专学软件开发前景好吗
太原市bim软件开发工程
标定软件开发流程
儿童网络安全与教育图片
网络安全法全网总动员
软件开发需求入门
怎么把数据库表里内容更换
市场主流网络安全产品
通信网络技术有用吗
网络安全装置对时异常
mysql数据库设置编码
软件开发过程核心生命流程
cs服务器http
网络安全与防范任务书范文
临汾网络技术是什么
延边公安局网络安全
手机登录服务器方法
零基础网络安全工程师培训
如何查看druid连接的数据库
计算机网络技术转职业
中国铁塔软件开发工资
简笔画校园网络安全
数据库技术平台
腾讯数据库和微信用户关系
观音桥途景互联网科技