微信开发 消息推送实现代码


Posted in Javascript onOctober 21, 2016

最近做微信公共号的开发,有个需求是这样的消息推送,以文本的形式把编辑的消息发送给微信企业号中的某一个应用组,这里做下笔记,以下是整理内容:

//定义数据模型
 
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 = "https://qyapi.weixin.qq.com/cgi-bin/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 = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + Token;
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;
 
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
你可能不再需要JQUERY
Mar 09 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
js 中 document.createEvent的用法
Aug 29 Javascript
javascript继承机制实例详解
Nov 20 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
基于jQuery实现选取月份插件附源码下载
Dec 28 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
Nov 13 Javascript
详解jQuery设置内容和属性
Apr 11 jQuery
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
微信和qq时间格式模板实例详解
Oct 21 #Javascript
微信开发 微信授权详解
Oct 21 #Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 #Javascript
微信 java 实现js-sdk 图片上传下载完整流程
Oct 21 #Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
Oct 21 #Javascript
Bootstrap如何创建表单
Oct 21 #Javascript
bootstrap table小案例
Oct 21 #Javascript
You might like
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
python实现转圈打印矩阵
2019/03/02 Python
Python 的AES加密与解密实现
2019/07/09 Python
python 调试冷知识(小结)
2019/11/11 Python
Python内置异常类型全面汇总
2020/05/28 Python
用python对oracle进行简单性能测试
2020/12/05 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
学前教育专业毕业生自荐信
2013/10/03 职场文书
英语文学专业学生的自我评价
2013/10/31 职场文书
优良学风班申请材料
2014/02/13 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
座谈会主持词
2014/03/20 职场文书
政府法律服务方案
2014/06/14 职场文书
男方婚前保证书
2015/02/28 职场文书
2015年副班长工作总结
2015/05/15 职场文书
民事上诉状范文
2015/05/22 职场文书
Android中View.post和Handler.post的关系
2022/06/05 Java/Android