不想听我扯皮的,直接看官方:
微信官方的文档 :
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453

开发前说明:
我们需要用到 StreamReader

所以需要引用:using System.IO;

如果我们发现,我们的用户,发送 链接信息 到公众号。我们就针对 链接信息 进行处理。

首先我们看看官方文档。

<xml><ToUserName>< ![CDATA[toUser] ]></ToUserName><FromUserName>< ![CDATA[fromUser] ]></FromUserName><CreateTime>1351776360</CreateTime><MsgType>< ![CDATA[link] ]></MsgType><Title>< ![CDATA[公众平台官网链接] ]></Title><Description>< ![CDATA[公众平台官网链接] ]></Description><Url>< ![CDATA[url] ]></Url><MsgId>1234567890123456</MsgId></xml>
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,link
Title 消息标题
Description 消息描述
Url 消息链接
MsgId 消息id,64位整型

现在正式讲开发

上面讲了一些微信给我们的规则

我们现在要用这些规则获取我们想要的东西。

第一步:获取那串 XML 这个是最重要的,因为没这个XML,我们就相当于啥都没有。(我们的信息来源就是这个XML)

这里我使用 StreamReader 来获取 Request.Body

因为XML主要是 Request.Body 里面的

//声明一个XML方便调用
string xml="";
//获取我们的流
var reader = new StreamReader(Request.Body);
//把流里面的读取出来,就是我们这串XML了。
var contentFromBody = reader.ReadToEnd();
//再保存进我们的这个字符串里,方便后期使用
xml = contentFromBody;

我们读取XML中的信息,并将其转成我们的微信信息对象。

这里呢。我借用了一位大佬的代码:

专门处理微信消息的几个类

第一个类:
MessageFromWeiXin:

第二个类:

ResponseClient:

这两个类,我就不放出来了。大家可以去上几篇文章看看,如果不想翻文章,请留下邮箱,或者直接联系我

有了这两个类,我们的东西就好开展了,如果大家有发现报错的话,是因为string扩展类的问题。需要的留下邮箱,这个东西太长了。不好发,不过大家应该都看的懂,自己写一套也好。

使用上面第二个类中的,这个方法,进行转换 : XmlToMessageFromWeiXin

得到我们 msg 对象

我们这个对象里面有msgtype,这个type枚举呢,就对应了各个事件。

我们写个switch就能将他们分开了。不同事件进入不同分支处理。

/// <summary>
///     接收来自微信的消息
/// </summary>
[HttpPost]
[Route("api/WeChat")]
public string Post(string xml)
{System.Console.WriteLine("进入消息处理");var reader = new StreamReader(Request.Body);var contentFromBody = reader.ReadToEnd();System.Console.WriteLine($"xml:{contentFromBody}");xml = contentFromBody;try{var msg = ResponseClient.XmlToMessageFromWeiXin(xml);var Response = "";switch (msg.MsgType){case MessageFromWeiXinType.link:var link = (LinkMessageFromWeiXin)msg;//我们的链接呢,主要有 消息标题 Title  ;消息描述 Description ;消息链接 UrlSystem.Console.WriteLine($"消息标题:{link.Title}\n消息描述:{link.Description}\n消息链接:{link.Url}\n");Response = "<xml> <ToUserName><![CDATA[" + link.FromUserName +"]]></ToUserName> <FromUserName><![CDATA[" + link.ToUserName +"]]></FromUserName> <CreateTime>" +ResponseClient.ConvertDateTimeToInt(DateTime.Now) +"</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[您发了一个 链接:标题:+link.Title+" , 地址: "+link.Url+" ,小女子已经帮您记录下来了]]></Content> </xml>";break;}return Response;// return "success";}catch (Exception ex){return "error";}
}

得到结果

关于大家还有些使用问题,有不懂的或需要代码的,留下邮箱

欢迎进qq群交流:704028989

微信公众号简单开发(10)链接消息相关推荐

  1. 微信公众号java开发:验证消息的确来自微信服务器

    微信公众号开发,微信服务需要认证服务,官方文档如下: 引入jar包如下: <dependency><groupId>com.github.binarywang</grou ...

  2. 微信公众号简单开发(1)介绍流程

    上一篇文章我们介绍了微信公众号开发需要用到一些id和密码之类的 如果还不清楚我们可以看看这篇文章 点我 : https://mp.weixin.qq.com/wiki?t=resource/res_m ...

  3. 微信公众号简单开发(6)图片消息

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

  4. 微信公众号简单开发(5)文本消息

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

  5. 微信公众号简单开发(7)语音消息

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

  6. 微信公众号简单开发(9)地理位置消息

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

  7. 微信公众号简单开发(4)普通消息

    我们在接收微信普通消息的时候呀,我们会发现我们有很多种普通消息. 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id= ...

  8. 微信公众号简单开发(11)综合案例

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

  9. 微信公众号简单开发(8)视频消息 和 小视频消息

    不想听我扯皮的,直接看官方: 微信官方的文档 : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453 开发前说明 ...

最新文章

  1. Java自带的常用工具
  2. linux为3种人准备了权限,linux的3种特殊权限
  3. 左右margin top问题百分比值
  4. visio 模板_盒图模板一键套用,便捷绘制精美盒图图表
  5. WebService部署时提示:HTTP错误 404.3-Not Found,如果该页面是脚本,请添加处理程序,如果应下载文件,请添加MIME映射
  6. php ajax jquery 表单重复提交,Jquery 防止Ajax重复提交权威解决方案
  7. MinIO部署快速入门
  8. 赛锐信息:集团化公司SAP权限管控解决方案
  9. springboot系列(三) 启动类中关键注解作用解析
  10. matlab2c使用c++实现matlab函数系列教程-normpdf函数
  11. BrcmPatchRAM 黑苹果WiFi无线网卡蓝牙驱动
  12. 西威变频器avo下载调试资料_西门子变频器使用BOP-2 面板调试 G120
  13. Cassandra启动过程详解
  14. Java面试官:java的跨平台原理
  15. 樊登读书搞定读后感_《读懂一本书:樊登读书法》读后感2
  16. CSS面试须知--选择器
  17. fx2n4ad模块中文手册_解析三菱特殊模块FX2N-4AD-PT详细说明及编程应用
  18. 单片机怎么通过按键控制计时器的开始和停止_超详细!51单片机寄存器功能一览表...
  19. Unable to locate tools.jar. Expected to find it in D:/jre6/lib/tools.jar问题解决
  20. python+beautifulsoup/xpath实现新浪微博某互粉好友全部好友圈微博爬虫

热门文章

  1. Android 自定义View实现炮弹射击小游戏
  2. [转载]UNICODE,GBK,UTF-8区别
  3. JS表白代码:“你好啊,小仙女”
  4. 慕课头条:马斯克要生孩子殖民火星;腾讯申请狗头商标;微软22年挂了所有日常实习生转正?
  5. 如何使用git下载Github代码
  6. 机器学习常用的评测指标Rank-n、Precision Recall、F-score、Map 、CMC、ROC Single shot 和Muti shot
  7. 【四二学堂】基于python+pygame的太空阻击游戏(python版带视频)
  8. 【工业互联网】新一代企业数字化整体架构下的工业互联网
  9. 键盘上各按键对应的英文名
  10. Python 分类导航