Ejemplo n.º 1
0
        void WeChatApi_Load(object sender, EventArgs e)
        {
            Response.Clear();
            if (string.IsNullOrEmpty(Request.QueryString["echostr"]))
            {
                string toUser   = Request.QueryString["toUser"];
                string fromUser = Request.QueryString["fromUser"];
                string MsgType  = Request.QueryString["MsgType"];
                string Event    = Request.QueryString["Event"];
                string Content  = Request.QueryString["Content"];
                string MsgId    = "";
                try
                {
                    //声明一个XMLDoc文档对象,LOAD()xml字符串
                    if (string.IsNullOrEmpty(Content))
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.LoadXml(new StreamReader(Request.InputStream).ReadToEnd());
                        toUser   = doc.GetElementsByTagName("ToUserName")[0].InnerText;
                        fromUser = doc.GetElementsByTagName("FromUserName")[0].InnerText;
                        MsgType  = doc.GetElementsByTagName("MsgType")[0].InnerText;
                        try
                        {
                            MsgId = doc.GetElementsByTagName("MsgId")[0].InnerText;
                        }
                        catch { }
                        try
                        {
                            Content = doc.GetElementsByTagName("Content")[0].InnerText;
                        }
                        catch { }
                        try
                        {
                            Event = doc.GetElementsByTagName("Event")[0].InnerText;
                            if (string.IsNullOrEmpty(Content) && !string.IsNullOrEmpty(Event))
                            {
                                Content = Event;
                            }
                        }
                        catch { }
                    }

                    Wlniao.WeChat.Model.Fans fans = Wlniao.WeChat.BLL.Fans.Check(fromUser, Content);
                    switch (MsgType.ToLower())
                    {
                    case "event":
                    case "text":
                        Wlniao.WeChat.Model.Rules rule = null;
                        string msgArgs = "";
                        try
                        {
                            rule = Wlniao.WeChat.BLL.Rules.GetRule(Content, fromUser);
                        }
                        catch { }
                        if (rule != null)
                        {
                            if (Content.StartsWith(rule.GoOnCmd))
                            {
                                msgArgs = Content.Substring(rule.GoOnCmd.Length).Trim();
                            }
                            Wlniao.WeChat.BLL.Fans.SetSession(fromUser, rule.GoOnCmd, rule.DoMethod, msgArgs, rule.CallBackText);
                            if (!string.IsNullOrEmpty(rule.DoMethod))
                            {
                                rule.ReContent = RunMethod(rule.DoMethod, fromUser, toUser, Content, msgArgs);
                            }
                            else if (string.IsNullOrEmpty(rule.ReContent))
                            {
                                string where = "RuleGuid='" + rule.Guid + "'";
                                if (fans.AllowTest == 1)
                                {
                                    where += " and (ContentStatus='normal' or ContentStatus='test')";
                                }
                                else
                                {
                                    where += " and ContentStatus='normal'";
                                }

                                List <Wlniao.WeChat.Model.RuleContent> listAll     = Wlniao.WeChat.Model.RuleContent.find(where + " order by LastStick desc").list();
                                List <Wlniao.WeChat.Model.RuleContent> listText    = Wlniao.WeChat.Model.RuleContent.find(where + " and ContentType='text' order by LastStick desc").list();
                                List <Wlniao.WeChat.Model.RuleContent> listPicText = Wlniao.WeChat.Model.RuleContent.find(where + " and ContentType='pictext' order by LastStick desc").list();
                                List <Wlniao.WeChat.Model.RuleContent> listMusic   = Wlniao.WeChat.Model.RuleContent.find(where + " and ContentType='music' order by LastStick desc").list();
                                if (rule.SendMode == "sendgroup" && listPicText != null && listPicText.Count > 0)
                                {
                                    rule.ReContent = ResponsePicTextMsg(fromUser, toUser, listPicText);
                                }
                                else if (listAll.Count > 0)
                                {
                                    int i = 0;
                                    if (rule.SendMode == "sendrandom")
                                    {
                                        i = new Random().Next(0, listAll.Count);
                                    }
                                    if (listAll[i].ContentType == "text")
                                    {
                                        rule.ReContent = listAll[i].TextContent;
                                        try
                                        {
                                            //更新推送次数
                                            listAll[i].PushCount++;
                                            listAll[i].update("PushCount");
                                        }
                                        catch { }
                                    }
                                    else if (listAll[i].ContentType == "music")
                                    {
                                        rule.ReContent = ResponseMusicMsg(fromUser, toUser, listAll[i].Title, listAll[i].TextContent, listAll[i].MusicUrl, listAll[i].MusicUrl);
                                        try
                                        {
                                            //更新推送次数
                                            listAll[i].PushCount++;
                                            listAll[i].update("PushCount");
                                        }
                                        catch { }
                                    }
                                    else if (listAll[i].ContentType == "pictext")
                                    {
                                        List <Wlniao.WeChat.Model.RuleContent> listTemp = new List <Model.RuleContent>();
                                        listTemp.Add(listAll[i]);
                                        rule.ReContent = ResponsePicTextMsg(fromUser, toUser, listTemp);
                                    }
                                }
                            }
                            Response.Write(ResponseTextMsg(fromUser, toUser, rule.ReContent));
                        }
                        else
                        {
                            if (string.IsNullOrEmpty(fans.DoMethod) || fans.LastCmdTime < DateTools.GetNow().AddSeconds(0 - BLL.Rules.SessionTimeOut))
                            {
                                Response.Write(ResponseTextMsg(fromUser, toUser, RunDefaultMethod(fromUser, toUser, Content)));
                            }
                            else
                            {
                                Response.Write(ResponseTextMsg(fromUser, toUser, RunMethod(fans.DoMethod, fromUser, toUser, (fans.GoOnCmd + BLL.Rules.Separation[0] + Content).Trim(), Content)));
                            }
                        }
                        break;

                    default:
                        break;
                    }
                }
                catch { }
            }
            else if (CheckSignature(Context))
            {
                Response.Write(Request.QueryString["echostr"]);
            }
            Response.End();
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                switch (helper.GetParam("action").ToLower())
                {
                case "del":
                    try
                    {
                        helper.Result = Wlniao.WeChat.BLL.Rules.DelRules(helper.GetParam("Guid"));
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "convertmethod":
                    try
                    {
                        Wlniao.WeChat.Model.Rules rule = Wlniao.WeChat.BLL.Rules.Get(helper.GetParam("Guid"));
                        if (string.IsNullOrEmpty(rule.DoMethod))
                        {
                            rule.DoMethod = "Wlniao.Empty";
                        }
                        rule.update("DoMethod");
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "convertauto":
                    try
                    {
                        Wlniao.WeChat.Model.Rules rule = Wlniao.WeChat.BLL.Rules.Get(helper.GetParam("Guid"));
                        rule.DoMethod = "";
                        rule.update("DoMethod");
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "getlist":
                    int pageIndex = 0;
                    int pageSize  = int.MaxValue;
                    try
                    {
                        pageIndex = int.Parse(helper.GetParam("pageIndex"));
                        pageSize  = int.Parse(helper.GetParam("pageSize"));
                    }
                    catch { }

                    System.DataPage <Wlniao.WeChat.Model.Rules> items = db.findPage <Wlniao.WeChat.Model.Rules>("DoMethod=''", pageIndex, pageSize);
                    try
                    {
                        foreach (Wlniao.WeChat.Model.Rules rule in items.Results)
                        {
                            try
                            {
                            }
                            catch { }
                        }
                    }
                    catch { }
                    List <Wlniao.WeChat.Model.Rules> list = null;
                    list = items.Results;
                    if (list == null)
                    {
                        list = new List <Wlniao.WeChat.Model.Rules>();
                    }
                    helper.Response("{total:" + items.RecordCount + ",data:" + Json.ToStringList(items.Results) + "}");
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                _Guid = Request["guid"];
                if (string.IsNullOrEmpty(_Guid))
                {
                    _Display = "display:none;";
                }
                else
                {
                    _DisplayNew = "display:none;";
                }
                if (helper.GetParam("type") == "auto")
                {
                    _GobackUrl       = "rulesauto.aspx";
                    _DoMethodDisplay = "display:none;";
                }
                else
                {
                    _ReContentDisplay = "display:none;";
                    _GobackUrl        = "rulesmethod.aspx";
                }
                switch (helper.GetParam("action").ToLower())
                {
                case "get":
                    Wlniao.WeChat.Model.Rules rulesGet = Wlniao.WeChat.BLL.Rules.Get(_Guid);
                    if (rulesGet == null)
                    {
                        rulesGet = new Wlniao.WeChat.Model.Rules();
                    }
                    try
                    {
                        rulesGet.ReContent = rulesGet.ReContent.Replace("\n", "<br/>");
                    }
                    catch { }
                    try
                    {
                        rulesGet.RuleHelp = rulesGet.RuleHelp.Replace("\n", "<br/>");
                    }
                    catch { }
                    helper.Response(rulesGet);
                    break;

                case "set":
                    Wlniao.WeChat.Model.Rules rulesSet = Wlniao.WeChat.BLL.Rules.Get(_Guid);
                    if (rulesSet == null)
                    {
                        rulesSet      = new Wlniao.WeChat.Model.Rules();
                        rulesSet.Guid = Guid.NewGuid().ToString();
                    }
                    rulesSet.RuleName     = helper.GetParam("RuleName");
                    rulesSet.DoMethod     = helper.GetParam("DoMethod");
                    rulesSet.ReContent    = helper.GetParam("ReContent").Replace("<br/>", "\n");
                    rulesSet.RuleHelp     = helper.GetParam("RuleHelp").Replace("<br/>", "\n");
                    rulesSet.CallBackText = helper.GetParam("CallBackText");
                    rulesSet.SendMode     = helper.GetParam("SendMode");
                    if (rulesSet.Id > 0)
                    {
                        if (Tool.GetConfiger("UseXml") == "true")
                        {
                            try
                            {
                                helper.Result.Join(System.IO.XMLHelper.UpdateData(PathHelper.Map("~/xcenter/data/wechat/rules.xml"), "Rules", System.IO.XMLHelper.CreateEqualParameter("Guid", rulesSet.Guid), System.IO.XMLHelper.CreateUpdateParameter("RuleName", rulesSet.RuleName), System.IO.XMLHelper.CreateUpdateParameter("DoMethod", rulesSet.DoMethod), System.IO.XMLHelper.CreateUpdateParameter("ReContent", rulesSet.ReContent), System.IO.XMLHelper.CreateUpdateParameter("RuleHelp", rulesSet.RuleHelp), System.IO.XMLHelper.CreateUpdateParameter("RuleHelp", rulesSet.CallBackText)));
                            }
                            catch (Exception ex)
                            {
                                helper.Result.Add("错误:" + ex.Message);
                            }
                        }
                        else
                        {
                            helper.Result = rulesSet.update();
                        }
                    }
                    else
                    {
                        if (Tool.GetConfiger("UseXml") == "true")
                        {
                            helper.Result.Join(System.IO.XMLHelper.AddData(PathHelper.Map("~/xcenter/data/wechat/rules.xml"), "Rules", System.IO.XMLHelper.CreateInsertParameter("Guid", rulesSet.Guid), System.IO.XMLHelper.CreateInsertParameter("RuleName", rulesSet.RuleName), System.IO.XMLHelper.CreateInsertParameter("DoMethod", rulesSet.DoMethod), System.IO.XMLHelper.CreateInsertParameter("ReContent", rulesSet.ReContent), System.IO.XMLHelper.CreateInsertParameter("RuleHelp", rulesSet.RuleHelp), System.IO.XMLHelper.CreateInsertParameter("CallBackText", rulesSet.CallBackText)));
                        }
                        else
                        {
                            helper.Result = rulesSet.insert();
                        }
                    }
                    helper.ResponseResult();
                    break;

                case "setcode":
                    Wlniao.WeChat.Model.RuleCode codeSet = Wlniao.WeChat.Model.RuleCode.findByField("StrGuid", _Guid);
                    if (codeSet == null)
                    {
                        helper.Result = Wlniao.WeChat.BLL.Rules.AddRuleCode(helper.GetParam("Code"), helper.GetParam("RuleGuid"), helper.GetParam("SepType"));
                    }
                    else
                    {
                        helper.Result = Wlniao.WeChat.BLL.Rules.EditRuleCode(_Guid, helper.GetParam("Code"), helper.GetParam("RuleGuid"), helper.GetParam("SepType"), helper.GetParam("Status"));
                    }
                    helper.ResponseResult();
                    break;

                case "delcode":
                    try
                    {
                        if (Wlniao.WeChat.Model.RuleCode.findByField("StrGuid", helper.GetParam("Guid")).delete() <= 0)
                        {
                            helper.Result.Add("Sorry,删除匹配项失败!");
                        }
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "getlist":
                    int pageIndex = 0;
                    int pageSize  = int.MaxValue;
                    try
                    {
                        pageIndex = int.Parse(helper.GetParam("pageIndex"));
                        pageSize  = int.Parse(helper.GetParam("pageSize"));
                    }
                    catch { }

                    System.DataPage <Wlniao.WeChat.Model.RuleCode> items = db.findPage <Wlniao.WeChat.Model.RuleCode>("RuleGuid='" + helper.GetParam("RuleGuid") + "'", pageIndex, pageSize);
                    List <Wlniao.WeChat.Model.RuleCode>            list  = items.Results;
                    if (list == null)
                    {
                        list = new List <Wlniao.WeChat.Model.RuleCode>();
                    }
                    foreach (Wlniao.WeChat.Model.RuleCode rulecode in list)
                    {
                        rulecode.Code = rulecode.Code.Replace("#", " ").Replace("$", " ").TrimStart().TrimEnd().Replace(" ", ",");
                    }
                    helper.Response("{total:" + items.RecordCount + ",data:" + Json.ToStringList(list) + "}");
                    break;

                case "setcontent":
                    Wlniao.WeChat.Model.RuleContent codeContent = Wlniao.WeChat.Model.RuleContent.findByField("StrGuid", _Guid);
                    if (codeContent == null)
                    {
                        helper.Result = Wlniao.WeChat.BLL.Rules.AddRuleContent(helper.GetParam("RuleGuid"), helper.GetParam("ContentType"), helper.GetParam("Title"), helper.GetParam("TextContent").Replace("<br/>", "\n"), helper.GetParam("PicUrl"), helper.GetParam("ThumbPicUrl"), helper.GetParam("MusicUrl"), helper.GetParam("LinkUrl"), helper.GetParam("ContentStatus"));
                    }
                    else
                    {
                        helper.Result = Wlniao.WeChat.BLL.Rules.EditRuleContent(_Guid, helper.GetParam("ContentType"), helper.GetParam("Title"), helper.GetParam("TextContent").Replace("<br/>", "\n"), helper.GetParam("PicUrl"), helper.GetParam("ThumbPicUrl"), helper.GetParam("MusicUrl"), helper.GetParam("LinkUrl"), helper.GetParam("ContentStatus"));
                    }
                    helper.ResponseResult();
                    break;

                case "delcontent":
                    try
                    {
                        if (Wlniao.WeChat.Model.RuleContent.findByField("StrGuid", helper.GetParam("Guid")).delete() <= 0)
                        {
                            helper.Result.Add("Sorry,删除内容失败!");
                        }
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "stickcontent":
                    try
                    {
                        Wlniao.WeChat.Model.RuleContent stick = Wlniao.WeChat.Model.RuleContent.findByField("StrGuid", helper.GetParam("Guid"));
                        stick.LastStick = DateTools.GetNow();
                        stick.update("LastStick");
                    }
                    catch (Exception ex)
                    {
                        helper.Result.Add("错误:" + ex.Message);
                    }
                    helper.ResponseResult();
                    break;

                case "getcontentlist":
                    pageIndex = 0;
                    pageSize  = int.MaxValue;
                    try
                    {
                        pageIndex = int.Parse(helper.GetParam("pageIndex"));
                        pageSize  = int.Parse(helper.GetParam("pageSize"));
                    }
                    catch { }

                    System.DataPage <Wlniao.WeChat.Model.RuleContent> itemsContent = db.findPage <Wlniao.WeChat.Model.RuleContent>("RuleGuid='" + helper.GetParam("RuleGuid") + "' order by LastStick desc", pageIndex, pageSize);
                    List <Wlniao.WeChat.Model.RuleContent>            listContent  = itemsContent.Results;
                    if (listContent == null)
                    {
                        listContent = new List <Wlniao.WeChat.Model.RuleContent>();
                    }
                    foreach (Wlniao.WeChat.Model.RuleContent rulecontent in listContent)
                    {
                        rulecontent.TextContent = rulecontent.TextContent.Replace("\n", "<br/>");
                    }
                    helper.Response("{total:" + itemsContent.RecordCount + ",data:" + Json.ToStringList(listContent) + "}");
                    break;

                default:
                    break;
                }
            }
        }