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>

Value

Значение.

Обязательный атрибут. Ожидается логическое значение.

MultipleText

Признак, определяющий, будет ли отправка СМС происходить с разным текстом для разных адресатов.

Необязательный тэг. Значение тэга <MultipleText>: не ожидается.

Если тэг <MultipleText> отсутствует, то для атрибута Value используется значение False.

Атрибуты тэга <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>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. Id - произвольный идентификатор, соответствующий телефону для отправки СМС, который будет использоваться в Post-запросе и UpdateStatus-запросе.

  2. Phone - телефон для отправки СМС.

  3. Title - имя адресата СМС, которое будет подставлено в текст сообщения через переменную TitleVariable (или через переменную с именем Title, описанную в тэге <Variables>).

  4. DateSend - дата, когда сообщение будет передано от СМС-сервера оператору.

  5. Sex - пол адресата СМС.

  6. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, указываемого в запросе из тэга <MaleTextSqlQuery> или <FemaleTextSqlQuery> (в зависимости от значения в поле "Sex").

+ любые другие столбцы с произвольными именами переменных для замены, которые описаны в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями передаваемых клиентом параметров с соответствующими названиями.

NormalizePhones

Способ, которым номера телефонов, полученные из поля Phone запроса PhonesSqlQuery, будут приводиться к нормальному виду перед отправкой в систему "СМС-Центр".

Необязательный тэг. Значение тэга <NormalizePhones>: не ожидается.

Если тэг <NormalizePhones> отсутствует, то для атрибута Type используется значение Full.

<NormalizePhones Type="Full" />

Атрибуты тэга <NormalizePhones>

Type

Тип нормализации.

Обязательный атрибут. Ожидается название одного из типов нормализации номеров телефонов.

Типы нормализации номеров телефонов

None

Нормализация не выполняется

Trim

Из телефона удаляются все символы, за исключением цифр

Full

Из телефона удаляются все символы, за исключением цифр, в 11-значных номерах начальная 8-ка меняется на 7, в 10-значных в начало дописывается 7 (нормализация для российских номеров)

Variables

Список переменных для замены в тексте сообщения. При отсутствии замен производиться не будет.

Необязательный тэг. Значение тэга <Variables>: список тэгов <Variable>.

<Variables>
  <Variable Name="VariableName" Value="[переменная]" />
</Variables>

Тэг <Variable>

Переменная для замены в тексте сообщения. В исходном сообщении все текстовые строки Value будут заменены на значения, полученные из поля Name запроса PhonesSqlQuery.

Обязательный тэг. Значение тэга <Variable>: не ожидается.

Атрибуты тэга <Variable>

Name

Имя переменной для подстановки.

Обязательный атрибут. Ожидается название одного из полей, возвращаемых в запросе PhonesSqlQuery.

Value

Текстовая строка, которая будет заменяться в исходном сообщении.

Необязательный атрибут. Значение атрибута Value: любое значение.

TitleVariable

Текстовая строка, которая будет заменена в исходном тексте сообщения на имя адресата СМС. При отсутствии переменная заменяться не будет.

Необязательный тэг. Значение тэга <TitleVariable>: не ожидается.

<TitleVariable Value="[имя]" />

Атрибуты тэга <TitleVariable>

Value

Значение.

Обязательный атрибут. Значение атрибута Value: любое значение.

CommonTextSqlQuery

Sql-запрос, возвращающий текст сообщения.

Обязательный тэг. Значение тэга <CommonTextSqlQuery>: тэг <Text>.

<CommonTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</CommonTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

MaleTextSqlQuery

Sql-запрос, возвращающий текст сообщения для лиц мужского пола.

Обязательный тэг. Значение тэга <MaleTextSqlQuery>: тэг <Text>.

<MaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемый, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    male_text
  </Text>
</MaleTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. Text - текст сообщения, возможно, содержащий текстовую строку TitleVariable, а также строки переменных, описанных в тэге <Variables> команды.

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

FemaleTextSqlQuery

Sql-запрос, возвращающий текст сообщения для лиц женского пола.

Обязательный тэг. Значение тэга <FemaleTextSqlQuery>: тэг <Text>.

<FemaleTextSqlQuery>
  <Text>
    SELECT
    text_id AS "TextId",
    'Уважаемая, [имя]! Номер вашего заказа – [переменная]' AS "Text"
    FROM
    female_text
  </Text>
</FemaleTextSqlQuery>

Тэг <Text>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

  1. TextId (столбец обязателен только при истинном значении атрибута Value в тэге <Multiple>) - идентификатор отправляемого текста, на который будет ссылаться запрос из тэга <PhonesSqlQuery>.

  2. 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>

Содержит 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>

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

Sql-запрос должен возвращать список полей со следующими заголовками (алиасами):

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

Текст sql-запроса поддерживает переменную {SMSStatusId}, заменяемые при его выполнении значением статуса отправки в системе "СМС-Центра".

Текст sql-запроса поддерживает переменную {Id}, заменяемую при его выполнении значением, возвращенным для очередного телефона в запросе, указанном в тэге <PhonesSqlQuery>.

Возможные статусы отправки СМС в системе "СМС-Центр"

-1

Ожидает отправки оператору

0

Передано оператору

1

Доставлено

3

Просрочено

20

Невозможно доставить

22

Неверный номер

23

Запрещено

24

Недостаточно средств

25

Недоступный номер

Last updated