在上篇随笔介绍了有关企业号的消息发送,官方特别声明消息是不用加密发送的。但是在回调的服务器上,也就是我们网站的服务器上,微信传过来的消息是加密的,需要我们调用类库对消息和事件进行解密操作,由于官方的例子不全,因此摸索了不少时间,最终顺利解密收到的各种消息和事件。本文主要介绍 微信企业号的消息和事件的接收处理及解密操作。
1、企业号回调模式的设置
和公众号一样,微信企业号如果需要进行二次开发,也是需要在后台设置好对应的回调参数,如下界面所示。
设置好这些后,检查通过后,我们就可以在自己微信应用服务器上进行消息的收发操作了。
在回调的消息入口处,我们需要对POST数据和普通的GET数据进行分开处理,GET数据是微信自身的验证处理,POST数据是微信消息的交互操作。///
/// 企业号回调信息接口。统一接收并处理信息的入口。
///
public class corpapi : IHttpHandler
{
///
/// 处理企业号的信息
///
///
public void ProcessRequest(HttpContext context)
{
上面我们定义了一个一般应用处理程序来对消息进行处理。
然后我们分开不同的消息类型(POST、GET 方式),针对性的进行处理。if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
{
using (Stream stream = HttpContext.Current.Request.InputStream)
{
Byte[] postBytes = new Byte[stream.Length];
stream.Read(postBytes, 0, (Int32)stream.Length);
postString = Encoding.UTF8.GetString(postBytes);
}
if (!strin