国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 微信小程式 微信開發(fā) asp.net微信開發(fā)(高級群發(fā)文本)

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

Feb 22, 2017 pm 02:14 PM

這篇文章主要介紹了asp.net微信開發(fā)中有關高級群發(fā)文本的相關內容,需要的朋友可以參考下

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

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

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

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

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

 /// <summary> 
 /// 綁定本月剩余群發(fā)條數(shù)
 /// </summary>
 private void BindMassCount()
 {
 WxMassService wms = new WxMassService();
 List<WxMassInfo> wxmaslist = wms.GetMonthMassCount();
 //官方微信服務號每月只能群發(fā)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(&#39;群發(fā)信息已達上限!請下月初再試!&#39;)");
 }
 else
 {
 this.LinkBtnSubSend.Enabled = true;
 this.LinkBtnSubSend.Attributes.Add("Onclick", "return confirm(&#39;您確定要群發(fā)此條信息??&#39;)");
 }
 }

#綁定分組清單

 /// <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ù)據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ù)據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)
 {
 //根據單選按鈕判斷類型,發(fā)送
 ///如果選擇的是文本消息
 if (this.RadioBtnList.SelectedValue.ToString().Equals("0"))
 {
 if (String.IsNullOrWhiteSpace(this.txtwenben.InnerText.ToString().Trim()))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;請輸入您要群發(fā)文本內容!&#39;);", true);
  return;
 }
 if (this.txtwenben.InnerText.ToString().Trim().Length<10)
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;文本內容至少需要10個字符以上!&#39;);", true);
  return;
 }

 WxMassService wms = new WxMassService();
 List<WxMassInfo> wxmaslist = wms.GetMonthMassCount();

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


  //如何群發(fā)類型為全部用戶,根據openID列表群發(fā)給全部用戶,訂閱號不可用,服務號認證后可用
  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ù)據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ù)據示例如下: 
  //  {
  // "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(&#39;群發(fā)任務已提交成功?。?!數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
  return;
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功?。?!數(shù)據保存失敗!&#39;);", true);
  return;
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務提交失敗??!&#39;);", 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ù)據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ù)據示例如下: 
  // {
  // "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(&#39;群發(fā)任務已提交成功!??!數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
  return;
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功!??!數(shù)據保存失?。?amp;#39;);", true);
  return;
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務提交失?。?!&#39;);", 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(&#39;請選擇或新建圖文素材再進行群發(fā)!&#39;);", true);
  return;
 }

 WxMassService wms = new WxMassService();

 List<WxMassInfo> wxmaslist = wms.GetMonthMassCount();

 if (wxmaslist.Count >= 4)
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;本月可群發(fā)消息數(shù)量已達上限!&#39;);", true);
  return;
 }
 else
 {
  
  //如何群發(fā)類型為全部用戶,根據openID列表群發(fā)給全部用戶,訂閱號不可用,服務號認證后可用
  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ù)據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ù)據示例如下: 
  // {
  // "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(&#39;群發(fā)任務已提交成功?。?!數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功?。?!數(shù)據保存失??!&#39;);", 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(&#39;群發(fā)任務已提交成功?。?!圖文部分數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功?。?!數(shù)據保存失??!&#39;);", true);
   return;
  }
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務提交失敗?。?amp;#39;);", true);
  return;
  }


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

  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ù)據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ù)據示例如下: 
  // {
  // "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(&#39;群發(fā)任務已提交成功?。?!數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功?。?!數(shù)據保存失敗!&#39;);", 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(&#39;群發(fā)任務已提交成功?。?!圖文部分數(shù)據已保存!&#39;);location=&#39;WxMassManage.aspx&#39;;", true);
   return;
  }
  else
  {
   ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務已提交成功?。?!數(shù)據保存失敗!&#39;);", true);
   return;
  }
  }
  }
  else
  {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;群發(fā)任務提交失?。?!&#39;);", true);
  return;
  }
  }
 }
 }
 }

發(fā)送前預覽

##
/// <summary>
 /// 發(fā)送前預覽
 /// </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ù)據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(&#39;請輸入您要發(fā)送預覽的文本內容!&#39;);", true);
  return;
 }
 if (this.txttoUserName.Value.ToString().Trim().Equals("請輸入用戶微信號"))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;請輸入接收消息的用戶微信號!&#39;);", true);
  return;
 }
 //文本消息的json數(shù)據{
 // "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(&#39;發(fā)送預覽成功?。?amp;#39;);", true);
  return;
 }
 else
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;發(fā)送預覽失?。。?amp;#39;);", 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(&#39;請選擇要預覽的圖文素材!&#39;);", true);
  return;
 }
 if (this.txttoUserName.Value.ToString().Trim().Equals("請輸入用戶微信號"))
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;請輸入接收消息的用戶微信號!&#39;);", true);
  return;
 }
 //圖文消息的json數(shù)據{
 // "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(&#39;發(fā)送預覽成功?。?amp;#39;);", true);
  return;
 }
 else
 {
  ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "", "alert(&#39;發(fā)送預覽失?。?!&#39;);", 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();

 //設置緩存的數(shù)據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ù)據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(&#39;"&#39;);
  sb.Append(jsonObj["data"]["openid"][i].ToString());
  sb.Append(&#39;"&#39;);
  sb.Append(",");
 }
 }

 return sb.Remove(sb.ToString().LastIndexOf(","),1).ToString();
 }

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

更多asp.net微信開發(fā)(高級群發(fā)文字)相關文章請關注PHP中文網!

######
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)