Пример #1
0
        /// <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));
        }
Пример #2
0
        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"));
            }
        }