[ELMA3] Пример скрипта отправки SMS сообщения
В данной статье рассмотрен пример отправки SMS-сообщения прямо из бизнес-процесса.
Для этого воспользуемся API-интерфейсом компании "СМС Дисконт". Для того, чтобы воспользоваться интерфейсом, вам необходимо или получить через сайт тестовый логин и пароль, или заключить договор.
Требования API интерфейса:
- номер сотового телефона должен состоять из 11 цифр;
- максимальная длина сообщения не более 70 символов;
- кодировка текстового сообщения UTF-8;
- длина имени отправителя не более 11 символов латинскими буквами;
- допустимые имена отправителей регистрируются на сайте;
Для корректной работы сценария необходимо подключить ссылки на сборку:
using System.Web;
Текст сценария:
// формируем ссылку API интерфейса string urlsms = @"http://api.iqsms.ru/messages/v2/send/?phone=%2B"; // добавляем сотовый номер получателя (номер должен состоять из 11 знаков) urlsms = urlsms + "79876543210"; // кодируем строку URL-адресом, префикс обязателен string smstext = "&text=" + HttpUtility.UrlEncode("Поступила новая задача"); // перекодируем сообщения строки в UTF-8 smstext = smstext.Replace("+","%20"); // имя отправителя сообщения string smssender = "TEST"; // логин к API string smslogin = "&login=mokiodo5070"; // пароль к API string smspass = "&password=876543"; // собираем итоговую URL строку urlsms = urlsms + smssender + smstext + smslogin + smspass; // отправляем сообщение System.Diagnostics.Process.Start(urlsms);
В системе ELMA реализована возможность отправки sms-сообщений "СМС Дисконт". В настройках системы необходимо задать необходимые параметры (логин, пароль, имя отправителя и т.д.). Подробнее о настройках Вы можете прочитать в справке.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA с 3.8 включительно до 3.12.1 включительно.
// текст сообщения string message = "Сообщение"; // добавляем сотовый номер получателя (номер должен состоять из 11 знаков) string phoneNumber = "79876543210"; //Отправить сообщение (номер телефона, сообщение, указывать подпись "ELMA" или нет) var result = PublicAPI.Services.Sms.SendMessage(phoneNumber, message, true); // Если необходимо задать имя отправителя или список номеров, то можно воспользоваться другой перегрузкой //string senderName = "Имя отправителя"; //var result = PublicAPI.Services.Sms.SendMessage(senderName, new[] {phoneNumber}, message, true);
Пример сценария без использования PublicAPI
Пространства имен:
using EleWise.ELMA.Messaging.SMS.Services;
Пример сценария:
var service = GateManager.CurrentGate; // текст сообщения string message = "Сообщение"; // добавляем сотовый номер получателя (номер должен состоять из 11 знаков) string phoneNumber = "79876543210"; //Отправить сообщение (номер телефона, сообщение, указывать подпись "ELMA" или нет) var result = service.SendMessage(phoneNumber, message, true); // Если необходимо задать имя отправителя или список номеров, то можно воспользоваться другой перегрузкой //string senderName = "Имя отправителя"; //var result = service.SendMessage(senderName, new[] {phoneNumber}, message, true);