Пример #1
0
 public static void SendMessages(List<TMSG> _msgs, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     if (_onstart != null)
         _onstart(_msgs);
     string retval = "";
     try
     {
         string msg = "BitrixLogin="******"&BitrixPassMD5=" + Config.CABAuth.Password + "&json=" + CABToJson(_msgs) ;
         retval = THTTP.Post(Config.CABAuth.URL, msg, _onresponse, _onerror);
     }
     catch
     {
         _onerror(_msgs);
     }
     List<string> hascab = HasCab(retval);
     foreach (var msg in _msgs)
     {
         if (hascab.Contains(msg.Address))
             msg.ExternalID = msg.ID;
         else
             msg.ExternalID = -1;
     }
     if (_onresponse != null)
         _onresponse(_msgs);
 }
Пример #2
0
 public static void SendMessage(TMSG _msg, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     if (_onstart != null)
         _onstart(_msg);
     SmtpClient smtp = new SmtpClient(Config.EMAILAuth.URL);
     if (Config.EMAILAuth.Login != "")
         smtp.Credentials = new System.Net.NetworkCredential(Config.EMAILAuth.Login, Config.EMAILAuth.Password);
     else
         smtp.UseDefaultCredentials = true;
     _msg.ExternalID = _msg.ID;
     try
     {
         MailMessage msg = new MailMessage();
         msg.From = new MailAddress("ППФ Страхование Жизни <*****@*****.**>");
         msg.IsBodyHtml = true;
         msg.HeadersEncoding = Encoding.UTF8;
         msg.BodyEncoding = Encoding.UTF8;
         msg.To.Add(_msg.Address);
         msg.Subject = _msg.TopicString;
         msg.Body = _msg.Text;
         smtp.Send(msg);
     }
     catch (Exception _ex)
     {
         TLogger.Add("Отправка сообщения EMail. Не удалось отправить сообщение EMail! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
         _msg.ExternalID = -1;
     }
     if (_onresponse != null) _onresponse(_msg);
 }
Пример #3
0
 public static void SendMessage(TMSG _msg, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     if (_onstart != null)
         _onstart(_msg);
     _msg.ExternalID = _msg.ID;
     if (_onresponse != null)
         _onresponse(_msg);
 }
Пример #4
0
 public static void SendMessage(TMSG _msg, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     if (_onstart != null)
         _onstart(_msg);
     string retval = "";
     try
     {
         string msg = "BitrixLogin="******"&BitrixPassMD5=" + Config.CABAuth.Password + "&ID=" + _msg.Address + "&TEXT=" + _msg.Text;
         //UTF8Encoding encoding = new UTF8Encoding();
         //byte[] postBytes = encoding.GetBytes(msg);
         retval = THTTP.Post(Config.CABAuth.URL, msg, _onresponse, _onerror);
     }
     catch
     {
         _msg.ExternalID = -1;
     }
     if (retval == "created")
         _msg.ExternalID = _msg.ID;
     else
         _msg.ExternalID = -1;
     if (_onresponse != null)
         _onresponse(_msg);
 }
Пример #5
0
 public static void SendMessage(List<TMSG> _data, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     if (_onstart!=null)
     {
         _onstart(_data);
     }
     // Создаем и заполняем данные на отправку
     consumeOutMessageRequest req = new consumeOutMessageRequest();
     req.header = new consumeOutMessageRequestHeader();
     req.header.auth = new consumeOutMessageRequestHeaderAuth();
     req.header.auth.login = Config.SMSAuth.Login;
     req.header.auth.password = Config.SMSAuth.Password;
     req.payload = new consumeOutMessageRequestPayload();
     req.payload.outMessageCommon = new consumeOutMessageRequestPayloadOutMessageCommon();
     /*          PPF – это гарантированный канал.По этому каналу отправляем Начисления и Задолженности.Шаблон на сайте называется «Начисления - задолженности»
     PPF1 – это негарантированный канал.По нему направляем все остальные смс. Шаблон на сайте называется «остальные»
     HCINSURANCE - я не знаю  что это.  Шаблон называется ХКФБ,  но для кого он я не знаю*/
     req.payload.outMessageCommon.priority = consumeOutMessageRequestPayloadOutMessageCommonPriority.high;
     req.payload.outMessageCommon.contentType = consumeOutMessageRequestPayloadOutMessageCommonContentType.text;
     req.payload.outMessageCommon.localStartTime = true;
     req.payload.outMessageList = new consumeOutMessageRequestPayloadOutMessage[_data.Count];
     for (int i = 0; i < (_data).Count; i++)
     {
         req.payload.outMessageList[i] = new consumeOutMessageRequestPayloadOutMessage();
         req.payload.outMessageList[i].clientId = (_data)[i].ID.ToString();
         req.payload.outMessageList[i].address = (_data)[i].Address;
         req.payload.outMessageList[i].content = (_data)[i].Text;
         req.payload.outMessageList[i].subject = ((_data)[i].Priority == 0) ? "PPF1" : "PPF";
         req.payload.outMessageList[i].localStartTime = true;
         req.payload.outMessageList[i].startTimeDT = (_data)[i].ToSend;
     }
     XmlDocument xml = req.Serialize();
     TLogger.Add("Отправка СМС. Пробуем отправить " + (_data).Count + " сообщения провайдеру по каналу SMS." + (Config.LogXML==1?(Environment.NewLine + xml.InnerXml + Environment.NewLine):""), TLogger.MSGType.eInfo);
     string ret = "";
     try
     {
         ret = THTTP.PostXML(Config.SMSAuth.URL, xml);
     }
     catch (Exception _ex)
     {
         TLogger.Add("Отправка СМС. Ошибка соединения с провайдером рассылки SMS! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
         if (_onerror != null)
             _onerror(_data);
         return;
     }
     if (ret != "")
     {
         if (_onresponse != null)
         {
             xml = new XmlDocument();
             xml.LoadXml(ret);
             TLogger.Add("Отправка СМС. Получен ответ по отправке сообщений провайдером по каналу SMS." + (Config.LogXML == 1 ? (Environment.NewLine + Environment.NewLine + xml.InnerXml + Environment.NewLine) : ""), TLogger.MSGType.eInfo);
             consumeOutMessageResponse res = new consumeOutMessageResponse();
             try
             {
                 res = (consumeOutMessageResponse)((xml).Deserialize(typeof(consumeOutMessageResponse)));
             }
             catch (Exception _ex)
             {
                 TLogger.Add("Отправка СМС. Ошибка разбора XML! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
                 if (_onerror != null)
                     _onerror(_data);
                 return;
             }
             List<TMSG> retval = new List<TMSG>();
             foreach (var el1 in (_data))
             {
                 foreach (var el2 in res.payload.outMessageList)
                 {
                     if (el1.ID == int.Parse(el2.clientId))
                     {
                         int providerid = -1;
                         int.TryParse(el2.providerId, out providerid);
                         if (providerid > 0)
                         {
                             el1.ExternalID = providerid;
                             break;
                         }
                     }
                 }
                 retval.Add(el1);
             }
             _onresponse(retval);
         }
     }
     else
     {
         if (_onerror != null)
             _onerror(null);
     }
 }
Пример #6
0
 public static void CheckDeliveryStatus(List<TMSG> _data, ConnectorOnEventDelegate _onstart = null, ConnectorOnEventDelegate _onresponse = null, ConnectorOnEventDelegate _onerror = null)
 {
     // Создаем и заполняем данные на отправку
     if (_onstart != null)
         _onstart(_data);
     provideOutMessageDlvStatusRequest req = new provideOutMessageDlvStatusRequest();
     req.header = new provideOutMessageDlvStatusRequestHeader();
     req.header.auth = new provideOutMessageDlvStatusRequestHeaderAuth();
     req.header.auth.login = Config.SMSAuth.Login;
     req.header.auth.password = Config.SMSAuth.Password;
     req.payload = new provideOutMessageDlvStatusRequestPayload();
     req.payload.outMessageList = new provideOutMessageDlvStatusRequestPayloadOutMessage[_data.Count];
     for (int i = 0; i < (_data).Count; i++)
     {
         req.payload.outMessageList[i] = new provideOutMessageDlvStatusRequestPayloadOutMessage();
         if (_data[i].ExternalID >= 0)
             req.payload.outMessageList[i].providerId = _data[i].ExternalID.ToString();
     }
     XmlDocument xml = req.Serialize();
     TLogger.Add("Проверка статуса доставки SMS. Проверяем статус доставки " + _data.Count + " сообщений у провайдера по каналу SMS." + (Config.LogXML == 1 ? (Environment.NewLine + Environment.NewLine + xml.InnerXml + Environment.NewLine):""), TLogger.MSGType.eInfo);
     string ret = "";
     try
     {
         ret = THTTP.PostXML(Config.SMSAuth.URL, xml);
     }
     catch (Exception _ex)
     {
         TLogger.Add("Проверка статуса доставки SMS. Ошибка соединения с провайдером рассылки СМС! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
         if (_onerror != null)
             _onerror(_data);
         return;
     }
     if (ret != "")
     {
         if (_onresponse != null)
         {
             xml = new XmlDocument();
             xml.LoadXml(ret);
             TLogger.Add("Проверка статуса доставки SMS. Получен ответ по статусам доставки сообщений провайдером по каналу SMS." + (Config.LogXML == 1 ? (Environment.NewLine + Environment.NewLine + xml.InnerXml + Environment.NewLine):""), TLogger.MSGType.eInfo);
             provideOutMessageDlvStatusResponse res = new provideOutMessageDlvStatusResponse();
             try
             {
                 res = (provideOutMessageDlvStatusResponse)((xml).Deserialize(typeof(provideOutMessageDlvStatusResponse)));
             }
             catch (Exception _ex)
             {
                 TLogger.Add("Проверка статуса доставки SMS. Ошибка разбора XML! EXCEPTION: " + _ex.Message, TLogger.MSGType.eEmail);
                 if (_onerror != null)
                     _onerror(_data);
                 return;
             }
             List<TMSG> retval = new List<TMSG>();
             foreach (var el1 in _data)
             {
                 foreach (var el2 in res.payload.outMessageList)
                 {
                     if (el1.ExternalID == int.Parse(el2.providerId))
                     {
                         el1.DeliveryStatus = (int)el2.outMessageDlvStatus.dlvStatus;
                         break;
                     }
                 }
                 retval.Add(el1);
             }
             _onresponse(retval);
         }
     }
     else
     {
         if (_onerror != null)
             _onerror(null);
     }
 }