重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下微信开发之如何实现推送消息的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联主营雷州网站建设的网络公司,主营网站建设方案,App定制开发,雷州h5小程序设计搭建,雷州网站营销推广欢迎雷州等地区企业咨询最近做微信公共号的开发,有个需求是这样的消息推送,以文本的形式把编辑的消息发送给微信企业号中的某一个应用组,这里做下笔记,以下是整理内容:
//定义数据模型 public class Access_token { public Access_token() { // // TODO: 在此处添加构造函数逻辑 // } string _access_token; string _expires_in; /// /// 获取到的凭证 /// public string access_token { get { return _access_token; } set { _access_token = value; } } /// /// 凭证有效时间,单位:秒 /// public string expires_in { get { return _expires_in; } set { _expires_in = value; } } }
public ActionResult index(string returnUrl) { GetAccess_token(); IsExistAccess_Token(); return View(); } public static Access_token GetAccess_token() { string AppUrl = "/tupian/20230522/gettoken string AppID = "应用组的CorpID";//在设置-》权限管理-》系统管理组 string AppSecret = "应用组的Secret";//在设置-》权限管理-》系统管理组 WebClient webClient = new WebClient(); Byte[] bytes = webClient.DownloadData(string.Format("{0}corpid={1}&corpsecret={2}", AppUrl, AppID, AppSecret)); string result = Encoding.GetEncoding("utf-8").GetString(bytes); JObject jObj = JObject.Parse(result); string token = jObj["access_token"].ToString(); string expires_in = jObj["expires_in"].ToString(); Access_token mode = new Access_token(); mode.access_token = token; mode.expires_in = expires_in; return mode; } ///
根据当前日期 判断Access_Token 是否超期 如果超期返回新的Access_Token 否则返回之前的Access_Token
public static string IsExistAccess_Token() { string Token = string.Empty; DateTime YouXRQ; string strPath = "../../weixin/XMLFile.xml"; // 读取XML文件中的数据,并显示出来 //string filepath = System.Web.Hosting.HostingEnvironment.MapPath(strPath); string filepath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath); StreamReader str = new StreamReader(filepath, System.Text.Encoding.UTF8); XmlDocument xml = new XmlDocument(); xml.Load(str); str.Close(); str.Dispose(); Token = xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText; YouXRQ = Convert.ToDateTime(xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText); if (DateTime.Now > YouXRQ) { DateTime _youxrq = DateTime.Now; Access_token mode = GetAccess_token(); xml.SelectSingleNode("xml").SelectSingleNode("Access_Token").InnerText = mode.access_token; _youxrq = _youxrq.AddSeconds(int.Parse(mode.expires_in)); xml.SelectSingleNode("xml").SelectSingleNode("Access_YouXRQ").InnerText = _youxrq.ToString(); xml.Save(filepath); Token = mode.access_token; } object text = new { toparty = "1", agentid = "2", msgtype = "text", text = new { content = "项目名称:"+来保网+"" } }; string wcr= btnSend(Token, text); return wcr; } public static string btnSend(string Token, object text) { string url = "/tupian/20230522/send WebRequest req = WebRequest.Create(url); JavaScriptSerializer aa = new JavaScriptSerializer(); string postData = aa.Serialize(text); byte[] requestBytes = Encoding.UTF8.GetBytes(postData); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ContentLength = requestBytes.Length; Stream requestStream = req.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.Default); string backstr = sr.ReadToEnd(); sr.Close(); res.Close(); WeChatReturn WCR = aa.Deserialize(backstr); return WCR.errmsg; }
以上是“微信开发之如何实现推送消息的”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!