成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > asp.net微信開發(fā)(高級群發(fā)文本)

asp.net微信開發(fā)(高級群發(fā)文本)

熱門標(biāo)簽:聊城智能電銷機器人電話 西寧電銷外呼系統(tǒng)公司 辦公用地圖標(biāo)注網(wǎng)點怎么操作 海東防封電銷卡 南昌自動外呼系統(tǒng)線路 寧德防封版電銷卡 安陸市地圖標(biāo)注app 云南外呼系統(tǒng)代理 上海市三維地圖標(biāo)注

首先我們先來講解一下群發(fā)文本信息的過程,我個人開發(fā)程序是首先要有UI才能下手去寫代碼,界面如下,

 

看圖我們也可以看出首先我們要獲取該微信號本月還能群發(fā)幾條信息,關(guān)于怎么計算,就是群發(fā)成功一條信息,就在本地數(shù)據(jù)庫存儲一條信息,用來計算條數(shù),(這個我相信都會),大于4條就不能發(fā)送(這里我已經(jīng)限制死了,因為服務(wù)號每月只能發(fā)送4條,多發(fā)送也沒用,用戶只能收到4條,除非使用預(yù)覽功能,挨個發(fā)送,但預(yù)覽功能也只能發(fā)送100次,或許可能使用開發(fā)者模式下群發(fā)信息可以多發(fā)送N次哦,因為我群發(fā)了兩次之后,再進入到微信公眾平臺官網(wǎng)后臺看到的居然還能群發(fā)4條,有點郁悶哦!),群發(fā)對象可選擇為全部用戶或分組用戶,和由于節(jié)省群發(fā)次數(shù),這里我就不測試群發(fā)文字信息了,具體參考如下代碼:

綁定本月剩余群發(fā)條數(shù)

 /// summary> 
 /// 綁定本月剩余群發(fā)條數(shù)
 /// /summary>
 private void BindMassCount()
 {
 WxMassService wms = new WxMassService();
 ListWxMassInfo> wxmaslist = wms.GetMonthMassCount();
 //官方微信服務(wù)號每月只能群發(fā)4條信息,(訂閱號每天1條)多余信息,將不會成功推送,這里已經(jīng)設(shè)定為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('群發(fā)信息已達上限!請下月初再試!')");
 }
 else
 {
 this.LinkBtnSubSend.Enabled = true;
 this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm('您確定要群發(fā)此條信息??')");
 }
 }

綁定分組列表

 /// 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();

 //設(shè)置緩存的數(shù)據(jù)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();

 //設(shè)置緩存的數(shù)據(jù)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>
 /// 選擇群發(fā)對象類型,顯示隱藏分組列表項
 /// /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;
 }
 }

群發(fā)

 /// summary>
 /// 群發(fā)
 /// /summary>
 /// param name="sender">/param>
 /// param name="e">/param>
 protected void LinkBtnSubSend_Click(object sender, EventArgs e)
 {
 //根據(jù)單選按鈕判斷類型,發(fā)送
 ///如果選擇的是文本消息
 if (this.RadioBtnList.SelectedValue.ToString().Equals("0"))
 {
 if (String.IsNullOrWhiteSpace(this.txtwenben.InnerText.ToString().Trim()))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('請輸入您要群發(fā)文本內(nèi)容!');", true);
  return;
 }
 if (this.txtwenben.InnerText.ToString().Trim().Length10)
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('文本內(nèi)容至少需要10個字符以上!');", true);
  return;
 }

 WxMassService wms = new WxMassService();
 ListWxMassInfo> wxmaslist = wms.GetMonthMassCount();

 if (wxmaslist.Count >= 4)
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('本月可群發(fā)消息數(shù)量已達上限!');", true);
  return;
 }
 else
 {


  //如何群發(fā)類型為全部用戶,根據(jù)openID列表群發(fā)給全部用戶,訂閱號不可用,服務(wù)號認證后可用
  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();

  //設(shè)置緩存的數(shù)據(jù)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;

  ///群發(fā)POST數(shù)據(jù)示例如下: 
  //  {
  // "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"))
  {
   //群發(fā)成功后,保存記錄
  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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功?。。?shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
  return;
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功?。?!數(shù)據(jù)保存失??!');", true);
  return;
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)提交失?。?!');", 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();

  //設(shè)置緩存的數(shù)據(jù)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;

  ///群發(fā)POST數(shù)據(jù)示例如下: 
  // {
  // "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"))
  {
  //群發(fā)成功后,保存記錄
  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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功?。?!數(shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
  return;
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功?。?!數(shù)據(jù)保存失?。?);", true);
  return;
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)提交失?。?!');", 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('請選擇或新建圖文素材再進行群發(fā)!');", true);
  return;
 }

 WxMassService wms = new WxMassService();

 ListWxMassInfo> wxmaslist = wms.GetMonthMassCount();

 if (wxmaslist.Count >= 4)
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('本月可群發(fā)消息數(shù)量已達上限!');", true);
  return;
 }
 else
 {
  
  //如何群發(fā)類型為全部用戶,根據(jù)openID列表群發(fā)給全部用戶,訂閱號不可用,服務(wù)號認證后可用
  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();

  //設(shè)置緩存的數(shù)據(jù)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;

  ///群發(fā)POST數(shù)據(jù)示例如下: 
  // {
  // "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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功!?。?shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功?。?!數(shù)據(jù)保存失?。?);", 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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功?。?!圖文部分數(shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功!??!數(shù)據(jù)保存失??!');", true);
   return;
  }
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)提交失敗?。?);", true);
  return;
  }


  }
  else
  {
  //根據(jù)分組進行群發(fā),訂閱號和服務(wù)號認證后均可用

  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();

  //設(shè)置緩存的數(shù)據(jù)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;

  ///群發(fā)POST數(shù)據(jù)示例如下: 
  // {
  // "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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功?。。?shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功?。?!數(shù)據(jù)保存失敗!');", 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 = "成功";//群發(fā)成功之后返回的狀態(tài)碼
  wmi.massMessageID = jsonObj["msg_id"].ToString();//群發(fā)成功之后返回的消息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('群發(fā)任務(wù)已提交成功?。?!圖文部分數(shù)據(jù)已保存!');location='WxMassManage.aspx';", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)已提交成功!??!數(shù)據(jù)保存失敗!');", true);
   return;
  }
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('群發(fā)任務(wù)提交失?。?!');", true);
  return;
  }
  }
 }
 }
 }

發(fā)送前預(yù)覽

/// summary>
 /// 發(fā)送前預(yù)覽
 /// /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();

 //設(shè)置緩存的數(shù)據(jù)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('請輸入您要發(fā)送預(yù)覽的文本內(nèi)容!');", true);
  return;
 }
 if (this.txttoUserName.Value.ToString().Trim().Equals("請輸入用戶微信號"))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('請輸入接收消息的用戶微信號!');", true);
  return;
 }
 //文本消息的json數(shù)據(jù){
 // "touser":"OPENID", 可改為對微信號預(yù)覽,例如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('發(fā)送預(yù)覽成功??!');", true);
  return;
 }
 else
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('發(fā)送預(yù)覽失?。?!');", 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('請選擇要預(yù)覽的圖文素材!');", true);
  return;
 }
 if (this.txttoUserName.Value.ToString().Trim().Equals("請輸入用戶微信號"))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('請輸入接收消息的用戶微信號!');", true);
  return;
 }
 //圖文消息的json數(shù)據(jù){
 // "touser":"OPENID", 可改為對微信號預(yù)覽,例如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('發(fā)送預(yù)覽成功??!');", true);
  return;
 }
 else
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert('發(fā)送預(yù)覽失敗??!');", true);
  return;
 }


 }
 
 }

關(guān)鍵部分,獲取全部用戶的openID并串聯(lián)成字符串:

 /// 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();

 //設(shè)置緩存的數(shù)據(jù)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();

 //設(shè)置緩存的數(shù)據(jù)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微信開發(fā)教程匯總》,歡迎大家學(xué)習(xí)閱讀。

至此結(jié)束,下一章將繼續(xù)講解群發(fā)圖文信息,因群發(fā)圖文信息之前,需要先上傳圖文信息所需的素材,獲取media_id,所以本章不做介紹,下一章將介紹新建單圖文信息并群發(fā),希望大家喜歡。

您可能感興趣的文章:
  • 微信公眾平臺開發(fā)——群發(fā)信息
  • php微信公眾平臺開發(fā)之微信群發(fā)信息
  • php微信高級接口群發(fā) 多客服
  • C#微信公眾平臺開發(fā)之高級群發(fā)接口
  • asp.net微信開發(fā)(高級群發(fā)圖文)
  • php實現(xiàn)微信公眾號無限群發(fā)
  • C#實現(xiàn)微信公眾號群發(fā)消息(解決一天只能發(fā)一次的限制)實例分享
  • php微信公眾號開發(fā)(4)php實現(xiàn)自定義關(guān)鍵字回復(fù)
  • php微信公眾號開發(fā)(3)php實現(xiàn)簡單微信文本通訊
  • 微信公眾號模板消息群發(fā)php代碼示例

標(biāo)簽:南寧 青海 汕尾 洛陽 崇左 贛州 衢州 巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《asp.net微信開發(fā)(高級群發(fā)文本)》,本文關(guān)鍵詞  asp.net,微信,開發(fā),高級,群發(fā),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。

  • 相關(guān)文章
  • 下面列出與本文章《asp.net微信開發(fā)(高級群發(fā)文本)》相關(guān)的同類信息!
  • 本頁收集關(guān)于asp.net微信開發(fā)(高級群發(fā)文本)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲欧美国内爽妇网| 日韩激情视频| 欧美一乱一性一交一视频| 欧美另类一区二区三区| 国产日韩精品一区| 中文字幕亚洲欧美日韩| 粉嫩欧美一区二区三区高清影视| 国产精品手机播放| **毛片在线网站| 亚洲最新合集| 182在线观看视频| 男女性激情视频在线观看| 无码国模国产在线观看| 午夜电影一区| 99热免费精品在线观看| 午夜精品久久久久久毛片| 国产精品久久久久久久久久小说| 久久精品亚洲a| 欧美日韩精品一区二区三区视频播放| 国产成人自拍网| 在线观看亚洲一区| 亚洲自拍一区在线观看| 亚洲狼人精品一区二区三区| 国产在线精品一区| caoporn国产精品| 一本久道综合久久精品| 国产大屁股喷水视频在线观看| 国产一区二区电影在线观看| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 日本 欧美 国产| 天堂av中文在线资源库| 中文字幕亚洲一区二区av在线| 影音先锋国产资源站| 午夜精品视频| 91精品久久久久久久久99蜜臂| 成人毛片高清视频观看| 亚洲网站在线观看| 2023国产一二三区日本精品2022| 伊人男人综合视频网| 日韩精品无码一区二区三区| 欧美电视剧在线看免费| 日韩欧美国产精品一区二区三区| 免费观看四虎精品成人| 免费一区二区三区在线观看| 中文字幕在线观看日韩| 亚洲 自拍 另类小说综合图区| 久久久久久成人精品| 香蕉视频成人在线观看| 午夜不卡久久精品无码免费| 妺妺窝人体色www聚色窝仙踪| 嫩模私拍啪啪| 国产一区视频在线| 日韩理论电影中文字幕| 五月天在线免费视频| 国内精品伊人久久久| 69av自拍偷拍| 国产喷水福利在线视频| 在线欧美一区二区| gogo久久日韩裸体艺术| 青草视频在线观看免费| 国产三级三级三级看三级| 网站免费在线观看| 欧美亚洲视频在线观看| 亚洲一卡二卡在线观看| 麻豆久久久久久久久久| 四季av综合网站| 成人国产精品一区二区免费麻豆| 欧美人与禽zozzo禽性配| 欧美xxxx在线观看| 亚洲午夜精品一区二区国产| 国产又黄又猛又粗| 国产网红女主播精品视频| 欧美少妇性性性| 999久久久| 午夜18视频在线观看| 久久久久久av无码免费网站| 欧美成人三级视频| 色视频免费观看| 99re在线观看| www.天天色| 亚洲精品亚洲人成人网在线播放| 亚洲欧美日韩精品久久奇米色影视| 欧美精品高清视频| 久久久精品国产一区二区三区| 亚洲人成电影网站色xx| 国内精品视频一区二区三区八戒| 成人激情直播| 99视频精品视频高清免费| 午夜av一区| 一个色综合网站| 欧美成人精品激情在线观看| 精品国产91九色蝌蚪| 欧美丰满老妇厨房牲生活| 亚洲精品久久久久久宅男| 亚洲精品男人天堂| 国产一区日韩欧美| 国产精品手机在线| 亚洲欧美制服综合另类| 古典武侠综合av第一页| 国产乱淫a∨片免费视频| 国产寡妇树林野战在线播放| 亚洲精品福利视频网站| 日本精品影院| 伊人春色在线观看| 日韩一区二区在线观看| 黄色网址在线视频| 一区二区三区四区不卡在线| 欧美日韩亚洲一区| а天堂中文在线官网| 欧美69精品久久久久久不卡| 在线中文字幕-区二区三区四区| 国产精品99精品久久免费| 黄色片在线观看网站| 亚洲制服欧美另类| 国产一区二区黑人欧美xxxx| 日韩亚洲不卡在线| 色偷偷91综合久久噜噜| 日韩三级在线观看| 欧美一二三视频| 一本色道久久88| 久久久久久com| 视频一区 中文字幕| 91精品人妻一区二区| 国产精品中文字幕一区二区三区| 免费av网页| 久久久777精品电影网影网| 国产成人精品一区二区三区在线| 欧美大尺度做爰床戏| 国产高中女学生第一次| 国产欧美一区二区三区另类精品| 欧美三级韩国三级日本一级| 国产女人水真多18毛片18精品| 高潮毛片在线观看| 欧美激情喷水| 色呦呦网站入口| 天天色 色综合| 在线播放国产一区| 国产69精品久久久久久久久久| 亚洲伦理在线观看| 男捅女免费视频| 成人伊人精品色xxxx视频| 国产在线www| 人人插人人射| 97国产精东麻豆人妻电影| 亚欧日韩另类中文欧美| 久久99免费视频| 亚洲免费观看高清在线观看| 精品久久免费观看| 日韩精品在线免费观看| 日韩精品在线观看免费| 亚洲男人天堂2019| 国内国产区免费视频| 国产美女无遮挡永久免费| 日韩av影片在线观看| 进去里视频在线观看| 久久久精品国产一区二区| 天天做天天爱天天综合网2021| 亚洲一卡二卡三卡四卡无卡久久| 91精品国产一区二区| 成人爽a毛片| 午夜精品福利一区二区蜜股av| 成人在线电影在线观看视频| 黄页网址大全免费观看| 国产又大又黄又爽| 人狥杂交一区欧美二区| 黄色精品一区二区| 日本vs亚洲vs韩国一区三区二区| 福利一区和二区| 午夜免费看毛片| 二区三区在线| 国产精品入口免费| 久久亚洲一区| 日韩在线观看电影完整版高清免费悬疑悬疑| 亚洲国产精品推荐| 欧美美女黄视频| 久久久久久久网站| 欧美性free免费| 日韩大片在线| 日本韩国一区二区| 女人一区二区三区| 国产成人免费视频| 日韩脚交footjobhd| 伊人国产精品| 日日摸日日添日日躁av| 91网站最新地址| 欧美日韩国产综合一区二区三区| 精品日韩视频在线观看| 福利视频在线导航| 欧美日韩激情小视频| 久久久99久久精品欧美| 亚洲自拍另类综合| 国产区一区二区三区| 日本精品一区二区三区视频| 国产a一区二区| 第一中文字幕在线| 老司机精品视频网站| 欧美成人艳星乳罩| 欧美精品在线观看91| 高潮按摩久久久久久av免费| 激情小说一区| 无码任你躁久久久久久老妇| 亚洲午夜精品视频| 日韩电影免费在线| 久久精品系列| 欧美 日韩 国产一区二区在线视频| 亚洲免费国产| 精品美女永久免费视频| 欧洲激情视频| 不卡的免费av| 成年人一级黄色片| 日韩欧美国产免费播放| 精品久久亚洲一级α| 日本美女久久| 欧美国产欧美亚州国产日韩mv天天看完整| 黑人巨大精品欧美一区二区| 天堂av一区二区三区在线播放| 国产精品国产亚洲精品看不卡| 日韩在线第二页| 高清欧美性猛交xxxx黑人猛| 亚洲精品鲁一鲁一区二区三区| 青青青草视频在线| 国产精品福利在线播放| 91在线观看欧美日韩| 亚洲免费av观看| 中文字幕一区二区三区不卡| 岛国成人毛片| 中文字幕21页在线看| 91av影院| 手机在线看福利| 欧美大片欧美激情性色a∨久久| 国 产 黄 色 大 片| 亚洲天堂狠狠干| 一二三区视频在线观看| 超碰97在线免费| 日本亚洲色大成网站www久久| 国产高清在线视频| 奇米一区二区| 国产成人精品电影久久久| 蜜桃视频一区二区在线观看| 欧美不卡一二三| 日本一区高清不卡| 成人高清在线观看免费| 亚洲va欧美va国产综合久久| 欧美一区二区三区成人片在线| 在线视频福利| xxxx69·hdxxxxx| 少妇aaaaa| www.色欧美| 亚洲精品手机在线| 精品露脸国产偷人在视频| 97精品国产一区二区三区| 97netav| 免费毛片在线看片免费丝瓜视频| 麻豆精品视频在线观看| 欧美一区二区三区人| 国产精品国产自产拍高清av水多| 伦理片一区二区| 一区二区三区美女| 电影一区电影二区| 日韩三级毛片| 欧美精品日日鲁夜夜添| 美日韩在线视频| 日本一二三区在线观看| 纪美影视在线观看电视版使用方法| 午夜私人影院在线观看| 自拍视频在线网| 9国产精品午夜| www.日韩欧美| 国产欧美亚洲日本| 欧美日韩精品久久| 亚洲欧美色婷婷| 日本中文字幕电影在线观看| 国产日韩欧美日韩| 日本天堂在线播放| 91麻豆精品国产综合久久久久久| 欧美激情二区三区| 97dyy97影院理论片在线| 日韩 欧美一区二区三区| 久久国产生活片100| 国内精久久久久久久久久人| 精品一区二区三区在线视频| 国产偷亚洲偷欧美偷精品| 成人亚洲欧美一区二区三区| 揄拍成人国产精品视频| 国产精品入口麻豆高清| 国内久久婷婷综合| 狠狠做深爱婷婷综合一区| 成人国产精品久久久| 国产成人在线免费视频| 欧美成人精品一区二区男人看| 日本免费在线精品| 91av在线看| 天天躁日日躁狠狠躁免费麻豆| 亚洲影院理伦片| 成人激情视频在线| 欧美三级电影精品| 久久亚洲AV无码专区成人国产| 日韩在线中文字幕| 国产一区再线| 青青青视频在线| av一二三不卡影片| 日本久久综合网| 四虎永久免费在线观看| 国产成人av一区二区三区不卡| 蜜桃视频一日韩欧美专区| jizz在线视频| 亚洲性图久久| 欧美xxxx中国| 666精品在线| 久久久久免费精品国产| 亚洲蜜桃在线| 五月天在线免费视频| 日韩免费不卡av| 国外成人在线视频网站| 91成人在线观看喷潮蘑菇| 日韩欧美综合| 高清av一区| 999精品视频一区二区三区| 精品国产一级| 国产伦子伦对白视频| 国产原创视频在线| 亚洲一区自拍| 日韩av在线中文字幕| 99精品视频一区二区三区| 激情小说激情视频| 欧美综合色免费| 亚洲国产欧美在线成人app| 国产 国语对白 露脸|