微信公共平台开发3 .net
嗯,别的不说了现在开始接着上次http://www.cnblogs.com/QLJ1314/p/3838058.html 获取ACCESSTOKEN,开始吧,接下来我们就写发送文本消息吧。
首先建立一个微信消息实体类。此原文出处:blog.csdn.net/hemeng1980/article/details/19503171
1 class wxmessage
2 {
3 public string FromUserName { get; set; } 消息发送方微信号
4 public string ToUserName { get; set; } 消息接收方微信号,一般为公众平台账号微信号
5 public string MsgType { get; set; } 信息类型
6 public string EventName { get; set; }
7 public string Content { get; set; } 信息内容
8 public string EventKey { get; set; }
9 }
后台代码:
1 protected void Page_Load(object sender, EventArgs e)
2 {
3 wxmessage wx = GetWxMessage();
4 string res = "";
5
6 if (!string.IsNullOrEmpty(wx.EventName) && wx.EventName.Trim() == "subscribe")
7 {//刚关注时的时间,用于欢迎词
8 string content = "";
9 content = "你好,感谢你关注QLJ1314博客";
10 res = sendTextMessage(wx, content);
11 }
12 else
13 {
14 if (wx.MsgType == "text" && wx.Content == "你好")
15 {
16 res = sendTextMessage(wx, "你好,感谢你关注QLJ1314博客!");
17 }
18 else
19 {
20 res = sendTextMessage(wx, "这个我也没遇见过,正在向微信客服反应此事,请耐心等待或者可以直接打10086!");
21 }
22 }
23
24 Response.Write(res);
25 }
26 //获取用户基本信息
27 private wxmessage GetWxMessage()
28 {
29 wxmessage wx = new wxmessage();
30 StreamReader str = new StreamReader(Request.InputStream, System.Text.Encoding.UTF8);
31 XmlDocument xml = new XmlDocument();
32 xml.Load(str);
33 wx.ToUserName = xml.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;
34 wx.FromUserName = xml.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;
35 wx.MsgType = xml.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;
36 if (wx.MsgType.Trim() == "text")
37 {
38 wx.Content = xml.SelectSingleNode("xml").SelectSingleNode("Content").InnerText;
39 }
40 if (wx.MsgType.Trim() == "event")
41 {
42 wx.EventName = xml.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;
43 }
44
45
46 return wx;
47 }
48
49 /// <summary>
50 /// 发送文字消息
51 /// </summary>
52 /// <param name="wxCont">获取的收发者信息
53 /// <param name="content">内容
54 /// <returns>string </returns>
55 private string sendTextMessage(wxmessage wxCont, string content)
56 {
57 string res = string.Format(@" ",
58 wx.FromUserName, wx.ToUserName, DateTime.Now, content);
59 return res;
60 }
记着一定要和开发文档的格式一致,
一定要把两个关系搞清楚呀。不然是实现不了效果的
微信公共平台开发3 .net的更多相关文章
- ASP.NET MVC 微信公共平台开发之获取用户消息并处理
ASP.NET MVC 微信公共平台开发 获取用户消息并处理 获取用户消息 用户发送的消息是在微信服务器发送的一个HTTP POST请求中包含的,获取用户发送的消息要从POST请求的数据流中获取 微信 ...
- ASP.NET MVC 微信公共平台开发之验证消息的真实性
ASP.NET MVC 微信公共平台开发 验证消息的真实性 在MVC Controller所在项目中添加过滤器,在过滤器中重写 public override void OnActionExecuti ...
- ASP.NET MVC 微信公共平台开发之 微信接入
ASP.NET MVC 接入微信公共平台 申请微信公共账号 既然要接入微信公共平台,微信公共号是必须的(当然如果只是测试的话也可以申请微信公共平台接口测试账号),来这里微信公共平台 申请微信公共号(注 ...
- 微信公共平台开发-(.net实现)1--成为开发者
刚换了个新环境,哎这都快一个月了,还没适应过来,还是怀念老地方呀.老板让开发一个基于微信平台的开发项目,而且是用net实现.当时就蒙了,微信就用了一会个人赶脚不好,所以果断不用,现在让开发,而且查了一 ...
- 微信公共平台开发1 .net
如果想通过微信去开发(当然,指的是开发模式下),首先 建议先申请一个服务号,因为服务号的功能与接口也多,有些功能订阅号是实现不了的.另外申请过以后必须得通过微信 认证才能开发,好像是得付300大洋,高 ...
- 微信公共平台开发-(.net实现)5--access_token过期的问题
每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token ...
- 微信公共平台开发-(.net实现)3--发送文本消息
最近,项目这边比较忙,没来得及续写,哎,先吐吐槽吧,在这个周六还得来上班,以后每个周六多要上,一天的滋味真有点受不鸟呀.还不习惯ing... 嗯,别的不说了现在开始接着上次http://www.cnb ...
- 微信公共平台开发-(.net实现)2--ACCESSTOKEN值获得
成功的走出第一步后,我们紧接着趁热打铁开始下一步: 成为了开发者之后微信平台会给您AppId和AppSecret,在订阅号中是没有的,所以因该申请一下服务号, 若没有请注意上一篇http://www. ...
- 微信公共平台开发5 .net
每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token ...
随机推荐
- BaaS服务的定义、发展以及未来
BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS是垂直领域的云服务,随 ...
- 使用SharePoint Designer定制开发员工工作日志系统实例!
昨天已介绍了一篇<使用SharePoint Designer定制开发专家库系统实例!>,今天继续来介绍使用SharePoint Designer定制开发员工工作日志系统实例,主要功能包括填 ...
- python 自动化测试资料
python 自动化测试资料: http://yunpan.cn/QXVvwVJsAsPnb
- Linux下查看tcp连接数及状态
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ TIME_WAIT 8947FIN_WAIT1 15FIN_W ...
- MyBatis知多少(16)MyBatis映射
之前我们详细地讨论了MyBatis背后的设计理念以及iBATIS框架是如何产生的.也说明了MyBatis是一个混合型解决方案,它从处理关系数据库的其他不同方法那里借鉴了许多思想.那么MyBatis到底 ...
- mongodb 监控分析命令
1. bin/mongostate 2.开启慢查询用于调试 正式要关闭 可以在客户端调用db.setProfilingLevel(级别) 命令来实时配置.可以通过db.getProfilingLeve ...
- 左倾堆(二)之 C++的实现
概要 上一章介绍了左倾堆的基本概念,并通过C语言实现了左倾堆.本章是左倾堆的C++实现. 目录1. 左倾堆的介绍2. 左倾堆的图文解析3. 左倾堆的C++实现(完整源码)4. 左倾堆的C++测试程序 ...
- IT人的自我导向型学习:开篇杂谈
报考大学时,家人让我报的是计算机系,那个时候,普遍都认为读计算机专业的人将来不用愁找不到工作.为何得出这样的结论不得而知,但是在过去三十年中,的确有很多响当当赚了大钱的IT人在影响着我们. 顺利的考取 ...
- 使用WinDbg调试SQL Server——入门
这篇文章我想探究下SQL Server里完全不同的领域:如果使用WinDbg(来自针对Windows的调试工具)调试SQL Server.在我们进入枯涩细节之前,我想详细解释下为什么选择这样晦涩的话题 ...
- 黑客入门之IP地址及常用命令
在网络上,只要利用IP地址就可以找到目标主机,因此,如果黑客想要攻击某个网络主机,就要先确定该目标主机的域名或IP地址. IP地址概述 所谓IP地址就是一种主机编址方式,给每个连接在Internet上 ...