<%@ WebHandler Language="C#" Class="wx_Handler_receiveMsg" %> using System; using System.Web; using System.IO; using System.Xml; using eMIS.Data; using System.Data; using Tencent; /* * 本页面用于验证回调URL * 企业开启回调模式时,企业号会向验证URL发送一个get请求,此页面解密echostr原文, * 并将原文当作Get请求,返回给公众平台 * * cjx@2015/1/7 * * 本例,演示如何获取工作任务 * 此例中,在企业号应用中打开“回调模式”,并启用“上报用户进入应用事件”,当用户进入应用时,获取事件,解析其用户名 * 为方便起见,微信企业号中通讯录的用户名与eMIS系统中用户名相同 * */ public class wx_Handler_receiveMsg : IHttpHandler { public void ProcessRequest (HttpContext context) { Weixin wx = new Weixin(context); if (wx.IsVerifyURL) { wx.VerifyURL(); } else { wx.Debug = false; Tencent.MessageObject msg = wx.DecryptMsg(); wx.Messager.GetAccesstoken(); string sql = ""; eDbManager manager = new eDbManager(eMIS.Data.WebConfigManager.DefaultDb); eDbOperator dbo = manager.CreateDbOperator(); switch (msg.MsgType) { case MsgConstClass.MsgTypeClass.C_TEXT: sql = "insert into XT_WX_INBOX(FromUserName,MsgType,WXContent,MsgId,AgentID)" + " values(?,?,?,?,?)"; dbo.ExecuteNonQuery(sql, msg.FromUserName, msg.MsgType, (msg as TextMessage).GetContent(500), msg.MsgId, msg.AgentID); wx.Messager.SendTextToUser("感谢您的意见和建议,您的意见我们已经收到!", msg.AgentID, msg.FromUserName); break; case MsgConstClass.MsgTypeClass.C_IMAGE: sql = "insert into XT_WX_INBOX(FromUserName,MsgType,PicUrl,MediaId,MsgId,AgentID)" + " values(?,?,?,?,?,?)"; dbo.ExecuteNonQuery(sql, msg.FromUserName, msg.MsgType, (msg as ImageMessage).PicUrl, (msg as ImageMessage).MediaId, msg.MsgId, msg.AgentID); break; case MsgConstClass.MsgTypeClass.C_VOICE: sql = "insert into XT_WX_INBOX(FromUserName,MsgType,voiceFormat,MediaId,MsgId,AgentID)" + " values(?,?,?,?,?,?)"; dbo.ExecuteNonQuery(sql, msg.FromUserName, msg.MsgType, (msg as VoiceMessage).Format, (msg as MediaMessageObject).MediaId, msg.MsgId, msg.AgentID); break; case MsgConstClass.MsgTypeClass.C_VIDEO: case MsgConstClass.MsgTypeClass.C_SHORTVIDEO: sql = "insert into XT_WX_INBOX(FromUserName,MsgType,ThumbMediaId,MediaId,MsgId,AgentID)" + " values(?,?,?,?,?,?)"; dbo.ExecuteNonQuery(sql, msg.FromUserName, msg.MsgType, (msg as VideoMessage).ThumbMediaId, (msg as MediaMessageObject).MediaId, msg.MsgId, msg.AgentID); break; } if (msg is ClickEventMessage) { wx.Messager.SendTextToUser("感谢您的意见和建议,请把您的意见和建议通过文字发送给我们!", msg.AgentID, msg.FromUserName); } } } public bool IsReusable { get { return false; } } }