利用。net怎么对公众号消息进行处理

  介绍

本篇文章给大家分享的是有关利用。净怎么对公众号消息进行处理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

首先我们从最基本的文本消息处理开始。

& lt; xml>   & lt; ToUserName> & lt; ! [CDATA[使用]]祝辞& lt;/ToUserName>   & lt; FromUserName> & lt; ! [CDATA [fromUser]]祝辞& lt;/FromUserName>   & lt; CreateTime> 12345678 & lt;/CreateTime>   & lt; MsgType> & lt; ! [CDATA[文本]]祝辞& lt;/MsgType>   & lt; Content> & lt; ! [CDATA[你好]]祝辞& lt;/Content>   & lt;/xml>

,我们可以看到这是消息处理的一个最基本的模式,有发送者,接受者,创建时间、类型,内容等等。

首先我们来创建一个消息处理的类,这个类用来捕获,所有的消息请求,根据不同的消息请求类型来处理不同的消息回复。

 WeiXinService公共类
  {///& lt; summary>///令牌///& lt;/summary>
  私人常量字符串标记=癴inder";///& lt; summary>///签名///& lt;/summary>
  私人常量字符串签名=皊ignature";///& lt; summary>///时间戳///& lt;/summary>
  私人常量字符串TIMESTAMP=皌imestamp";///& lt; summary>///随机数///& lt;/summary>
  私人常量字符串NONCE=皀once";///& lt; summary>///随机字符串///& lt;/summary>
  私人常量字符串ECHOSTR=癳chostr";///& lt; summary>//////& lt;/summary>
  私人HttpRequest请求{获取;设置;}///& lt; summary>///构造函数///& lt;/summary>///& lt;参数name=皉equest"祝辞& lt;/param>
  公共WeiXinService (HttpRequest请求)
  {
  这一点。请求=请求;
  }///& lt; summary>///处理请求,产生响应///& lt;/summary>///& lt; returns> & lt;/returns>
  公共字符串响应()
  {
  字符串方法=Request.HttpMethod.ToUpper ();//验证签名
  如果方法==癎ET"
  {
  如果(CheckSignature ())
  {
  返回Request.QueryString [ECHOSTR];
  }
  其他的
  {
  返回“error";
  }
  }//处理消息
  如果方法==癙OST"
  {
  返回ResponseMsg ();
  }
  其他的
  {
  返回“无法处理“;
  }
  }///& lt; summary>///处理请求///& lt;/summary>///& lt; returns> & lt;/returns>
  私人字符串ResponseMsg ()
  {
  字符串requestXml=CommonWeiXin.ReadRequest (this.Request);
  IHandler处理程序=HandlerFactory.CreateHandler (requestXml);
  
  如果(处理程序!=null)
  {
  返回handler.HandleRequest ();
  }
  
  返回string.Empty;
  }///& lt; summary>///检查签名///& lt;/summary>///& lt;参数name=皉equest"祝辞& lt;/param>///& lt; returns> & lt;/returns>
  私人bool CheckSignature ()
  {
  字符串=Request.QueryString签名(签名);
  时间戳字符串=Request.QueryString(时间戳);
  字符串nonce=Request.QueryString(临时的);
  
  List列表=new List ();
  list.Add(令牌);
  list.Add(时间戳);
  list.Add(临时的);//排序
  list.Sort ();//拼串
  字符串输入=string.Empty;
  foreach (var项列表)
  {
  输入+=项;
  }//加密
  字符串new_signature=SecurityUtility.SHA1Encrypt(输入);//验证
  如果(new_signature==签名)
  {
  返回true;
  }
  其他的
  {
  返回错误;
  }
  }
  }

在来看看我们的首先是如何捕获消息的。首页违约。ashx的代码如下

利用。net怎么对公众号消息进行处理