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); }
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); }
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); }
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); }
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); } }
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); } }