Отправка СМС из 1С Предприятие 8.2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
Функция ОтправкаСМСЧерезФлайСМС(НомерПолучателяСМС,ТекстСообщенияСМС) Экспорт //Параметры аутентификации смс-центра //*********************************** Сервер = "sms-fly.com"; Логин = "38098*******";//ввести номер телефона, который логин в систему sms-fly.com Пароль = "*********";//ввести пароль в систему sms-fly.com Если СтрДлина(НомерПолучателяСМС) > 12 ИЛИ СтрДлина(НомерПолучателяСМС) < 10 Тогда Предупреждение("Неверный формат номера телефона! Пример: 380988547880 или 0988547880"); Возврат Ложь; КонецЕсли; Попытка Источник = КаталогВременныхФайлов()+"send"+НомерПолучателяСМС+".xml"; Результат = ПолучитьИмяВременногоФайла(); Запись = Новый ЗаписьXML; Запись.ОткрытьФайл(Источник, "UTF-8"); Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="UTF-8"?> Запись.ЗаписатьНачалоЭлемента("request"); Запись.ЗаписатьНачалоЭлемента("operation"); Запись.ЗаписатьТекст("SENDSMS"); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("message"); Запись.ЗаписатьАтрибут("start_time","AUTO"); Запись.ЗаписатьАтрибут("end_time","AUTO"); Запись.ЗаписатьАтрибут("livetime","4"); Запись.ЗаписатьАтрибут("rate","120"); Запись.ЗаписатьАтрибут("desc","Alfaname");//альфаимя - это сокращенное имя компании Запись.ЗаписатьАтрибут("source","Alfaname"); Запись.ЗаписатьНачалоЭлемента("body"); Запись.ЗаписатьТекст(ТекстСообщенияСМС); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("recipient"); Запись.ЗаписатьТекст(НомерПолучателяСМС); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьКонецЭлемента(); Запись.Закрыть(); Соединение = Новый HTTPСоединение(Сервер,,Логин,Пароль,); АдресСкрипта = "/api/api.php"; Соединение.ОтправитьДляОбработки(Источник,АдресСкрипта,Результат); Текст = Новый ТекстовыйДокумент; Текст.Прочитать(Результат); Для НомерСтроки=1 по Текст.КоличествоСтрок() Цикл ТекущаяСтрока = Текст.ПолучитьСтроку(НомерСтроки); Если Найти(ТекущаяСтрока,"ACCEPT") > 0 Тогда Сообщить("Сообщение успешно отправлено!"); Возврат Истина; ИначеЕсли Найти(ТекущаяСтрока,"XMLERROR") > 0 Тогда Сообщить("Некорректный XML!"); Возврат Ложь; ИначеЕсли Найти(ТекущаяСтрока,"ERRSTARTTIME") > 0 Тогда Сообщить("Не корректное время начала отправки!"); Возврат Ложь; ИначеЕсли Найти(ТекущаяСтрока,"ERRENDTIME") > 0 Тогда Предупреждение("Не корректное время окончания рассылки!"); Возврат Ложь; ИначеЕсли Найти(ТекущаяСтрока,"ERRPHONES") > 0 Тогда Сообщить("Неверно задан номер телефона получателя!"); Возврат Ложь; ИначеЕсли Найти(ТекущаяСтрока,"ERRALFANAME") > 0 Тогда Сообщить("Данное альфанумерическое имя использовать запрещено, либо ошибка!"); Возврат Ложь; ИначеЕсли Найти(ТекущаяСтрока,"ERRTEXT") > 0 Тогда Сообщить("Некорректный текст сообщения!"); Возврат Ложь; КонецЕсли; КонецЦикла; Исключение Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; КонецФункции |
Где-то так все это и происходит… Функция возвращает результат отправки. Можно, конечно, ещё кучу проверок забацать, но мне этих хватает. 🙂 Удачи в использовании.
Более подробную информацию про API сервиса отправки СМС можно почитать вот здесь: https://sms-fly.com/Info/API/
Категории: 1С Предприятие 8.2

