logo

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