SendCommand
Команда взаимодействия с СМС-сервером "СМС-Центр"; осуществляет СМС-рассылку.
Шаблон SendCommand
<Command Name="" Type="SendCommand" Assembly="SMSCenterEngine">
<UserSqlQuery>
<Text></Text>
</UserSqlQuery>
<PasswordSqlQuery>
<Text></Text>
</PasswordSqlQuery>
<Background Value="True" />
<MultipleText Value="True" />
<PhonesSqlQuery>
<Text></Text>
</PhonesSqlQuery>
<NormalizePhones Type="Full" />
<Variables>
<Variable Name="VariableName" Value="[переменная]" />
</Variables>
<TitleVariable Value="[имя]" />
<CommonTextSqlQuery>
<Text></Text>
</CommonTextSqlQuery>
<MaleTextSqlQuery>
<Text></Text>
</MaleTextSqlQuery>
<FemaleTextSqlQuery>
<Text></Text>
</FemaleTextSqlQuery>
<PostSqlQuery>
<Text></Text>
</PostSqlQuery>
<UpdateStatusSqlQuery>
<Text></Text>
</UpdateStatusSqlQuery>
</Command>
Описание SendCommand
<Command Name="SendCommandName" Type="SendCommand" Assembly="SMSCenterEngine">
<!--Тэги, общие для всех команд-->
<!--Тэги, общие для всех команд сборки SMSCenterEngine-->
<!--Тэги, специфичные для определенной команды (зависит от типа) сборки SMSCenterEngine-->
</Command>
Тэги, специфичных для SendCommand
Background
Признак, определяющий, будет ли отправка СМС происходить в фоновом режиме (в отдельном потоке, то есть без задержки для приложения, вызвавшего данную команду).
Необязательный тэг. Значение тэга <Background>
: не ожидается.
Если тэг <Background>
отсутствует, то для атрибута Value
используется значение False.
<Background Value="False" />
Атрибуты тэга <Background>
<Background>
Value
Значение.
Обязательный атрибут. Ожидается логическое значение.
MultipleText
Признак, определяющий, будет ли отправка СМС происходить с разным текстом для разных адресатов.
Необязательный тэг. Значение тэга <MultipleText>
: не ожидается.
Если тэг <MultipleText>
отсутствует, то для атрибута Value
используется значение False.
Атрибуты тэга <MultipleText>
<MultipleText>
Value
Значение.
Обязательный атрибут. Ожидается логическое значение.
PhonesSqlQuery
Sql-запрос, возвращающий список телефонов, переменных для автозамены в тексте сообщений, имена, а также пол владельцев, которым следует отправить сообщение через систему "СМС-Центр".
Обязательный тэг. Значение тэга <PhonesSqlQuery>
: тэг <Text>
.
<PhonesSqlQuery>
<Text>
SELECT
sms_phone_id AS "Id",
phone AS "Phone",
title AS "Title",
{Now} AS "DateSend",
sex AS "Sex",
text_id AS "TextId",
variable_value AS "VariableName"
FROM
sms_phone
</Text>
</PhonesSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
Id - произвольный идентификатор, соответствующий телефону для отправки СМС, который будет использоваться в Post-запросе и UpdateStatus-запросе.
Phone - телефон для отправки СМС.
Title - имя адресата СМС, которое будет подставлено в текст сообщения через переменную TitleVariable (или через переменную с именем Title, описанную в тэге
<Variables>
).DateSend - дата, когда сообщение будет передано от СМС-сервера оператору.
Sex - пол адресата СМС.
TextId (столбец обязателен только при истинном значении атрибута
Value
в тэге<Multiple>
) - идентификатор отправляемого текста, указываемого в запросе из тэга<MaleTextSqlQuery>
или<FemaleTextSqlQuery>
(в зависимости от значения в поле "Sex").
+ любые другие столбцы с произвольными именами переменных для замены, которые описаны в тэге <Variables>
команды.
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.
NormalizePhones
Способ, которым номера телефонов, полученные из поля Phone запроса PhonesSqlQuery, будут приводиться к нормальному виду перед отправкой в систему "СМС-Центр".
Необязательный тэг. Значение тэга <NormalizePhones>
: не ожидается.
Если тэг <NormalizePhones>
отсутствует, то для атрибута Type
используется значение Full.
<NormalizePhones Type="Full" />
Атрибуты тэга <NormalizePhones>
<NormalizePhones>
Type
Тип нормализации.
Обязательный атрибут. Ожидается название одного из типов нормализации номеров телефонов.
Типы нормализации номеров телефонов
None
Нормализация не выполняется
Trim
Из телефона удаляются все символы, за исключением цифр
Full
Из телефона удаляются все символы, за исключением цифр, в 11-значных номерах начальная 8-ка меняется на 7, в 10-значных в начало дописывается 7 (нормализация для российских номеров)
Variables
Список переменных для замены в тексте сообщения. При отсутствии замен производиться не будет.
Необязательный тэг. Значение тэга <Variables>
: список тэгов <Variable>
.
<Variables>
<Variable Name="VariableName" Value="[переменная]" />
</Variables>
Тэг <Variable>
<Variable>
Переменная для замены в тексте сообщения. В исходном сообщении все текстовые строки Value будут заменены на значения, полученные из поля Name запроса PhonesSqlQuery.
Обязательный тэг. Значение тэга <Variable>
: не ожидается.
Атрибуты тэга <Variable>
<Variable>
Name
Имя переменной для подстановки.
Обязательный атрибут. Ожидается название одного из полей, возвращаемых в запросе PhonesSqlQuery.
Value
Текстовая строка, которая будет заменяться в исходном сообщении.
Необязательный атрибут. Значение атрибута Value
: любое значение.
TitleVariable
Текстовая строка, которая будет заменена в исходном тексте сообщения на имя адресата СМС. При отсутствии переменная заменяться не будет.
Необязательный тэг. Значение тэга <TitleVariable>
: не ожидается.
<TitleVariable Value="[имя]" />
Атрибуты тэга <TitleVariable>
<TitleVariable>
Value
Значение.
Обязательный атрибут. Значение атрибута Value
: любое значение.
CommonTextSqlQuery
Sql-запрос, возвращающий текст сообщения.
Обязательный тэг. Значение тэга <CommonTextSqlQuery>
: тэг <Text>
.
<CommonTextSqlQuery>
<Text>
SELECT
text_id AS "TextId",
'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
FROM
male_text
</Text>
</CommonTextSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
TextId (столбец обязателен только при истинном значении атрибута Value в тэге
<Multiple>
) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга<PhonesSqlQuery>
.Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге
<Variables>
команды.
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.
MaleTextSqlQuery
Sql-запрос, возвращающий текст сообщения для лиц мужского пола.
Обязательный тэг. Значение тэга <MaleTextSqlQuery>
: тэг <Text>
.
<MaleTextSqlQuery>
<Text>
SELECT
text_id AS "TextId",
'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
FROM
male_text
</Text>
</MaleTextSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
TextId (столбец обязателен только при истинном значении атрибута Value в тэге
<Multiple>
) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга<PhonesSqlQuery>
.Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге
<Variables>
команды.
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.
FemaleTextSqlQuery
Sql-запрос, возвращающий текст сообщения для лиц женского пола.
Обязательный тэг. Значение тэга <FemaleTextSqlQuery>: тэг <Text>
.
<FemaleTextSqlQuery>
<Text>
SELECT
text_id AS "TextId",
'Уважаемая, [имя]! Номер вашего заказа – [переменная]' AS "Text"
FROM
female_text
</Text>
</FemaleTextSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
TextId (столбец обязателен только при истинном значении атрибута Value в тэге
<Multiple>
) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга<PhonesSqlQuery>
.Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге
<Variables>
команды.
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.
PostSqlQuery
Sql-запрос, выполняющийся при успешной отправке каждого СМС.
Необязательный тэг. Значение тэга <PostSqlQuery>
: тэг <Text>
.
<PostSqlQuery>
<Text>
UPDATE
sms_phone
SET
message_id = {MessageId},
text = {Text},
sex = {Sex},
cost = {Cost}
WHERE
sms_phone_id = {Id}
</Text>
</PostSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.
Текст sql-запроса поддерживает переменную {MessageId}, заменяемые при его выполнении значением идентификатора СМС в системе "СМС-Центра".
Текст sql-запроса поддерживает переменную {Cost}, заменяемые при его выполнении значением стоимости отправки СМС в системе "СМС-Центра".
Текст sql-запроса поддерживает переменную {Id}, заменяемую при его выполнении значением, возвращенным для очередного телефона в запросе, указанном в тэге <PhonesSqlQuery>
.
Текст sql-запроса поддерживает переменную {Text}, заменяемую при его выполнении значением текста, который был отправлен в СМС.
Текст sql-запроса поддерживает переменную {Sex}, заменяемую при его выполнении значением пола адресата СМС, указанном в тэге <PhonesSqlQuery>
.
UpdateStatusSqlQuery
Sql-запрос, выполняющийся после отправки всех сообщений с задержкой в 10 секунд после отправки последнего из них.
Необязательный тэг. Значение тэга <UpdateStatusSqlQuery>
: тэг <Text>
.
<UpdateStatusSqlQuery>
<Text>
UPDATE
sms_phone
SET
sms_status_id = {SMSStatusId}
WHERE
sms_phone_id = {Id}
</Text>
</UpdateStatusSqlQuery>
Тэг <Text>
<Text>
Содержит sql-запрос.
Обязательный тэг. Значение тэга <Text>
: текст sql-запроса.
Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):
Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.
Текст sql-запроса поддерживает переменную {SMSStatusId}, заменяемые при его выполнении значением статуса отправки в системе "СМС-Центра".
Текст sql-запроса поддерживает переменную {Id}, заменяемую при его выполнении значением, возвращенным для очередного телефона в запросе, указанном в тэге <PhonesSqlQuery>
.
Возможные статусы отправки СМС в системе "СМС-Центр"
-1
Ожидает отправки оператору
0
Передано оператору
1
Доставлено
3
Просрочено
20
Невозможно доставить
22
Неверный номер
23
Запрещено
24
Недостаточно средств
25
Недоступный номер
Last updated