Esempio n. 1
0
 void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
 {
     try
     {
         var list = Gateway.GetMO();
         if (list == null || list.Count == 0)
         {
             return;
         }
         if (DeliverEvent != null)
         {
             foreach (var mo in list)
             {
                 DeliverEventArgs de = new DeliverEventArgs(mo);
                 DeliverEvent(this, de);
                 string tr = JsonConvert.SerializeObject(de);
                 LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO ->", tr);
             }
         }
         MessageHelper.Instance.WirteTest("上行短信:" + JsonConvert.SerializeObject(list));
     }
     catch (Exception ex)
     {
         MessageHelper.Instance.WirteError("获取上行短信发生错误", ex);
         LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO Error ->", ex.Message);
     }
 }
Esempio n. 2
0
 private void HttpServer_DeliverEvent(object sender, DeliverEventArgs e)
 {
     if (DeliverEvent != null)
     {
         DeliverEvent(this, e);
     }
 }
Esempio n. 3
0
 public void MORecieved(List <MOSMS> list)
 {
     try
     {
         if (list == null || list.Count == 0)
         {
             return;
         }
         if (DeliverEvent != null)
         {
             foreach (var mo in list)
             {
                 DeliverEventArgs de = new DeliverEventArgs(mo);
                 DeliverEvent(this, de);
                 string tr = JsonConvert.SerializeObject(de);
                 LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO ->", tr);
             }
         }
         MessageHelper.Instance.WirteTest("上行短信:" + JsonConvert.SerializeObject(list));
     }
     catch (Exception ex)
     {
         MessageHelper.Instance.WirteError("获取上行短信发生错误", ex);
         LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO Error ->", ex.Message);
     }
 }
Esempio n. 4
0
 static void Gateway_DeliverEvent(object sender, DeliverEventArgs e)
 {
     try
     {
         //写库
         MOSend.Instance.Send(JsonConvert.SerializeObject(e.MO));
     }
     catch (Exception ex)
     {
         LogHelper.LogError("Gateway", "GatewayHost.Gateway_DeliverEvent", ex.ToString());
     }
 }
Esempio n. 5
0
 void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
 {
     try
     {
         string   msgid    = "";
         string   msg      = "";
         string   mobile   = "";
         DateTime datetime = DateTime.Now;
         string   post     = string.Format("act=smsrecord&unitid={0}&username={1}&passwd={2}&rowid=0", _config.UserId, _config.Account, _config.Password);
         string   t        = HTTPRequest.PostWebRequest(moUrl, post, Encoding.UTF8);
         if (t == "0")
         {
             return;
         }
         //格式: 序号 |^| 上行号码 |^| 内容 |^| 时间 |^| sp端口号 两条记录之间用 |;| 分隔
         //32221 | 15800000000 |^| 这是回复测试 |^| 2000 - 07 - 16 15:10:27 |^| 1065788 |;| 32222 |^| 15800000000 |^| 这是回复测试2 |^| 2000 - 07 - 16 15:10:27 |^| 1065788
         string[] mos = t.Split(split, StringSplitOptions.RemoveEmptyEntries);
         if (mos.Length == 0)
         {
             return;
         }
         foreach (string mo in mos)
         {
             string[] moc = t.Split(splitContent, StringSplitOptions.RemoveEmptyEntries);
             mobile = moc[1];
             msg    = moc[2];
             msgid  = moc[0];
             if (!DateTime.TryParse(moc[3], out datetime))
             {
                 datetime = DateTime.Now;
             }
             if (DeliverEvent != null)
             {
                 DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), datetime, msg, mobile, SrcID, "");
                 DeliverEvent(this, re);
                 string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                 LogClient.LogHelper.LogInfo("JCSY", "MO ->", tr);
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         LogClient.LogHelper.LogInfo("JCSY", "MO Error ->", ex.Message);
     }
 }
Esempio n. 6
0
 void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
 {
     try
     {
         var list = Gateway.GetMO();
         if (DeliverEvent != null)
         {
             foreach (var mo in list)
             {
                 DeliverEventArgs de = new DeliverEventArgs(mo);
                 DeliverEvent(this, de);
                 string tr = JsonConvert.SerializeObject(de);
                 LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO ->", tr);
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "MO Error ->", ex.Message);
     }
 }
Esempio n. 7
0
        void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                string t = client.GetMo(account, password);
                //t = "15854881986|,|A 回复内容|,|2015-1-18 3:02:01|;|";
                //t = "15854881986|,|A 回复内容|,|2015-1-18 3:02:01|,|106575010199|;|";
                t = t.Replace("|,|", ((char)3).ToString());
                t = t.Replace("|;|", ((char)2).ToString());

                string[] rs = t.Split((char)2);
                foreach (string r in rs)
                {
                    if (r != "")
                    {
                        string[] result = r.Split((char)3);

                        if (DeliverEvent != null)
                        {
                            DateTime d;
                            if (!DateTime.TryParse(result[2], out d))
                            {
                                d = DateTime.Now;
                            }

                            DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), d, result[1], result[0], SrcID, "");
                            DeliverEvent(this, re);
                            string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                            LogClient.LogHelper.LogInfo("TPYX", "MO ->", tr);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogClient.LogHelper.LogInfo("TPYX", "MO Error ->", ex.Message);
            }
        }
Esempio n. 8
0
        public override void handleGETRequest(HttpProcessor p)
        {
            p.writeSuccess();

            string[] ts = p.http_url.Split('?');


            string url = ts[0];


            if (url == "/MO")
            {
                //http://pushMoUrl?receiver=admin&pswd=12345&moTime=1208212205&mobile=13800210021&destcode=1065751600001&msg=hello&destcode=10657109012345
                ts = ts[1].Split('&');
                string   receiver = "";
                string   pswd     = "";
                DateTime moTime   = DateTime.Now;
                string   mobile   = "";
                string   destcode = "";
                string   msg      = "";
                string   emshead;
                string   isems;
                string[] t;
                string   time;
                foreach (string s in ts)
                {
                    t = s.Split('=');
                    switch (t[0])
                    {
                    case "receiver":
                        receiver = t[1];
                        break;

                    case "pswd":
                        pswd = t[1];
                        break;

                    case "moTime":
                        //格式YYMMDDhhmm,其中YY=年份的最后两位(00-99),MM=月份(01-12),DD=日(01-31),hh=小时(00-23),mm=分钟(00-59)
                        time = DateTime.Now.Year + "-" + t[1].Substring(2, 2) + "-" + t[1].Substring(4, 2) + " " + t[1].Substring(6, 2) + ":" + t[1].Substring(8, 2);
                        if (!DateTime.TryParse(time, out moTime))
                        {
                            moTime = DateTime.Now;
                        }
                        break;

                    case "mobile":
                        mobile = t[1];
                        break;

                    case "destcode":
                        // destcode = t[1];
                        break;

                    case "msg":
                        msg = System.Web.HttpUtility.UrlDecode(t[1]);
                        break;

                    case "isems":
                        isems = t[1];
                        break;

                    case "emshead":
                        emshead = t[1];
                        break;
                    }
                }

                try
                {
                    DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), moTime, msg, mobile, destcode, "");
                    DeliverEvent(this, re);
                    string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                    LogClient.LogHelper.LogInfo("JCWG", "MO ->", tr);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    LogClient.LogHelper.LogInfo("JCWG", "MO Error ->", ex.Message);
                }
            }

            if (url == "/Report")
            {
                //"http://pushUrl?receiver=admin&pswd=12345&msgid=12345&reportTime=1012241002&mobile=13900210021&status=DELIVRD"
                ts = ts[1].Split('&');
                string   receiver   = "";
                string   pswd       = "";
                string   msgid      = "";
                DateTime reportTime = DateTime.Now;
                string   mobile     = "";
                string   status     = "";

                string[] t;
                string   time;
                foreach (string s in ts)
                {
                    t = s.Split('=');
                    switch (t[0])
                    {
                    case "receiver":
                        receiver = t[1];
                        break;

                    case "pswd":
                        pswd = t[1];
                        break;

                    case "reportTime":
                        //格式YYMMDDhhmm,其中YY=年份的最后两位(00-99),MM=月份(01-12),DD=日(01-31),hh=小时(00-23),mm=分钟(00-59)
                        time = DateTime.Now.Year + "-" + t[1].Substring(2, 2) + "-" + t[1].Substring(4, 2) + " " + t[1].Substring(6, 2) + ":" + t[1].Substring(8, 2);
                        if (!DateTime.TryParse(time, out reportTime))
                        {
                            reportTime = DateTime.Now;
                        }
                        break;

                    case "mobile":
                        mobile = t[1];
                        break;

                    case "status":
                        status = t[1];
                        break;

                    case "msgid":
                        msgid = t[1];
                        break;
                    }
                }

                try
                {
                    bool   ok = false;
                    ushort statecode;
                    string statetext = "短消息转发成功";
                    switch (status)
                    {
                    case "DELIVRD":
                        statetext = "短消息转发成功";
                        statecode = 2100;
                        ok        = true;
                        break;

                    case "EXPIRED":
                        statetext = "短消息超过有效期";
                        statecode = 2101;
                        break;

                    case "UNDELIV":
                        statetext = "短消息是不可达的";
                        statecode = 2102;
                        break;

                    case "UNKNOWN":
                        statetext = "未知短消息状态";
                        statecode = 2103;
                        break;

                    case "REJECTD":
                        statetext = "短消息被短信中心拒绝";
                        statecode = 2104;
                        break;

                    case "DTBLACK":
                        statetext = "目的号码是黑名单号码";
                        statecode = 2105;
                        break;

                    case "ERR: 104":
                        statetext = "系统忙";
                        statecode = 2106;
                        break;

                    case "REJECT":
                        statetext = "审核驳回";
                        statecode = 2107;
                        break;

                    default:
                        statetext = "网关内部状态";
                        statecode = 2108;
                        break;
                    }

                    if (!ok)
                    {
                        statetext = "发送失败。";
                    }

                    ReportEventArgs re = new ReportEventArgs(msgid, ok, statecode, statetext, reportTime);
                    ReportEvent(this, re);
                    string tr = JsonSerialize.Instance.Serialize <ReportEventArgs>(re);
                    Console.WriteLine("返回状态报告:" + tr);
                    LogClient.LogHelper.LogInfo("JCWG", "GetReport Process ->", tr);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    LogClient.LogHelper.LogInfo("JCWG", "GetReport Error ->", ex.Message);
                }
            }
        }
Esempio n. 9
0
        void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
        {
            //         <? xml version = "1.0" encoding = "utf-8" ?>
            //< returnsms >
            //< call >
            //< mid > 121212121212 </ mid > --------------系统里面对应的唯一的mid
            //< mobile > 15023239810 </ mobile > -------------手机号码
            //< content > 好 </ content > -------------上行内容
            //< taskid > 1212 </ taskid > --------------某次提交任务的ID
            //< updatetime > 2011 - 12 - 02 22:12:11 </ updatetime > -------------更新时间
            //       </ call >
            //       < call >
            //       < mid > 121212121212 </ mid > --------------系统里面对应的唯一的mid
            //       < mobile > 15023239810 </ mobile > -------------手机号码
            //       < content > 好 </ content > -------------上行内容
            //       < taskid > 1212 </ taskid > --------------某次提交任务的ID
            //       < updatetime > 2011 - 12 - 02 22:12:11 </ updatetime > -------------更新时间
            //              </ call >
            //              </ returnsms >

            try
            {
                string   msgid    = "";
                string   msg      = "";
                string   mobile   = "";
                DateTime datetime = DateTime.Now;
                string   post     = string.Format("action=query&userid={0}&account={1}&password={2}", userId, account, password);
                string   t        = HTTPRequest.PostWebRequest(moUrl, post, System.Text.Encoding.UTF8);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(t);
                XmlElement root = null;
                root = doc.DocumentElement;
                XmlNodeList listNodes = root.ChildNodes;
                foreach (XmlNode node in listNodes)
                {
                    foreach (XmlNode cNode in node.ChildNodes)
                    {
                        switch (cNode.Name)
                        {
                        case "mid":
                            break;

                        case "mobile":
                            mobile = cNode.InnerText;
                            break;

                        case "content":
                            msg = cNode.InnerText;
                            break;

                        case "taskid":
                            msgid = cNode.InnerText;
                            break;

                        case "updatetime":

                            if (!DateTime.TryParse(cNode.InnerText, out datetime))
                            {
                                datetime = DateTime.Now;
                            }
                            break;
                        }
                    }
                    if (DeliverEvent != null)
                    {
                        DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), datetime, msg, mobile, SrcID, "");
                        DeliverEvent(this, re);
                        string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                        LogClient.LogHelper.LogInfo("DWWG", "MO ->", tr);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogClient.LogHelper.LogInfo("DWWG", "MO Error ->", ex.Message);
            }
        }
Esempio n. 10
0
        void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                string   msgid    = "";
                string   msg      = "";
                string   mobile   = "";
                string   extno    = "";
                DateTime datetime = DateTime.Now;
                string   post     = string.Format("action=query&userid={0}&account={1}&password={2}", userId, account, password);
                string   t        = HTTPRequest.PostWebRequest(moUrl, post, System.Text.Encoding.UTF8);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(t);
                XmlElement root = null;
                root = doc.DocumentElement;
                XmlNodeList listNodes = root.ChildNodes;
                foreach (XmlNode node in listNodes)
                {
                    foreach (XmlNode cNode in node.ChildNodes)
                    {
                        switch (cNode.Name)
                        {
                        case "mobile":
                            mobile = cNode.InnerText;
                            break;

                        case "content":
                            msg = cNode.InnerText;
                            break;

                        case "taskid":
                            msgid = cNode.InnerText;
                            break;

                        case "extno":
                            extno = cNode.InnerText;
                            break;

                        case "receivetime":

                            if (!DateTime.TryParse(cNode.InnerText, out datetime))
                            {
                                datetime = DateTime.Now;
                            }
                            break;
                        }
                    }
                    if (DeliverEvent != null)
                    {
                        DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), datetime, msg, mobile, extno, "");
                        DeliverEvent(this, re);
                        string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                        LogClient.LogHelper.LogInfo("ZSXWG", "MO ->", tr);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageHelper.Instance.WirteError(ex.ToString());
                LogClient.LogHelper.LogInfo("ZSXWG", "MO Error ->", ex.Message);
            }
        }
Esempio n. 11
0
        void tmrMO_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                string   msg      = "";
                string   mobile   = "";
                DateTime datetime = DateTime.Now;
                string   md5p     = MD5Helper.GetMD5(password);
                string   post     = string.Format("Account={0}&Password={1}", account, md5p);
                string   t        = HTTPRequest.PostWebRequest(moUrl, post, System.Text.Encoding.UTF8);
                Console.WriteLine("原始MO查询消息: " + t);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(t);
                XmlElement root = null;
                root = doc.DocumentElement;
                XmlNodeList listNodes = root.ChildNodes;
                foreach (XmlNode node in listNodes)
                {
                    if (node.Name == "response")
                    {
                        int c = int.Parse(node.InnerText);
                        if (c == 0)
                        {
                            return;
                        }
                        if (c < 0)
                        {
                            Console.WriteLine(GetErrorMsg(c));
                            return;
                        }
                    }
                    else
                    {
                        foreach (XmlNode cNode in node.ChildNodes)
                        {
                            switch (cNode.Name)
                            {
                            case "phone":
                                mobile = cNode.InnerText;
                                break;

                            case "content":
                                msg = HttpUtility.UrlDecode(cNode.InnerText);
                                break;

                            case "sendTime":

                                if (!DateTime.TryParse(cNode.InnerText, out datetime))
                                {
                                    datetime = DateTime.Now;
                                }
                                break;
                            }
                        }
                        if (DeliverEvent != null)
                        {
                            DeliverEventArgs re = new DeliverEventArgs(Guid.NewGuid().ToString(), datetime, msg, mobile, SrcID, "");
                            DeliverEvent(this, re);
                            string tr = JsonSerialize.Instance.Serialize <DeliverEventArgs>(re);
                            LogClient.LogHelper.LogInfo("WFLTQY", "MO ->", tr);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                LogClient.LogHelper.LogInfo("WFLTQY", "MO Error ->", ex.Message);
            }
        }