HelpF.pro

Отправка sms из 1C через МТС Коммуникатор

Есть сервис МТС Коммуникатор - удобный обмен SMS-сообщениями с Вашими сотрудниками, клиентами и партнерами. Так вот через него мы настроили отправку СМС клиентам компании из 1С:
Код 1C v 8.2 УП
 Если ПустаяСтрока(ТелефонКлиента) Тогда
		Сообщить("Не определен телефон экспедитора загрузки");
		Предупреждение("СМС не может быть отправлено");
	Иначе
		
		Адресат = ТелефонКлиента;
		Адресат = СтрЗаменить(СтрЗаменить(Адресат, "(", ""), ")", "");
		Адресат = СтрЗаменить(СтрЗаменить(СтрЗаменить(Адресат, ".", ""), "-", ""), " ", "");
		Адресат = СтрЗаменить(Адресат, "+", "");
		
		WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
		WinHttp.Option(2, "Windows-1251");
		WinHttp.Open("POST", "http://mtscommunicator.ru/m2m/m2m_api.asmx/SendMessage", 0);

		WinHttp.SetRequestHeader("Accept-Language", "ru");
		WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
		WinHttp.setRequestHeader("Content-Language", "ru");
		WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
		WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

		ПараметрыPOST = "msid=" + Адресат + "&message=" + ПодготовитьСообщение(ТекстСМС) + "&naming=USER&login=NUMERLOGIN&password=PASSWORD";

		Ошибка = Ложь;
		ИДСообщения = "";
		
		Попытка
			
			WinHttp.Send(ПараметрыPOST);

			ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла();

			Текст = Новый ЗаписьТекста(ИмяФайлаЗапроса, КодировкаТекста.UTF8);
			Текст.ЗаписатьСтроку(WinHttp.ResponseText());
			Текст.Закрыть();
		
			Ошибка = (WinHttp.Status <> 200);
			
		Исключение
			Ошибка = Истина;
		КонецПопытки;
		
		Если НЕ Ошибка Тогда 
			
			Попытка
				
				XMLОтвет = Новый ЧтениеXML;
				XMLОтвет.ОткрытьФайл(ИмяФайлаЗапроса);	
				
				Пока XMLОтвет.Прочитать() Цикл
					Если XMLОтвет.ТипУзла = ТипУзлаXML.НачалоЭлемента И (XMLОтвет.Имя = "long")  Тогда
						XMLОтвет.Прочитать();
						ИДСообщения = XMLОтвет.Значение;
						Прервать;
					КонецЕсли;
				КонецЦикла;		
				
			Исключение
				Ошибка = Истина;
			КонецПопытки;
			
		КонецЕсли;
		
		Если Ошибка Тогда 
			Сообщить("Не удалось отправить СМС. Проверьте настройки подключения");
			Предупреждение("СМС не было отправлено");
		Иначе
	
			ПоказатьОповещениеПользователя("Отправка СМС",, "СМС-сообщение отправлено ", БиблиотекаКартинок.СМС);
			
		КонецЕсли;
КонецЕсли;

//Преобразование текста сообщения
Функция ПодготовитьСообщение(Сообщение)
	
	ВрСообщение = "";
	
	Для ТекСимвол = 1 По СтрДлина(Сообщение) Цикл
		Если КодСимвола(Сред(Сообщение, ТекСимвол, 1)) = 10 Тогда
			ВрСообщение = ВрСообщение + " ";
		Иначе
			ВрСообщение = ВрСообщение + Сред(Сообщение, ТекСимвол, 1);
		КонецЕсли;
	КонецЦикла;
	
	Сообщение = ВрСообщение;
	Сообщение = СтрЗаменить(Сообщение, "%", "%25");
	Сообщение = СтрЗаменить(Сообщение, " ", "%20");
	Сообщение = СтрЗаменить(Сообщение, "&", "%26");
	Сообщение = СтрЗаменить(Сообщение, "#", "%23");
	Сообщение = СтрЗаменить(Сообщение, "*", "%2A");
	Сообщение = СтрЗаменить(Сообщение, "|", "%7C");
	Сообщение = СтрЗаменить(Сообщение, "\", "%5C");
	Сообщение = СтрЗаменить(Сообщение, "/", "%2F");
	Сообщение = СтрЗаменить(Сообщение, "?", "%3F");
	Сообщение = СтрЗаменить(Сообщение, "^", "%5E");
	
	Возврат Сообщение;
	
КонецФункции

   

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/1411.html