/// <summary> /// 获取用户信息 /// </summary> /// <param name="UserId"></param> /// <param name="AppId"></param> /// <param name="OpenID"></param> /// <returns></returns> public ActionResult FansMsg(int UserId, string AppId, string OpenID) { List <WX_Queue> list = new WX_QueueManager().Where(s => s.MsgState == 1 && s.OpenID.Equals(OpenID)); var msg = new List <object>(); foreach (WX_Queue item in list) { WX_CustomMsg CM = new WX_CustomMsg(); CM.MsgId = item.MsgId; CM.OpenID = item.OpenID; CM.UserId = UserId; CM.AppId = AppId; CM.CreateTime = item.CreateTime; switch (item.MsgType) { case "text": CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/Content"); break; case "image": CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/PicUrl"); break; case "voice": CM.Content = XmlUtility.GetSingleNodeInnerText(item.XmlContent, "/xml/MediaId"); break; default: break; } CM.MsgSource = "粉丝"; CM.MsgType = item.MsgType; CM.XmlContent = item.XmlContent; new WX_QueueManager().Delete(item.MsgId); //删除 new WX_CustomMsgManager().Add(CM); //添加到数据库 var info = new WX_CustomMsgManager().Where(s => s.MsgId == CM.MsgId).Select(s => new { content = s.Content, s.WX_User.HeadImageUrl, s.MsgType }); msg.Add(info);//添加到集合 } return(Json(msg, JsonRequestBehavior.AllowGet)); }
public ActionResult Index(string id) { if (this.Request.RequestType.ToLower() == "get") { string signature = Request.QueryString["signature"]; string timestamp = Request.QueryString["timestamp"]; string nonce = Request.QueryString["nonce"]; string echostr = Request.QueryString["echostr"]; return(Content(echostr)); } else { string xml = MyHttpUtility.ReadRequest(this.Request); int createTime = Convert.ToInt32(XmlUtility.GetSingleNodeInnerText(xml, "/xml/CreateTime")); string fromUserName = XmlUtility.GetSingleNodeInnerText(xml, "/xml/FromUserName"); string toUserName = XmlUtility.GetSingleNodeInnerText(xml, "/xml/ToUserName"); string msgType = XmlUtility.GetSingleNodeInnerText(xml, "/xml/MsgType"); if (msgType == "event") {//事件 WX_EventQueue info = new WX_EventQueue() { CreateTime = DateTimeUtility.Parse(createTime), Event = XmlUtility.GetSingleNodeInnerText(xml, "/xml/Event"), MsgState = 1, MsgType = msgType, XmlContent = xml, OpenID = XmlUtility.GetSingleNodeInnerText(xml, "/xml/FromUserName"), AppId = id }; new WX_EventQueueManager().Add(info); //回复消息 string key = XmlUtility.GetSingleNodeInnerText(xml, "/xml/EventKey"); WX_MenuEventManager manager = new WX_MenuEventManager(); var eve = manager.Where(e => e.MenuKey.Equals(key)).FirstOrDefault(); if (eve != null) { string respXml = eve.GetXML(toUserName, fromUserName); return(Content(respXml)); } } else { //消息 WX_Queue info = new WX_Queue() { MsgState = 1, MsgId = XmlUtility.GetSingleNodeInnerText(xml, "/xml/MsgId"), CreateTime = DateTimeUtility.Parse(createTime), XmlContent = xml, OpenID = XmlUtility.GetSingleNodeInnerText(xml, "/xml/FromUserName"), MsgType = msgType, AppId = id }; WX_QueueManager manager = new WX_QueueManager(); if (manager.GetByPK(info.MsgId) == null) { var r = manager.Add(info); } } return(Content("success")); } }