dotNet微信公众号开发二:接收并回复普通文字消息
来源:互联网 发布:萌叔装机 知乎 编辑:程序博客网 时间:2024/04/29 15:09
上一篇做好了基本配置之后,现在可以学习如何回复消息了。
当有用户向公众号发送消息的时候,微信会向我们的借口以POST的方式推送消息。以普通文本为例,消息格式如下:
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId></xml>
含义如下:
当我们的服务器收到这样的消息的时候,就可以进行响应,可以回复文本、图片、图文、语音、视频、音乐等等。
继续以文本消息为例,我们要回复的消息格式如下:
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[你好]]></Content></xml>
可以看到,回复的消息和收到的消息刚好对起止用户进行了颠倒。另外,用户发来的消息里面包含有MsgId,因为微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。
下面贴一段简单的示例代码:
public void Index() { //微信服务器一直把用户发过来的消息,post过来 if (Request.HttpMethod == "POST") { var reader = XmlReader.Create(Request.InputStream); var doc = XDocument.Load(reader); var xml = doc.Element("xml"); string requestFromUserID = xml.Element("FromUserName").Value; string requestToUserID = xml.Element("ToUserName").Value; string strRespose = "<xml>"; strRespose += "<ToUserName><![CDATA[{0}]]></ToUserName>"; strRespose += "<FromUserName><![CDATA[{1}]]></FromUserName>"; strRespose += "<CreateTime>{2}</CreateTime>"; strRespose += "<MsgType><![CDATA[text]]></MsgType>"; strRespose += "<Content><![CDATA[{3}]]></Content>"; strRespose += "</xml>"; Response.Write(string.Format(strRespose, requestFromUserID, requestToUserID, DateTime.Now.ToBinary(), "感谢您回复消息!")); } else if (Request.HttpMethod == "GET") //微信服务器在首次验证时,需要进行一些验证,但。。。。 { if (string.IsNullOrEmpty(Request["echostr"])) {#if DEBUG Response.Write("无法获取微信接入信息,仅供测试!");#endif return; } Response.Write(Request["echostr"].ToString()); } else { // 这里不正确 Response.Write("wrong"); } }
这是个最简单的示例,用户回复消息之后就会收到 "感谢您回复消息!"的回复,效果如下:
0 0
- dotNet微信公众号开发二:接收并回复普通文字消息
- 微信开发<二>接收普通消息、自动回复
- 用java开发微信公众号:接收和被动回复普通消息(三)
- java微信公众号开发1.普通消息的接受并回复
- 微信公众号开发-接收与回复消息
- 微信公众号开发(2)---接收订阅事件推送并回复消息
- 微信公众号开发之接收普通消息
- 微信公众号开发之接收普通消息
- 微信公众平台开发【接收消息】接收普通消息
- 微信公众平台 java示例 接收消息并回复
- 微信开发学习总结(三)——开发微信公众号的最基本功能——普通消息的接收和回复
- 微信开发学习总结(三)——开发微信公众号的最基本功能——普通消息的接收和回复
- 微信开发学习总结(三)——开发微信公众号的最基本功能——普通消息的接收和回复
- 微信开发学习总结(三)——开发微信公众号的最基本功能——普通消息的接收和回复
- 微信公众号开发--消息的接收与被动回复消息
- Python3: Django开发微信公众号平台功能测试之普通消息回复
- 微信公众号开发--接收与回复消息(Java)
- 微信公众号开发(一、接收用户消息自动回复)
- Application加载ViewController过程探究
- android软键盘弹出引起的各种不适终极解决方案
- 坐标移动
- 详解 Java ClassLoader
- Git学习(1)
- dotNet微信公众号开发二:接收并回复普通文字消息
- Nginx配置引起的SSL证书认证失败
- powerdesigner 16.5使用教程
- c++作业2
- 05-maven编辑替换jre为jdk
- python 多继承(新式类) 三
- 二叉平衡树的算法复杂度笔记
- 关于Android布局优化(二)
- C++作业2