温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

asp.net微信开发中如何群发文本

发布时间:2021-09-23 17:11:22 来源:亿速云 阅读:142 作者:iii 栏目:开发技术

这篇文章主要介绍“asp.net微信开发中如何群发文本”,在日常操作中,相信很多人在asp.net微信开发中如何群发文本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”asp.net微信开发中如何群发文本”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

首先我们先来讲解一下群发文本信息的过程,我个人开发程序是首先要有UI才能下手去写代码,界面如下,

 asp.net微信开发中如何群发文本

asp.net微信开发中如何群发文本

看图我们也可以看出首先我们要获取该微信号本月还能群发几条信息,关于怎么计算,就是群发成功一条信息,就在本地数据库存储一条信息,用来计算条数,(这个我相信都会),大于4条就不能发送(这里我已经限制死了,因为服务号每月只能发送4条,多发送也没用,用户只能收到4条,除非使用预览功能,挨个发送,但预览功能也只能发送100次,或许可能使用开发者模式下群发信息可以多发送N次哦,因为我群发了两次之后,再进入到微信公众平台官网后台看到的居然还能群发4条,有点郁闷哦!),群发对象可选择为全部用户或分组用户,和由于节省群发次数,这里我就不测试群发文字信息了,具体参考如下代码:

绑定本月剩余群发条数

 /// <summary>   /// 绑定本月剩余群发条数  /// </summary>  private void BindMassCount()  {  WxMassService wms = new WxMassService();  List<WxMassInfo> wxmaslist = 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('您确定要群发此条信息??')");  }  }

绑定分组列表

 /// <summary>  /// 绑定分组列表  /// </summary>  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()));  }  }  /// <summary>  /// 选择群发对象类型,显示隐藏分组列表项  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  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;  }  }

群发

 /// <summary>  /// 群发  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  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();  List<WxMassInfo> 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"   // ],   // "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<WxMassInfo> 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;   }   }  }  }  }

发送前预览

/// <summary>  /// 发送前预览  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  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并串联成字符串:

 /// <summary>  /// 获取所有微信用户的OpenID  /// </summary>  /// <returns></returns>  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微信开发中如何群发文本”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI