====== Краткое пошаговое руководство по работе с сервисом отправки СМС сообщений ======
В качестве клиента используем бесплатную программу [[https://www.soapui.org|SOAP UI]], но принцип работы сохраняется и при использовании других продуктов. В том числе и при разработке ПО на .NET ([[https://en.wikipedia.org/wiki/SOAP#History|Microsoft придумала стандарт SOAP]] и их средства как никакие другие подходят для этого). Программа существует под все популярные платформы и не имеет ограничений использования.\\
\\
Руководство по программе можно найти [[https://www.soapui.org/soap-and-wsdl/getting-started.html|на официальном сайте]]\\
\\
В SOAP UI создаём новый проект и в качестве Initial WSDL используем ссылку из [[products:kmis:project_documentation:server|документации]]: [[http://kmis.callbox.biz/?wsdl]]\\
\\
В этот момент SOAP UI (как и библиотека .NET) выгрузит из WSDL все приложения. Их три:
- //get_report// - получение статистики
- //notification// - оповещение абонента
- //upload_audio// - загрузка файла на сервис
Также программа выгрузит все методы для всех приложений. На текущий момент в каждом приложении 1 метод.\\
\\
При переходе к редактированию метода //Request// приложения //notification// откроется полный текст запроса с комментариями к нему:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Вопросительные знаки требуют ввода данных.\\
\\
Метод описывает сразу три возможных оповещения: посылка СМС (раздел sms_notifications), звонок абоненту с зачитыванием текста (ts_notifications) и звонок абоненту с проигрыванием файла (audio_notifications). В запросе должен быть использовано хотя бы одно оповещение. При этом, можно в одном запросе рассылать оповещения всех типов разным абонентам.\\
\\
Нас интересует СМС оповещение. Для его создания удаляем из запроса секции ts_notification и audio_notification и приводим запрос к виду:
?
?
?
?
?
?
?
?
?
?
Далее необходимо построчно заполнить данный запрос.\\
Первая строка с вопросительным знаком идентифицирует пользователя системы:
?
Вместо вопросительного знака необходимо в данную строку подставить UUID, выданный администратором системы. Пример корректного заполнения:
394ffb3b-20f5-4046-b6b2-758103698fe7
Вторая строка с вопросительным знаком идентифицирует запрос.
?
В данную строку необходимо сгенерить и подставить UUID. В случае дублирование UUID (некорректная генерация) сервер выдаст сообщение об ошибке. Пример корректного заполнения:
edeb4385-a7c5-4b1e-862c-bbf4b8b73abe
Следующая строка с вопросительным знаком, требующая заполнения определяет номер телефона пользователя, на который будет выслана СМС. Номер принимается в формате Е164. В качестве исключения код страны +7 может быть заменён на 8. При этом в данном случае в системе номер будет преобразован в формат Е164 и отчётная информация будет выводится именно по такому номеру.
?
Пример корректного заполнения:
+77778897158
Следующая строка, требующая заполнения определяет является ли рассылка персонализированной или нет.
?
Данное поле обязательно для заполнения (комментарий Optional перед ним в WSDL введён на момент отладки системы). В случае, если флаг установлен в False сообщение отсылается в том виде, в каком оно передано в запросе. В случае, если флаг установлен в True система воспринимает передаваемый текст как шаблон и ищет в запросе поля для его заполнения. Корректно заполнение поля для рассылки не адресной СМС:
false
Следующая строка, требующая заполнения определяет дату начала рассылки.
?
Дата указывается в формате YYYY-MM-DD и может быть произвольной. При этом хотя бы один день из диапазона дат должен быть в будущем. Пример корректного заполнения (показана дата в прошлом на момент написания статьи):
2017-08-01
Следующая строка, требующая заполнения определяет дату окончания рассылки.
?
Дата указывается в формате YYYY-MM-DD и может быть произвольной. При этом хотя бы один день из диапазона дат должен быть в будущем. Пример корректного заполнения:
2017-08-03
Следующие две строки, требующие заполнения определяют время начала и время окончания рассылки. Временной интервал применяется к одним суткам. То есть, например, если нам необходимо пытаться разослать сообщение каждый день только с полудня и до конца рабочего дня то в данных полях можно указать 12:00:00 и 17:00:00 и во вне этого интервала рассылка проводиться не будет.
?
?
При этом если время начала больше чем время окончания рассылки (например, с 18:00:00 до 09:00:00) то система проверяет что диапазон дат содержит несколько дней и будет осуществлять рассылку в ночное время.\\
Указание временного диапазона необязательно. В случае, если временной диапазон не указан, то рассылка подразумевается с 9:00:00 до 17:00:00. Пример корректного заполнения:
00:00:00
23:59:59
Следующая строка содержит текст непосредственно отправляемого сообщения
?
В случае, если указан флаг персональных сообщений данная строка воспринимается как шаблон. Описание шаблона смотрите в полной документации к работе сервера. Пример корректного заполнения:
Проверочная СМС.
Следующая строка определяет количество попыток доставки СМС до абонента. Данные попытки не определяют работу оператора связи. Система переходит к следующей попытке только после получения сообщения "не доставлено" от оператора связи.
?
Параметр может принимать любое целочисленное значение от 0 до 65535. Указание параметра не обязательно. В случае, если параметр не указан система предпримет одну попытку доставки сообщения. Пример корректного заполнения:
3
Итого, с учётом всех необязательных полей простейшей запрос для отправки СМС будет иметь следующий вид:
394ffb3b-20f5-4046-b6b2-758103698fe7
1beb9345-383a-422c-a67e-a4681e69be40
+77778897158
false
2017-08-01
2017-08-03
Тестовая СМС