| HTTP/HTTPS протокол
Адрес резервного сервера: www2.smsc.kz.
Отправка сообщенийОтправка SMS-сообщенияДля отправки SMS необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>
Для получения стоимости SMS необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&cost=1
Для отправки SMS с передачей параметров в формате json в теле запроса необходимо вызвать методом POST адрес:
https://smsc.kz/rest/send/
Описание параметров, передаваемых Серверу :
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
phones | Номер или разделенный запятой или точкой с запятой список номеров мобильных телефонов в международном формате,
на которые отправляется сообщение. Номера могут передаваться без знака "+".
Если номер передан без знака "+", то он может быть исправлен автоматическим форматированием
и приведен к правильному международному формату. Таким образом, некоторые
ошибки при вводе номеров телефонов могут быть исправлены автоматически.
Для отключения автоисправления передайте номер со знаком "+".
Также можно отправлять сообщение на группу номеров, указав специальный код "G<номер группы>".
Сообщение будет отправлено на все номера, принадлежащие данной группе. Для e-mail сообщения передается список e-mail адресов
получателей. Для telegram в качестве получателя сообщения возможно указание ника абонента или его ID в виде #ID.
|
---|
mes | Текст отправляемого сообщения. Максимальный размер – 1000 символов. Сообщение при
необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности. Размер одного
SMS – 160 символов в латинице или 70 символов в кириллице. При разбивке сообщения на несколько SMS в каждую часть
добавляется заголовок для объединения частей в одно сообщение на телефоне получателя, и максимальная длина становится
67 для кириллицы и 153 для латинских букв. В текст сообщения можно добавлять комментарии,
предназначенные для просмотра отправителем истории в личном кабинете.
|
---|
Дополнительные параметры
|
---|
id | Идентификатор сообщения. Назначается Клиентом. Служит для дальнейшей идентификации сообщения. Если не указывать, то будет назначен автоматически. Не обязательно уникален. Идентификатор представляет собой 32-битное число в диапазоне от 1 до 2147483647, либо строку длиной до 40 символов, состоящую из латинских букв, цифр и символов ".-_".
|
---|
sender | Имя отправителя, отображаемое в телефоне получателя.
Разрешены английские буквы, цифры, пробел и некоторые символы. Длина – 11 символов или 15 цифр.
Все имена регистрируются в личном кабинете на данной странице.
|
---|
translit | Признак того, что сообщение необходимо перевести в транслит.
0 (по умолчанию) – не переводить в транслит. 1 – перевести в транслит в виде "translit".
2 – перевести в транслит в виде "mpaHc/Ium".
|
---|
tinyurl | Автоматически сокращать ссылки в сообщениях. Позволяет заменять ссылки в тексте
сообщения на короткие для сокращения длины, а также для отслеживания количества переходов на
этой странице.
0 (по умолчанию) – оставить ссылки в тексте сообщения без изменений. 1 – сократить ссылки.
|
---|
time | Время отправки SMS-сообщения абоненту.
Форматы:
- DDMMYYhhmm или DD.MM.YY hh:mm.
- h1-h2. Задает диапазон времени в часах. Если текущее время меньше h1, то SMS-сообщение
будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2,
то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при
достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений
абонентами в ночное время.
- 0ts, где ts – timestamp, время в секундах, прошедшее с 1 января 1970 года.
- +m. Задает относительное смещение времени от текущего в минутах. Символ + должен кодироваться как %2B в http-запросе.
Если time = 0 или указано уже прошедшее время, то сообщение будет отправлено немедленно.
|
---|
tz | Часовой пояс, в котором задается параметр time. Указывается относительно московского времени.
Параметр tz может быть как положительным, так и отрицательным. Если tz равен 0, то будет использован московский часовой
пояс, если же параметр tz не задан, то часовой пояс будет взят из настроек Клиента.
|
---|
period | Промежуток времени, в течение которого необходимо отправить рассылку. Представляет собой число
в диапазоне от 0.1 до 720 часов. Применяется совместно с параметром freq. Данный параметр позволяет растянуть рассылку во
времени для постепенного получения SMS-сообщений абонентами.
|
---|
freq | Интервал или частота, с которой нужно отправлять SMS-рассылку на очередную группу номеров. Количество
номеров в группе рассчитывается автоматически на основе параметров period и freq. Задается в промежутке от 1 до 1440 минут.
Без параметра period параметр freq игнорируется.
|
---|
flash | Признак Flash сообщения, отображаемого сразу на экране телефона.
0 (по умолчанию) – обычное сообщение. 1 – Flash сообщение.
|
---|
bin | Признак бинарного сообщения. 0 (по умолчанию) – обычное сообщение.
1 – бинарное сообщение. В http-запросе необходимо закодировать с помощью функции urlencode.
2 – бинарное сообщение, представленное в виде шестнадцатеричной строки (hex).
Бинарное сообщение передается вместе с UDH заголовком в начале в параметре mes, в котором первый байт задает длину заголовка.
Чтобы передать бинарное сообщение без UDH заголовка, укажите нулевой байт в начале сообщения (00 в hex).
Для возможности передачи параметров pid и dcs необходимо в конец бинарного сообщения добавить специальную комбинацию
"\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки) и затем текст "pid: значение1, dcs: значение2" с точным сохранением
пробелов.
|
---|
push | Признак wap-push сообщения, с помощью которого можно отправить интернет-ссылку на телефон. 0 (по умолчанию) – обычное сообщение.
1 – wap-push сообщение. В параметре mes необходимо передать ссылку и заголовок через перевод строки.
|
---|
hlr | Признак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS. 0 (по умолчанию) – обычное сообщение.
1 – HLR-запрос. Будет выполнен HLR-запрос для каждого номера телефона в списке. Параметр mes не используется.
|
---|
ping | Признак специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
0 (по умолчанию) – обычное сообщение. 1 – ping-sms. Будет отправлено Ping-SMS на каждый номер телефона в списке.
Параметр mes не используется.
|
---|
mms | Признак MMS-сообщения, с помощью которого можно передавать текст (txt), изображения различных форматов (jpg, gif, png),
музыку (wav, amr, mp3, mid) и видео (mp4, 3gp). Файлы передаются в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – MMS-сообщение. Будет отправлено MMS на каждый номер телефона в списке.
|
---|
mail | Признак e-mail сообщения. Файлы, прикрепляемые к сообщению, передаются методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – e-mail сообщение.
|
---|
soc | Признак soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
0 (по умолчанию) – обычное сообщение. 1 – soc-сообщение.
|
---|
viber | Признак viber-сообщения, отправляемого пользователям мессенджера Viber.
0 (по умолчанию) – обычное сообщение. 1 – viber-сообщение.
|
---|
whatsapp | Признак whatsapp-сообщения, отправляемого пользователям мессенджера WhatsApp.
0 (по умолчанию) – обычное сообщение. 1 – whatsapp-сообщение.
|
---|
bot | Имя бота (telegram), в который необходимо отправить сообщение в формате "@botname_bot".
|
---|
smsreq | При указании данного параметра, система не будет отображать текст сообщения, отправленного пользователю и выводить предупреждение о необходимости подтверждения номера телефона, если с момента последнего подтверждения прошло больше smsreq дней. Диапазон значений от 10 до 999.
|
---|
fileurl | Полный http-адрес файла для загрузки и передачи в сообщении. Минимальный размер файла составляет 101 байт.
|
---|
call | Признак голосового сообщения. При формировании голосового сообщения можно передавать как текст, так и прикреплять файлы.
Файлы, добавляемые к сообщению, должны передаваться методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – голосовое сообщение.
|
---|
voice | Голос, используемый для озвучивания текста (только для голосовых сообщений).
m – мужской голос. m2 – мужской голос 2. m3 (по умолчанию) – мужской голос 3. m4 – мужской голос 4.
w – женский голос. w2 – женский голос 2. w3 – женский голос 3. w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.
|
---|
param | Разделенный запятой список параметров для голосового сообщения в формате "param=w,i,n".
Здесь:
- w – время ожидания поднятия трубки абонентом после начала звонка в секундах. Если в течение указанного времени абонент не поднимет трубку,
то звонок уйдет на повтор с ошибкой "абонент занят". Рабочий диапазон значений параметра от 10 до 35, но можно указывать интервал от 0 до 99
(в случае, если значение меньше 10, то оно будет приведено к 10, аналогично для верхней границы).
- i – интервал повтора, то есть промежуток времени, по истечении которого произойдет повторный звонок (в секундах). Рабочий диапазон параметра
от 10 до 3600 (в случае, если значение меньше 10, то оно будет приведено к 10).
- n – общее количество попыток дозвона. Рабочий диапазон значений от 1 до 9 (0 будет приведен к 1).
При указании значения любого параметра, отличного от возможных, будут использованы значения всех параметров по умолчанию
(n = 8, w = 25, i от 3 до 14 секунд по нарастающей), кроме сообщений рекламного характера.
|
---|
subj | Тема MMS или e-mail сообщения. При отправке e-mail указание темы, текста и адреса отправителя обязательно. Для MMS обязательным
является указание темы или текста. Если не указать тему MMS, то в ее качестве будет использовано имя отправителя, переданное в запросе или
используемое по умолчанию.
|
---|
charset | Кодировка переданного сообщения, если используется отличная от кодировки по
умолчанию windows-1251. Варианты: utf-8 и koi8-r.
|
---|
cost | Признак необходимости получения стоимости рассылки.
0 (по умолчанию) – обычная отправка. 1 –
получить стоимость рассылки без реальной отправки.
2 – обычная отправка, но добавить в ответ стоимость выполненной рассылки.
3 – обычная отправка, но добавить в ответ стоимость и новый баланс Клиента.
|
---|
fmt | Формат ответа сервера об успешной отправке.
0 – (по умолчанию) в виде строки (OK - 1 SMS, ID - 1234).
1 – вернуть ответ в виде чисел: ID и количество SMS через запятую (1234,1), при cost = 2 еще стоимость через
запятую (1234,1,1.40), при cost = 3 еще новый баланс Клиента (1234,1,1.40,100.50), при cost = 1 стоимость и количество
SMS через запятую (1.40,1).
2 – ответ в xml формате.
3 – ответ в json формате.
|
---|
list | Список номеров телефонов и соответствующих им сообщений, разделенных двоеточием или точкой с запятой и
представленный в виде:
phones1:mes1
phones2:mes2
...
Строки разделяются через символ новой строки (%0A). В качестве phones можно указать несколько номеров телефонов через
запятую. Если в сообщении mes требуется передать символ новой строки, то укажите его через \n. В случае невозможности корректировки текста мультистрокового сообщения возможно включение специального режима для передачи такого типа сообщений. Для этого необходимо дополнительно передавать в запросе параметр nl, равный 1.
В случае необходимости передачи разных имен отправителей (и, возможно, различных часовых поясов абонентов (работает только для запросов, в которых параметр time представлен в виде DDMMYYhhmm или DD.MM.YY hh:mm)) для разных сообщений можно использовать следующий формат передачи:
sender1,tz1|phones1:mes1
sender2,tz2|phones2:mes2
...
В данном случае параметр tz является необязательным.
Параметр list позволяет выполнять множественную рассылку с разными сообщениями на несколько телефонов одним
http-запросом. Сообщениям в запросе присваивается единый идентификатор. Весь параметр должен быть закодирован с
помощью функции urlencode.
|
---|
valid | Срок "жизни" SMS-сообщения. Определяет время, в течение которого оператор будет пытаться доставить
сообщение абоненту. Диапазон от 1 до 24 часов. Также возможно передавать время в формате чч:мм в диапазоне от 00:01 до 24:00.
|
---|
maxsms | Максимальное количество SMS, на которые может разбиться длинное сообщение.
Слишком длинные сообщения будут обрезаться так, чтобы не переполнить количество SMS, требуемых
для их передачи. Этим параметром вы можете ограничить максимальную стоимость сообщений,
так как за каждое SMS снимается отдельная плата.
|
---|
imgcode | Значение буквенно-цифрового кода, введенного с "captcha" при использовании антиспам проверки.
Данный параметр должен использоваться совместно с параметром userip.
|
---|
userip | Значение IP-адреса, для которого будет действовать лимит на максимальное количество сообщений с одного IP-адреса в сутки,
установленный в настройках личного кабинета в пункте "Лимиты и ограничения".
|
---|
err | Признак необходимости добавления в ответ сервера списка ошибочных номеров.
0 (по умолчанию) – не добавлять список (обычный ответ сервера).
1 – в ответ добавляется список ошибочных номеров телефонов с соответствующими статусами.
|
---|
op | Признак необходимости добавления в ответ сервера информации по каждому номеру.
0 (по умолчанию) – не добавлять список (обычный ответ сервера).
1 – в ответ добавляется список всех номеров телефонов с соответствующими статусами, значениями mcc и mnc, стоимостью, и, в случае ошибочных номеров, кодами ошибок.
|
---|
pp | Осуществляет привязку Клиента в качестве реферала к определенному ID партнера для текущего запроса.
При передаче данного параметра в виде "pp=<ID партнера>" Клиент с логином login временно становится рефералом партнера
с ID <ID партнера>. Отчисления по партнерской программе будут сделаны именно для текущего запроса, постоянной привязки не происходит.
Данный параметр позволяет временно устанавливать Клиента в качестве реферала из своих сервисов и программ, где нет возможности
зарегистрировать Клиента по реферальной ссылке.
|
---|
Обязательными параметрами являются login, psw, phones и mes либо login,
psw и list.
После принятия и обработки данных Сервер возвращает Клиенту подтверждение с указанием результата обработки.
Все параметры, которые содержат специальные символы (плюс, пробел и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.
Отправка сообщений. Ответ сервера и коды ошибок
Сервер отправляет ответ в виде строки:
Если произошла ошибка, то ответ будет одним из следующих:
При fmt = 0:
- ERROR = N (описание) – для ошибок 1,2,4,5,9;
- ERROR = N (описание), ID - <id сообщения> – для ошибок 3,6,7,8.
При fmt = 1:
- 0,-N – для ошибок 1,2,4,5,9;
- <id сообщения>,-N – для ошибок 3,6,7,8.
При fmt = 2:
- Для ошибок 1,2,4,5,9:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- Для ошибок 3,6,7,8:
<result>
<error>описание</error>
<error_code>N</error_code>
<id>id сообщения</id>
</result> |
При fmt = 3:
- Для ошибок 1,2,4,5,9:
{
"error": "описание",
"error_code": N
} |
- Для ошибок 3,6,7,8:
{
"error": "описание",
"error_code": N,
"id": <id сообщения>
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Недостаточно средств на счете Клиента.
|
---|
4 | IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
|
---|
5 | Неверный формат даты.
|
---|
6 | Сообщение запрещено (по тексту или по имени отправителя). Также данная ошибка возникает при попытке отправки массовых
и (или) рекламных сообщений без заключенного договора.
|
---|
7 | Неверный формат номера телефона.
|
---|
8 | Сообщение на указанный номер не может быть доставлено.
|
---|
9 | Отправка более одного одинакового запроса на передачу SMS-сообщения
либо более пяти одинаковых запросов на получение стоимости сообщения в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешной обработки запроса возвращается строка следующего вида:
- при cost = 0 и fmt = 0: OK - <n> SMS, ID - <id>
- при cost = 1 и fmt = 0: <cost> (<n> SMS)
- при cost = 2 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>
- при cost = 3 и fmt = 0: OK - <n> SMS, ID - <id>, COST - <cost>, BALANCE - <balance>
- при cost = 0 и fmt = 1: <id>,<n>
- при cost = 1 и fmt = 1: <cost>,<n>
- при cost = 2 и fmt = 1: <id>,<n>,<cost>
- при cost = 3 и fmt = 1: <id>,<n>,<cost>,<balance>
- при cost = 0 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
</result> |
- при cost = 1 и fmt = 2:
<result>
<cost>cost</cost>
<cnt>n</cnt>
</result> |
- при cost = 2 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
<cost>cost</cost>
</result> |
- при cost = 3 и fmt = 2:
<result>
<id>id</id>
<cnt>n</cnt>
<cost>cost</cost>
<balance>balance</balance>
</result> |
- при cost = 0 и fmt = 3:
{
"id": <id>,
"cnt": <n>
} |
- при cost = 1 и fmt = 3:
{
"cost": "<cost>",
"cnt": <n>
} |
- при cost = 2 и fmt = 3:
{
"id": <id>,
"cnt": <n>,
"cost": "<cost>"
} |
- при cost = 3 и fmt = 3:
{
"id": <id>,
"cnt": <n>,
"cost": "<cost>",
"balance": "<balance>"
} |
- при op = 1 и fmt = 0 или 1, информация добавляется в конец обычного вывода с новой строки:
<phone>,<mccmnc>,<cost>,<status>,<error>
- при op = 1 и fmt = 2, в ответ добавляется массив:
<phones>
<phone mccmnc="mccmnc" cost="cost" status="status" error="error">phone</phone>
...
</phones> |
- при op = 1 и fmt = 3, в ответ добавляется массив:
"phones": [{
"phone": "<phone>",
"mccmnc": "<mccmnc>",
"cost": "<cost>",
"status": "<status>",
"error": "<error>"
},
...
] |
Где:
<n> – это количество отправленных SMS, вычисляемое как количество SMS в сообщении, умноженное на количество
получателей.
<id> – идентификатор сообщения, переданный Клиентом или назначенный Сервером автоматически.
<cnt> – количество частей (при отправке SMS-сообщения) либо количество секунд (при голосовом сообщении (звонке)).
<balance> – новый баланс Клиента.
<phone> – номер телефона.
<mccmnc> – числовой код страны абонента плюс числовой код оператора абонента.
<cost> – стоимость SMS-сообщения.
<status> – код статуса SMS-сообщения.
<error> – код ошибки в статусе.
Сервер не принимает более одного одинакового запроса на отправку SMS-сообщений в течение минуты
для защиты от ошибок и зацикливаний в программе на стороне Клиента для того, чтобы снизить нагрузку и не
расходовать средства Клиента, а также не допустить многократной отправки сообщения одному абоненту.
Сервер также блокирует отправку более 50 сообщений одному абоненту, которые были отправлены с перерывом
между сообщениями менее 60-ти секунд, для защиты от флуда и лишнего списания средств со счета Клиента,
так как многие операторы не пропускают большое количество сообщений одному абоненту за короткий промежуток времени.
Примеры отправки сообщенийПримеры:
Обычное сообщение:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello!
https://smsc.kz/sys/send.php?login=alex&psw=123 &list=79999999999:Hello!%0A79999999999:Hello\nworld!
Flash сообщение в кодировке "utf-8" от отправителя "ivan", переведенное в транслит, которое должно быть доставлено абоненту 01.01.2012 г. в 00:00:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world! &translit=1&time=0101120000&flash=1&sender=ivan &charset=utf-8
Бинарное EMS сообщение с текстом "Hello, World!", в котором слово "World" выделено курсивом и подчеркнуто:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999 &mes=050A0307056048656C6C6F2C20576F726C6421&bin=2
Бинарное WAP-push сообщение, передающее ссылку на сайт "http://wap.ru/":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999 &mes=0605040B8423F0DC0601AE02056A0045C60C037761702E72752F0001037761702E7275000101&bin=2
WAP-push сообщение в текстовом виде, передающее ссылку на сайт "http://wap.ru" с заголовком "WAP.RU":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999 &mes=http://wap.ru%0AWAP.RU&push=1 Комментарии в SMS-сообщениях
При отправке SMS-сообщений можно добавлять в конец текста любой комментарий, уточняющий либо дополняющий SMS-сообщение для отправителя.
Данный текст не будет отправляться абонентам и влиять на стоимость SMS и доступен для просмотра и фильтрации в списке отправленных сообщений в личном кабинете.
Для добавления комментария необходимо в конце текста SMS-сообщения, предназначенного для отправки, указать специальную комбинацию "\n~~~\n"
(перевод строки, 3 символа тильды и снова перевод строки), и после этого любой текст, который будет считаться комментарием, не будет отправлен абоненту,
но отобразится в истории.
Примеры:
Отправка одного сообщения:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999%2C78888888888&mes=Hello!%0A~~~%0AComment
Отправка нескольких сообщений через параметр list:
https://smsc.kz/sys/send.php?login=alex&psw=123&list=79999999999:Hello1!\n~~~\nComment1%0A78888888888:Hello2!\n~~~\nComment2 Отправка на группу номеровВ личном кабинете Клиента при создании или редактировании группы можно указать номер группы для рассылок сообщений.
Тогда при отправке сообщения вместо списка телефонов можно будет указывать короткий код в виде "G<номер группы>" или "g<номер группы>",
и сообщение будет отправлено на все номера телефонов, принадлежащие данной группе.
Примеры:
Отправка сообщения на все номера телефонов, принадлежащих группам с назначенными номерами 777 и 888:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=G777%2Cg888&mes=Hello! Отправка HLR-запроса
Вы можете проверять номера телефонов на доступность, отправляя специальный HLR-запрос.
В результате выполнения запроса будут получены данные о стране и операторе абонента,
о роуминговом операторе при нахождении абонента в чужой сети, а также о статусе абонента
(доступен или нет). Абоненты, владельцы проверяемых номеров, не будут получать никаких
уведомлений о выполненных проверках их номера.
Выполнение HLR-запроса по HTTP-протоколу выполняется тем же способом, что и отправка SMS-сообщения,
при этом в запросе необходимо передать дополнительный параметр hlr=1.
Для отправки HLR-запроса необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&hlr=1
Также доступны и другие параметры, использующиеся для отправки обычных SMS и описанные на данной странице.
Результат HLR-запроса может быть отправлен на URL для приема входящих сообщений и статусов,
заданный в настройках в личном кабинете, либо может считываться по запросу статуса отправленного SMS-сообщения.
Пример:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&hlr=1 Отправка MMS-сообщения
Для отправки MMS-сообщения необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&mms=1
Если при отправке планируется передача каких-либо файлов (текста, музыки, аудио, видео), то их необходимо передавать методом POST в теле
http(s)-запроса к серверу. Также возможна передача в запросе внешнего файла через параметр fileurl, содержащий
полный http(s)-адрес файла или добавления к тексту сообщения https-ссылки ранее загруженного файла, узнать которую можно в личном кабинете
на странице отправки, нажав последовательно "прикрепить файл" – "Загруженные файлы".
Максимальное количество вложений, передаваемых в запросе, равно двадцати, и суммарный размер всех вложений не должен
превышать 300 Кб. При превышении указанных лимитов оставшиеся вложения будут переданы в виде ссылок. Для MMS-сообщения указание темы или текста
является обязательным.
Примеры:
Отправка MMS-сообщения с темой "Privet" и текстом "Hello":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&subj=Privet&mms=1
Отправка MMS с темой "Holiday" и двумя фотографиями через библиотеку на основе cURL:
<?php include "smsc_api.php"; send_sms("79999999999", "", 0, 0, 0, 7, false, "subj=Holiday", array("/home/alex/1.jpg", "/home/alex/2.jpg")); ?>
Отправка e-mail сообщения
Для отправки e-mail необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&sender=<sender>&subj=<subj>&mail=1
Если при отправке планируется передача каких-либо файлов, то их необходимо передавать методом POST в теле http(s)-запроса к серверу. Позиции в тексте,
в которые планируется вставлять файлы, необходимо обозначать специальным образом в виде "<file n>", где n - номер файла в формируемом списке
начиная с единицы. Если не указывать позиции, то соответствующие файлы будут добавляться в конец сообщения.
При создании сообщения можно вставлять в текст http(s)-ссылки ранее загруженных файлов, узнать которые можно в личном кабинете на странице
отправки, нажав последовательно ссылки "прикрепить файл" – "Загруженные файлы". Также можно указывать локальные ссылки на загруженные файлы
на нашем сервере в виде "<file /upload/files/sms/каталог_загрузки/название_файла>". Для вложений-картинок можно устанавливать атрибуты, например,
"<file /upload/files/sms/каталог_загрузки/название_файла width=200 height=400>". Для загрузки файла из внешнего источника можно в запросе передавать
дополнительный параметр fileurl, содержащий полный http(s)-адрес файла.
Максимальное количество вложений, передаваемых в запросе, равно 20, и размер каждого вложения не должен превышать 10 Мб.
При превышении указанных лимитов будет возвращаться ошибка с кодом 1 (неверные параметры).
При отправке каждого письма максимальный общий размер прикрепляемых вложений составляет 15 Мб, вложения,
не вмещающиеся в этот размер, будут передаваться ссылкой на наш сайт.
По-умолчанию, в конец текста письма добавляется специальная ссылка для отписки. Для отключения данной ссылки необходимо добавить в любое место текста письма
специальный макрос {no_unsub}.
Для e-mail сообщений указание темы, текста и адреса отправителя обязательно.
Примеры отправки e-mail сообщенийПримеры:
Отправка e-mail на адрес "alex@mysite.com" с темой "Privet" и текстом "Hello" от отправителя "alex2@mysite2.com":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=alex%40mysite.com&mes=Hello&subj=Privet&sender=alex2%40mysite2.com&mail=1
Отправка e-mail с темой "Holiday" и двумя фотографиями через библиотеку на основе cURL:
<?php include "smsc_api.php"; send_sms("alex@mysite.com", "Hello", 0, 0, 0, 8, "alex2@mysite2.com", "subj=Holiday", array("/home/alex/1.jpg", "/home/alex/2.jpg")); ?>
Отправка e-mail с темой "Hello" и фотографией, загруженной ранее на сервер:
<?php include "smsc_api.php"; send_sms("alex@mysite.com", "Hello, this is my photo <file /upload/files/sms/123abc/photo.jpg width=200 height=400>", 0, 0, 0, 8, "alex2@mysite2.com", "subj=Hello"); ?>
Отправка голосового сообщения (звонок)Для отправки голосового сообщения необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&call=1
При формировании сообщения можно указывать как текст, так и добавлять медиа-файлы форматов wav и mp3.
Если планируется передача файлов, то их необходимо передавать методом POST в теле http(s)-запроса к серверу. Позиции в тексте, в которые
планируется вставлять файлы, необходимо обозначать специальным образом в виде "<file n>", где n - номер файла в формируемом списке
начиная с единицы. Если не указывать позиции, то соответствующие файлы будут добавляться в конец сообщения.
При создании сообщения можно вставлять в текст http(s)-ссылки ранее загруженных файлов, узнать которые можно в личном кабинете на странице
отправки, нажав последовательно ссылки "прикрепить файл" – "Загруженные файлы". Также можно указывать локальные ссылки на загруженные файлы
на нашем сервере в виде "<file /upload/files/sms/каталог_загрузки/название_файла>". Для загрузки файла из внешнего источника можно в запросе передавать
дополнительный параметр fileurl, содержащий полный http(s)-адрес файла. В этом случае передача в запросе параметра mes необязательна.
Так как телефонные линии не могут идеально проигрывать сложные медиа-файлы, то при формировании отправляемого сообщения передаваемые
файлы преобразуются к простому формату.
При отправке голосового сообщения первоначальное время и стоимость рассчитываются приблизительно. После отправки и прослушивания сообщения абонентом продолжительность и стоимость звонка корректируются либо в меньшую сторону (например, если абонент не дослушал сообщение до конца), либо, если длительность сообщения превышает рассчитанную, то разница в секундах указывается в комментарии к сообщению в виде дополнительного времени overtime, которое в том числе отображается в детализации в виде отдельной записи. Также overtime может возникать при использовании голосового меню (IVR).
Максимальное количество вложений, передаваемых в запросе, равно четырем, и размер каждого вложения не должен превышать 5 Мб. При превышении
указанных лимитов обрабатываемые вложения будут исключаться.
Для передачи своего номера телефона в качестве имени отправителя необходимо указать его в параметре sender. Указанный номер прежде
должен быть добавлен и активирован в личном кабинете на данной странице.
При формировании запроса можно передавать специальный параметр param, в котором задаются некоторые характеристики звонка
(более подробно можно ознакомиться в описании). Также дополнительно в запросе можно передать параметр voice,
который определяет голос, используемый для озвучивания текста. Данный параметр может принимать следующие значения:
- voice = m – мужской голос.
- voice = m2 – мужской голос 2.
- voice = m3 – мужской голос 3 (по умолчанию).
- voice = m4 – мужской голос 4.
- voice = w – женский голос.
- voice = w2 – женский голос 2.
- voice = w3 – женский голос 3.
- voice = w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.
Использование голосового меню (IVR)Для использования голосового меню необходимо в начале текста сообщения передать текст или голосовой файл с начальными инструкциями для абонента и далее указать макрос, содержащий служебные команды меню {menu: <...>}, где <...> описание параметров голосового меню.
Схематично сообщение с использованием голосового меню, выглядит следующим образом:
СТАРТОВЫЙ ТЕКСТ
{menu: [ТЕКСТ МЕНЮ] 1: ТЕКСТ или КОМАНДА 2: ТЕКСТ2 или КОМАНДА2 ... }
КОНЕЧНЫЙ ТЕКСТ
После поднятия трубки абоненту озвучивается "СТАРТОВЫЙ ТЕКСТ", далее проигрывается "ТЕКСТ МЕНЮ" с описанием пунктов меню и допустимыми действиями. После нажатия клавиши на цифровой клавиатуре телефона, соответствующей необходимому пункту, абоненту может быть озвучен текст "ТЕКСТ" или выполнена одна или несколько следующих друг за другом "КОМАНД". После выхода из меню озвучивается "КОНЕЧНЫЙ ТЕКСТ".
Описание параметров, используемых в макросе {menu: <...>}:
Параметр | Значение
|
---|
*: back | Возврат в предыдущее меню.
|
---|
#: start | Возврат в начало меню и повтор "ТЕКСТА МЕНЮ".
|
---|
0: repeat | Повтор выбранного пункта.
|
---|
n: msg | Пункт меню, в который попадает абонент при нажатии на клавишу n, где n – номер пункта меню, который может принимать значения от 1 до 9, msg – сообщение или команда. Пункты меню можно дублировать один за одним для выполнения нескольких действий при нажатии на одну клавишу.
|
---|
nm: msg | Подпункт m пункта n меню, в который попадает абонент при нажатии на клавишу m. Может принимать значения от 1 до 9. msg – сообщение или команда. Подпункты меню можно дублировать один за одним для выполнения нескольких действий при нажатии на одну клавишу. Вложенность подпунктов ограничена только размером всего сообщения (1000 символов).
|
---|
В пунктах и подпунктах можно использовать следующие команды:
Команда | Значение
|
---|
url | Адрес http(s)-обработчика Клиента, на который будет передана информация о текущем пункте и времени нахождения абонента в меню.
|
---|
call:phone wait=n ok:end err:n record | Перенаправление звонка абонента на указанный номер телефона, где обязательным параметром является phone – номер телефона или список номеров телефонов через запятую. Можно указать до 9 номеров. Номера, на которые будет происходить перенаправление звонка абонента необходимо зарегистрировать на данной странице.
Необязательными параметрами являются:
– wait=n – время ожидания поднятия трубки абонентом, которому был перенаправлен звонок, где n – время ожидания в секундах. Диапазон возможных значений параметра от 0 до 120. По умолчанию время ожидания поднятия трубки абонентом 120 секунд.
– ok:end – после успешного соединения с указанным номером и окончания диалога завершить голосовое меню.
– err:n – если дозвониться до указанного номера не удалось, то перейти на шаг или метку n, описанную в теле меню. Метка может принимать значение любого набора латинских букв и цифр.
– record – после успешного соединения с указанным номером осуществить запись разговора. Время записи для одного звонка ограничено максимум 30 минутами. Также соединение и запись прерывается спустя 30 секунд тишины со стороны абонентов. Данный параметр указывается последним. Ссылка на запись отображается в истории сообщений под текстом голосового меню.
|
---|
sms:phone,sender,msg | Отправка SMS-сообщения на указанный номер телефона, где phone – номер телефона, sender – имя отправителя, msg – текст сообщения. В качестве номера телефона, а также в тексте сообщения может быть указана специальная переменная $phone, которая при отправке будет заменена на номер телефона абонента, получившего данное голосовое меню.
|
---|
record: n | Запись фрагмента голосового ответа абонента, которая будет произведена с момента активации до окончания действия команды, где n – время для записи в секундах. По умолчанию (без явного указания времени) запись ограничена 30 секундами. Также запись прерывается после 10 секунд тишины со стороны абонента.
|
---|
end | Признак выхода из голосового меню. После выхода будет прочитан "КОНЕЧНЫЙ ТЕКСТ".
|
---|
Примеры:
<?php $url = 'https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999,79999999998&call=1&charset=utf-8&mes=';
$msg = 'Здравствуйте!
{menu: Нажмите 1 для первого пункта, 2 для второго пункта, 3 для отправки заявки на обратный звонок, 5 для связи с оператором, решетка для перехода в начало, 0 для повтора, для возврата в предыдущее меню нажмите звёздочку. *: back #: start 0: repeat 1: пункт 1, нажмите 1 для подпункта 1, 2 для подпункта 2, 3 для подпункта 3 11: подпункт 1.1 12: подпункт 1.2 13: подпункт 1.3 2: пункт 2, нажмите 1 для подпункта 2.1 21: подпункт 2.1 3: sms:79999999999,Sender,текст 3: end 4: sms:$phone,Sender,Ваш номер: $phone 4: end 5: url 5: call:79999999999,79999999998 wait=10 ok:end err:6 6: call:79999999997 wait=60 ok:end err:callerr record 7: Сейчас начнется запись до 10 секунд 7: record: 10 7: Конец записи err: неверный номер, нажмите 0 для повтора callerr: Извините, не удалось дозвониться до оператора, выберите другой пункт или повторите попытку позже}
Всего вам доброго!';
echo file_get_contents($url.urlencode($msg)); ?>
Примеры отправки голосовых сообщенийПримеры:
Отправка голосового сообщения с текстом "Hello":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&call=1
Отправка голосового сообщения с текстом "Hello" от номера телефона "79991234567":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&call=1&sender=79991234567
Отправка голосового сообщения с текстом "Hello world", озвученным мужским голосом, с временем ожидания снятия трубки 20 секунд,
интервалом повтора 10 секунд и количеством попыток дозвона равным 3:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world&call=1&voice=m¶m=20%2C10%2C3
Отправка голосового сообщения с текстом "Hello world", озвученным женским альтернативным голосом:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello%20world&call=1&voice=w2
Отправка голосового сообщения с прикрепленным через параметр fileurl голосовым файлом:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&call=1&fileurl=http://mysite.com/voice.wav
Отправка голосового сообщения с текстом и двумя звуковыми файлами через библиотеку на основе cURL:
<?php include "smsc_api.php"; send_sms("79999999999", "first file <file 1> and second file <file 2>", 0, 0, 0, 9, false, "", array("/home/alex/1.mp3", "/home/alex/2.wav")); ?>
Отправка viber-сообщения
Для отправки viber-сообщения необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&viber=1 Передача файловПередача в сообщении картинки, файла документа или видео возможна одним из следующих способов:
- в виде полного http(s)-адреса внешнего файла, указанного в тексте сообщения, в формате <file http(s)://...> (только для картинок и файлов документов);
- методом POST в теле http(s)-запроса к серверу. При данном способе отправки прикрепляемые файлы необходимо обозначить в тексте сообщения специальным образом в виде "<file n>", где n - номер файла в формируемом списке начиная с единицы;
- добавлением в http(s)-запрос специального дополнительного параметра fileurl, содержащего полный http(s)-адрес передаваемого внешнего файла. При использовании fileurl передача в запросе параметра mes необязательна;
- при отправке с личного кабинета или через API вставкой в текст сообщения полной http(s)-ссылки ранее загруженного файла, узнать которую можно в личном кабинете на странице отправки, нажав последовательно "прикрепить файл" – "Загруженные файлы".
Прикрепляемый файл по размеру не должен превышать 1 Мб (для API) или 10 Мб (для личного кабинета) и удовлетворять одному из следующих форматов:
- jpg, jpeg, gif, png – для картинок;
- doc, docx, rtf, dotx, dot, odf, fodt, odt, txt, info, pdf, xps, eps, pdax, xlsx, xlsm, fods, ods, csv, xltx – для файлов документов;
- 3gp, m4v, mov, mp4 – для видео.
Добавление кнопкиДля вставки в сообщение кнопки, при нажатии на которую будет происходить открытие браузера и переход на указанный адрес, необходимо добавить в текст сообщения специальный макрос {button,url,text}, где:
<button> – название макроса.
<url> – полный http-адрес ссылки, по которой произойдет переход при нажатии кнопки.
<text> – текст кнопки. Длина текста не может превышать 30 символов.
Для вставки в сообщение кнопки, при нажатии на которую будет происходить вызов абонента по указанному номеру телефона, необходимо добавить в текст сообщения специальный макрос {button,tel:79999999999,text}.Типы сообщенийСистема поддерживает следующие типы viber-сообщений:
- Только текст – абонент получает текстовое сообщение.
- Только картинка – абонент получает картинку.
- Текст+кнопка – абонент получает текстовое сообщение, под которым расположена кнопка. При нажатии на кнопку происходит переход по заданной ссылке.
- Текст+кнопка+картинка – абонент получает текстовое сообщение, под которым расположены картинка и кнопка. При нажатии на кнопку происходит переход по заданной ссылке.
- Только файл – абоненту передается файл одного из поддерживаемых форматов.
- Картинка+видео – абонент получает видео-файл, заставкой к которому является передаваемая картинка.
- Текст+картинка+видео – абонент получает видео-файл с картинкой-заставкой и указанным текстом.
- Текст+картинка+видео+кнопка – абонент получает видео-файл с картинкой-заставкой, указанным текстом и кнопкой. При нажатии на кнопку происходит переход по заданной ссылке.
Для настройки программного обеспечения и тестирования отправки viber-сообщений можно использовать наше общее имя отправителя "SMSC"
и предопределенные шаблоны:
- Hello! This is test message
- Здравствуйте! Это тестовое сообщение
- Test
- Тест
- Test {button,https://smsc.kz,site}
- Тест {button,https://smsc.kz,сайт}
- Picture <file http://smsc.kz/im/smsc_logo_tiny.gif>
- Картинка <file http://smsc.kz/im/smsc_logo_tiny.gif>
Как и в шаблонах для операторов здесь действуют общие правила создания сообщений для указанных шаблонов (внизу страницы раскрывающаяся вкладка "Правила регистрации шаблонов").Примеры отправки viber-сообщенийПримеры:
Отправка viber-сообщения с текстом "Hello":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&viber=1
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "Test", кнопкой "{button,http://smscentre.com,Site}" и картинкой, ранее загруженной в личном кабинете и имеющей адрес "http://smscentre.com/upload/files/sms/1856f97d/6_1.jpg":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=Test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D+http%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F1856f97d%2F6_1.jpg
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "test", кнопкой "{button,http://smscentre.com,Site}" и картинкой, расположенной на внешнем ресурсе "https://mysite.com/sms/picture.jpg":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D+%3Cfile+https%3A%2F%2Fmysite.com%2Fsms%2Fpicture.jpg%3E
Отправка viber-сообщения по одному из предопределенных шаблонов для тестирования с текстом "test", кнопкой "{button,http://smscentre.com,Site}" и картинкой "https://mysite.com/sms/picture.jpg", переданной через параметр fileurl:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=test+%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2CSite%7D&fileurl=https%3A%2F%2Fmysite.com%2Fsms%2Fpicture.jpg
Отправка viber-сообщения с текстом "Видео и кнопка", кнопкой "{button,http://smscentre.com,Кнопка smsc}", картинкой "http://smscentre.com/upload/files/sms/123456/1.png"и видео "http://smscentre.com/upload/files/sms/123456/1.mp4":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&viber=1&mes=%C2%E8%E4%E5%EE+%E8+%EA%ED%EE%EF%EA%E0+http%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F123456%2F1.png%0Ahttp%3A%2F%2Fsmscentre.com%2Fupload%2Ffiles%2Fsms%2F123456%2F1.mp4%0A%7Bbutton%2Chttp%3A%2F%2Fsmscentre.com%2C%CA%ED%EE%EF%EA%E0+smsc%7D Отправка telegram-сообщения
Для отправки telegram-сообщения необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&bot=<@botname_bot> Примеры отправки telegram-сообщенийПримеры:
Отправка telegram-сообщения с текстом "Hello" на номер "79999999999" в telegram-бот "@mybot_bot":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Hello&bot=@mybot_bot
Отправка telegram-сообщения с текстом "Здравствуйте" по нику "alex_nick" в telegram-бот "@mybot_bot":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=@alex_nick&mes=Здравствуйте&bot=@mybot_bot
Отправка telegram-сообщения с текстом "Hi" по ID 1122334455 в telegram-бот "@mybot_bot":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=#1122334455&mes=Hi&bot=@mybot_bot
Отправка telegram-сообщения с текстом "Привет" на номер "79999999999" в telegram-бот "@mybot_bot" с указанием в параметре smsreq количества дней,
по истечении которого будет необходимо подтвердить номер телефона SMS-кодом:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=Привет&bot=@mybot_bot&smsreq=25
Использование префиксов при отправке сообщенийДля отправки различных типов сообщений можно воспользоваться возможностью указания специальных префиксов в начале или вместо текста сообщения.
Поддерживаемые префиксы:
Название | Описание
|
---|
__CALL__: сообщение | Отправка голосового сообщения (звонка). При отправке голосового сообщения в конце текста можно указать
специальную комбинацию "\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки), после которой передать параметр param,
определяющий некоторые характеристики звонка (более подробно можно посмотреть в описании).
При формировании сообщения можно указывать как текст, так и добавлять медиа-файлы форматов wav и mp3, а также вставлять
ранее загруженные файлы. Более подробно по процеccу создания голосового сообщения можно прочитать на данной странице.
| __VIBER__: сообщение | Отправка сообщения пользователям мессенджера Viber.
| __SOC__: сообщение | Отправка сообщения пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
| __MAIL__: сообщение | Отправка E-mail сообщения.
| __BOT__: сообщение | Отправка сообщения пользователям чат-бота Telegram.
| __PING__ | Отправка специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
| __HLR__ | Признак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS. Более подробно
по HLR-запросам можно ознакомиться здесь.
|
Примеры:
Отправка голосового сообщения с текстом "Privet":
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__CALL__%3A%20Privet
Отправка Ping-SMS:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__PING__
Отправка HLR-запроса:
https://smsc.kz/sys/send.php?login=alex&psw=123&phones=79999999999&mes=__HLR__ Управление шаблонами сообщенийДля управления шаблонами сообщений необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды
и параметров.
Для создания шаблона:
https://smsc.kz/sys/templates.php?add=1&login=<login>&psw=<password>&name=<name>&msg=<msg>
Для изменения шаблона:
https://smsc.kz/sys/templates.php?chg=1&login=<login>&psw=<password>&id=<id>
Для удаления шаблона:
https://smsc.kz/sys/templates.php?del=1&login=<login>&psw=<password>&id=<id>
Для получения списка шаблонов:
https://smsc.kz/sys/templates.php?get=1&login=<login>&psw=<password>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
name | Название шаблона.
|
---|
msg | Текст сообщения.
|
---|
format | Формат сообщения:
пустая строка – не задан.
sms – SMS-сообщение.
flash – Flash-SMS.
bin – Бинарное SMS.
push – Wap-push.
mms – MMS.
call – Звонок.
mail – E-mail.
viber – Viber.
|
---|
sender | Имя отправителя.
|
---|
fl[1] | Использовать для автоподписи.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- при fmt = 0:
ERROR = N (описание)
- при fmt = 1:
0,-N
- при fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- при fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Запись не найдена.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка сохранения или удаления.
|
---|
9 | Попытка отправки более трех одинаковых запросов на действия с шаблонами.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
При создании шаблона:
- при fmt = 0: ID - <id>
- при fmt = 1: <id>
- при fmt = 2:
<template>
<id>id</id>
</template>
|
- при fmt = 3:
При изменении или удалении шаблона:
- при fmt = 0, 1: OK
- при fmt = 2:
<result>OK</result>
- при fmt = 3:
При запросе списка шаблонов сообщений:
- при fmt = 0:
id = <id>, name = <name>, format = <format>, sender = <sender>, flag = <flag>, message = <message>
... |
- при fmt = 1:
<id>,<name>,<format>,<sender>,<flag>,<message>
... |
- при fmt = 2:
<list>
<template>
<id>id</id>
<name>name</name>
<format>format</format>
<sender>sender</sender>
<flag>flag</flag>
<message>message</message>
</template>
...
</list> |
- при fmt = 3:
[{
"id": <id>,
"name": "<name>",
"format": "<format>",
"sender": "<sender>",
"flag": <flag>,
"message": "<message>"
},
...] |
Где:
<id> – идентификатор шаблона, назначенный системой автоматически.
<name> – название шаблона.
<format> – формат сообщения.
<sender> – имя отправителя.
<flag> – флаг для шаблона. Установка первого бита флага (fl[1]=1) назначает использование шаблона для автоподписи.
<message> – текст сообщения.
Сервер не принимает более трех одинаковых запросов на действия с шаблонами в течение минуты для снижения
нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Управление шаблонами операторовДля управления шаблонами сервисных, транзакционных и других шаблонированных сообщений необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды
и параметров.
Для создания шаблона (для всех операторов):
https://smsc.kz/sys/op_templates.php?add=1&login=<login>&psw=<password>&sender=<sender>&msg=<msg>&mts_srv=1&mts_auth=1&mts_trn=1&mega_srv=1&mega_auth=1&mega_trn=1&mega_adv=1&bee_srv=1&bee_trn=1&tele2_srv=1&tele2_trn=1&motiv_srv=1&motiv_trn=1&soc=1
Для получения информации о шаблоне (по всем операторам):
https://smsc.kz/sys/op_templates.php?get=1&login=<login>&psw=<password>&sender=<sender>&msg=<msg>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
sender | Имя отправителя для которого создается шаблон.
|
---|
msg | Текст шаблона.
|
---|
charset | Кодировка текста шаблона, если используется отличная от кодировки по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
|
---|
mts_srv | Создать шаблон для оператора МТС (сервисные сообщения).
|
---|
mts_auth | Создать шаблон для оператора МТС (авторизационные сообщения).
|
---|
mts_trn | Создать шаблон для оператора МТС (транзакционные сообщения).
|
---|
mega_adv | Создать шаблон для оператора Мегафон (рекламные шаблонированные сообщения).
|
---|
mega_srv | Создать шаблон для оператора Мегафон (сервисные (информационные) сообщения).
|
---|
mega_auth | Создать шаблон для оператора Мегафон (авторизационные сообщения).
|
---|
mega_trn | Создать шаблон для оператора Мегафон (транзакционные сообщения).
|
---|
bee_srv | Создать шаблон для оператора Билайн (сервисные сообщения).
|
---|
bee_trn | Создать шаблон для оператора Билайн (транзакционные сообщения).
|
---|
tele2_srv | Создать шаблон для оператора Теле2 (сервисные сообщения).
|
---|
tele2_trn | Создать шаблон для оператора Теле2 (транзакционные сообщения).
|
---|
motiv_srv | Создать шаблон для оператора МОТИВ (сервисные сообщения).
|
---|
motiv_trn | Создать шаблон для оператора МОТИВ (транзакционные сообщения).
|
---|
soc | Создать шаблон для soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
|
---|
В случае ошибки Сервер возвращает следующую строку:
- при fmt = 0:
ERROR = N (описание)
- при fmt = 1:
0,-N
- при fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- при fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более десяти одинаковых запросов на действия с шаблонами.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
При создании шаблона:
- при fmt = 0:
name = <status>, id = <id>
... |
- при fmt = 1:
<name>,<status>,<id>
... |
- при fmt = 2:
<result>
<template>
<name>name</name>
<status>status</status>
<id>id</id>
</template>
...
</result>
|
- при fmt = 3:
[{
"name": <status>,
"id": <id>
},
...] |
При запросе списка шаблонов:
- при fmt = 0:
name = <status>, id = <id>
... |
- при fmt = 1:
<name>,<status>,<id>
... |
- при fmt = 2:
<result>
<template>
<name>name</name>
<status>status</status>
<id>id</id>
</template>
...
</result> |
- при fmt = 3:
[{
"name": <status>,
"id": <id>
},
...] |
Где:
<name> – название оператора и тип сообщений.
<id> – идентификатор шаблона, назначенный системой автоматически.
<status> – статус шаблона, может принимать следующие значения:
для команды add:
-2 – невозможно сохранить указанный шаблон;
-1 – имя отправителя для данного шаблона не найдено или не принято оператором;
1 – шаблон успешно добавлен;
для команды get:
-1 – шаблон для указанного оператора не найден;
0 – ожидает регистрации;
1 – отправлено на регистрацию;
2 – допущено оператором;
3 – не принято оператором;
4 – временно отключено.
Сервер не принимает более десяти одинаковых запросов на действия с шаблонами в течение минуты для снижения
нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Виртуальная отправка (режим тестирования)Данный режим работы позволяет протестировать отправку сообщений без реальной передачи операторам.
Может быть полезен при первоначальной настройке и тестировании различного программного обеспечения и оборудования. Для
включения данного режима необходимо в личном кабинете в пункте "Настройки" в раскрывающемся блоке
"Настройки API" установить галочку "Режим тестирования (виртуальная отправка без оплаты)".
При виртуальной отправке все сообщения будут иметь конечный статус "Доставлено", но в процессе отправки сообщения будут проходить
все стадии обработки по цепочке "Ожидает отправки" – "Передано оператору" – "Доставлено". Получать статусы сообщений можно как по
запросу, так и на свой http-обработчик. Отправлять можно и одиночные сообщения и массовые рассылки. Тестировать при виртуальной отправке
возможно различные типы сообщений (SMS, бинарные сообщения, HLR, MMS, звонок), кроме e-mail.Уведомления о событияхПри возникновении определенных событий может потребоваться отправка уведомительных сообщений, содержащих информацию, необходимую для обработки данных событий. Для решения подобных задач можно воспользоваться расширением нашей системы мониторинга, которое позволяет отправлять различные уведомления через наш сервис из внешних систем. Для этого в личном кабинете на странице "Создание группы заданий" требуется создать соответствующую группу, где указать шаблоны уведомлений, типы сообщений, отправляемых при возникновении события, а также контакты для уведомлений (номера телефонов, e-mail адреса, jabber аккаунты).
Для отправки уведомления необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/ping.php?login=<login>&psw=<password>&id=<id>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
id | Идентификатор группы заданий (колонка "ID").
|
---|
name | Название правила или сервера в задании. Заменяет макрос {NAME} в тексте уведомления.
|
---|
host | Адрес или IP проверяемого сервера. Заменяет макрос {HOST}.
|
---|
info | Дополнительная информация о событии. Заменяет макрос {INFO}.
|
---|
ok | При формировании уведомления использовать следующий шаблон:
0 – (по умолчанию) используется шаблон группы заданий, отправляемый при сбое.
1 – используется шаблон группы заданий, отправляемый при восстановлении.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Группа заданий не найдена.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более пяти одинаковых запросов на отправку уведомления в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
- при fmt = 0 и fmt = 1:
OK
- при fmt = 2:
<result>OK</result>
|
- при fmt = 3:
Сервер не принимает более пяти одинаковых запросов на отправку уведомления в течение минуты для снижения
нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Действия с рассылкамиДля создания рассылки необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/jobs.php?add=1&login=<login>&psw=<password>&name=<name>&phones=<phones>&mes=<message>
Для удаления рассылки необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/jobs.php?del=1&login=<login>&psw=<password>&id=<id>
Для отключения рассылки, ожидающей отправки, необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/jobs.php?cancel=1&login=<login>&psw=<password>&id=<id>
Для получения информации о конкретной рассылке, необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/jobs.php?get=1&login=<login>&psw=<password>&id=<id>
Для получения списка рассылок, необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/jobs.php?get_all=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу при создании рассылки (любой из дополнительных параметров применяется к каждому сообщению в рассылке; для работы с e-mail рассылками необходимо в запросе передавать дополнительный параметр mail=1):
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
name | Название рассылки.
|
---|
phones | Номер или разделенный запятой или точкой с запятой список номеров мобильных телефонов в международном формате,
на которые отправляется сообщение. Номера могут передаваться без знака "+".
Если номер передан без знака "+", то он может быть исправлен автоматическим форматированием
и приведен к правильному международному формату. Таким образом, некоторые
ошибки при вводе номеров телефонов могут быть исправлены автоматически.
Для отключения автоисправления передайте номер со знаком "+".
Также можно отправлять сообщение на группу номеров, указав специальный код "G<номер группы>".
Сообщение будет отправлено на все номера, принадлежащие данной группе. Для e-mail сообщения передается список e-mail адресов
получателей. Для telegram в качестве получателя сообщения возможно указание ника абонента или его ID в виде #ID.
|
---|
mes | Текст отправляемого сообщения. Максимальный размер – 1000 символов. Сообщение при
необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности. Размер одного
SMS – 160 символов в латинице или 70 символов в кириллице. При разбивке сообщения на несколько SMS в каждую часть
добавляется заголовок для объединения частей в одно сообщение на телефоне получателя, и максимальная длина становится
67 для кириллицы и 153 для латинских букв. В текст сообщения можно добавлять комментарии,
предназначенные для просмотра отправителем истории в личном кабинете.
|
---|
Дополнительные параметры
|
---|
sender | Имя отправителя, отображаемое в телефоне получателя.
Разрешены английские буквы, цифры, пробел и некоторые символы. Длина – 11 символов или 15 цифр.
Все имена регистрируются в личном кабинете на данной странице.
|
---|
sender2 | Данный параметр используется в качестве имени отправителя при автоповторе по SMS в случае недоставки сообщений через первоначальный вариант отправки.
|
---|
translit | Признак того, что сообщение необходимо перевести в транслит.
0 (по умолчанию) – не переводить в транслит. 1 – перевести в транслит в виде "translit".
2 – перевести в транслит в виде "mpaHc/Ium".
|
---|
tinyurl | Автоматически сокращать ссылки в сообщениях. Позволяет заменять ссылки в тексте
сообщения на короткие для сокращения длины, а также для отслеживания количества переходов на
этой странице.
0 (по умолчанию) – оставить ссылки в тексте сообщения без изменений. 1 – сократить ссылки.
|
---|
time | Время отправки SMS-сообщения абоненту.
Форматы:
- DDMMYYhhmm или DD.MM.YY hh:mm.
- h1-h2. Задает диапазон времени в часах. Если текущее время меньше h1, то SMS-сообщение
будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2,
то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при
достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений
абонентами в ночное время.
- 0ts, где ts – timestamp, время в секундах, прошедшее с 1 января 1970 года.
- +m. Задает относительное смещение времени от текущего в минутах. Символ + должен кодироваться как %2B в http-запросе.
Если time = 0 или указано уже прошедшее время, то сообщение будет отправлено немедленно.
|
---|
rpt | Определяет периодичность отправки вновь создаваемой рассылки. 0 (по умолчанию) – вручную.
1 – каждый час. 2 – каждый день. 3 – каждый рабочий день. 4 – каждые выходные. 5 – каждую неделю.
6 – каждый месяц. 7 – каждый год.
|
---|
rptn | Устанавливает максимальное количество повторов для отложенной периодической рассылки.
|
---|
tz | Часовой пояс, в котором задается параметр time. Указывается относительно московского времени.
Параметр tz может быть как положительным, так и отрицательным. Если tz равен 0, то будет использован московский часовой
пояс, если же параметр tz не задан, то часовой пояс будет взят из настроек Клиента.
|
---|
period | Промежуток времени, в течение которого необходимо отправить рассылку. Представляет собой число
в диапазоне от 0.1 до 720 часов. Применяется совместно с параметром freq. Данный параметр позволяет растянуть рассылку во
времени для постепенного получения SMS-сообщений абонентами.
|
---|
freq | Интервал или частота, с которой нужно отправлять SMS-рассылку на очередную группу номеров. Количество
номеров в группе рассчитывается автоматически на основе параметров period и freq. Задается в промежутке от 1 до 1440 минут.
Без параметра period параметр freq игнорируется.
|
---|
flash | Признак Flash сообщения, отображаемого сразу на экране телефона.
0 (по умолчанию) – обычное сообщение. 1 – Flash сообщение.
|
---|
bin | Признак бинарного сообщения. 0 (по умолчанию) – обычное сообщение.
1 – бинарное сообщение. В http-запросе необходимо закодировать с помощью функции urlencode.
2 – бинарное сообщение, представленное в виде шестнадцатеричной строки (hex).
Бинарное сообщение передается вместе с UDH заголовком в начале в параметре mes, в котором первый байт задает длину заголовка.
Чтобы передать бинарное сообщение без UDH заголовка, укажите нулевой байт в начале сообщения (00 в hex).
Для возможности передачи параметров pid и dcs необходимо в конец бинарного сообщения добавить специальную комбинацию
"\n~~~\n" (перевод строки, 3 символа тильды и снова перевод строки) и затем текст "pid: значение1, dcs: значение2" с точным сохранением
пробелов.
|
---|
push | Признак wap-push сообщения, с помощью которого можно отправить интернет-ссылку на телефон. 0 (по умолчанию) – обычное сообщение.
1 – wap-push сообщение. В параметре mes необходимо передать ссылку и заголовок через перевод строки.
|
---|
hlr | Признак HLR-запроса для получения информации о номере из базы оператора без отправки реального SMS. 0 (по умолчанию) – обычное сообщение.
1 – HLR-запрос. Будет выполнен HLR-запрос для каждого номера телефона в списке. Параметр mes не используется.
|
---|
ping | Признак специального SMS, не отображаемого в телефоне, для проверки номеров на доступность в реальном времени по статусу доставки.
0 (по умолчанию) – обычное сообщение. 1 – ping-sms. Будет отправлено Ping-SMS на каждый номер телефона в списке.
Параметр mes не используется.
|
---|
mms | Признак MMS-сообщения, с помощью которого можно передавать текст (txt), изображения различных форматов (jpg, gif, png),
музыку (wav, amr, mp3, mid) и видео (mp4, 3gp). Файлы передаются в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – MMS-сообщение. Будет отправлено MMS на каждый номер телефона в списке.
|
---|
mail | Признак e-mail сообщения. Файлы, прикрепляемые к сообщению, передаются методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – e-mail сообщение.
|
---|
soc | Признак soc-сообщения, отправляемого пользователям социальных сетей "Одноклассники", "ВКонтакте" или пользователям "Mail.Ru Агент".
0 (по умолчанию) – обычное сообщение. 1 – soc-сообщение.
|
---|
viber | Признак viber-сообщения, отправляемого пользователям мессенджера Viber.
0 (по умолчанию) – обычное сообщение. 1 – viber-сообщение.
|
---|
whatsapp | Признак whatsapp-сообщения, отправляемого пользователям мессенджера WhatsApp.
0 (по умолчанию) – обычное сообщение. 1 – whatsapp-сообщение.
|
---|
bot | Имя бота (telegram), в который необходимо отправить сообщение в формате "@botname_bot".
|
---|
smsreq | При указании данного параметра, система не будет отображать текст сообщения, отправленного пользователю и выводить предупреждение о необходимости подтверждения номера телефона, если с момента последнего подтверждения прошло больше smsreq дней. Диапазон значений от 10 до 999.
|
---|
fileurl | Полный http-адрес файла для загрузки и передачи в сообщении. Минимальный размер файла составляет 101 байт.
|
---|
mes2 | Данный параметр задает вариант сообщения для пересылки по SMS в режиме автоматического повтора при недоставке на альтернативные маршруты, например, отправка в мессенджеры. Для включения автоматического повтора необходимо в запросе дополнительно передать флаг fl[5], равный 1.
|
---|
call | Признак голосового сообщения. При формировании голосового сообщения можно передавать как текст, так и прикреплять файлы.
Файлы, добавляемые к сообщению, должны передаваться методом POST в теле http-запроса.
0 (по умолчанию) – обычное сообщение. 1 – голосовое сообщение.
|
---|
voice | Голос, используемый для озвучивания текста (только для голосовых сообщений).
m – мужской голос. m2 – мужской голос 2. m3 (по умолчанию) – мужской голос 3. m4 – мужской голос 4.
w – женский голос. w2 – женский голос 2. w3 – женский голос 3. w4 – женский голос 4.
При отправке сообщений также возможно указание языка озвучивания текста в виде: "m,en", "w,fr", "w,de" и т.п.
|
---|
param | Разделенный запятой список параметров для голосового сообщения в формате "param=w,i,n".
Здесь:
- w – время ожидания поднятия трубки абонентом после начала звонка в секундах. Если в течение указанного времени абонент не поднимет трубку,
то звонок уйдет на повтор с ошибкой "абонент занят". Рабочий диапазон значений параметра от 10 до 35, но можно указывать интервал от 0 до 99
(в случае, если значение меньше 10, то оно будет приведено к 10, аналогично для верхней границы).
- i – интервал повтора, то есть промежуток времени, по истечении которого произойдет повторный звонок (в секундах). Рабочий диапазон параметра
от 10 до 3600 (в случае, если значение меньше 10, то оно будет приведено к 10).
- n – общее количество попыток дозвона. Рабочий диапазон значений от 1 до 9 (0 будет приведен к 1).
При указании значения любого параметра, отличного от возможных, будут использованы значения всех параметров по умолчанию
(n = 8, w = 25, i от 3 до 14 секунд по нарастающей), кроме сообщений рекламного характера.
|
---|
subj | Тема MMS или e-mail сообщения. При отправке e-mail указание темы, текста и адреса отправителя обязательно. Для MMS обязательным
является указание темы или текста. Если не указать тему MMS, то в ее качестве будет использовано имя отправителя, переданное в запросе или
используемое по умолчанию.
|
---|
charset | Кодировка переданного сообщения, если используется отличная от кодировки по
умолчанию windows-1251. Варианты: utf-8 и koi8-r.
|
---|
cost | Признак необходимости получения стоимости рассылки.
0 (по умолчанию) – обычная отправка. 1 –
добавить в ответ стоимость рассылки.
|
---|
fmt | Формат ответа сервера об успешной отправке.
0 – (по умолчанию) в виде строки (OK - 1 SMS, ID - 1234).
1 – вернуть ответ в виде чисел: ID и количество SMS через запятую (1234,1), при cost = 2 еще стоимость через
запятую (1234,1,1.40), при cost = 3 еще новый баланс Клиента (1234,1,1.40,100.50), при cost = 1 стоимость и количество
SMS через запятую (1.40,1).
2 – ответ в xml формате.
3 – ответ в json формате.
|
---|
list | Список номеров телефонов и соответствующих им сообщений, разделенных двоеточием или точкой с запятой и
представленный в виде:
phones1:mes1
phones2:mes2
...
Строки разделяются через символ новой строки (%0A). В качестве phones можно указать несколько номеров телефонов через
запятую. Если в сообщении mes требуется передать символ новой строки, то укажите его через \n. В случае невозможности корректировки текста мультистрокового сообщения возможно включение специального режима для передачи такого типа сообщений. Для этого необходимо дополнительно передавать в запросе параметр nl, равный 1.
В случае необходимости передачи разных имен отправителей (и, возможно, различных часовых поясов абонентов (работает только для запросов, в которых параметр time представлен в виде DDMMYYhhmm или DD.MM.YY hh:mm)) для разных сообщений можно использовать следующий формат передачи:
sender1,tz1|phones1:mes1
sender2,tz2|phones2:mes2
...
В данном случае параметр tz является необязательным.
Параметр list позволяет выполнять множественную рассылку с разными сообщениями на несколько телефонов одним
http-запросом. Сообщениям в запросе присваивается единый идентификатор. Весь параметр должен быть закодирован с
помощью функции urlencode.
|
---|
tpl | ID шаблона, который будет использован в качестве текста сообщения. Для использования шаблона необходимо,
чтобы параметр mes был пустым.
|
---|
valid | Срок "жизни" SMS-сообщения. Определяет время, в течение которого оператор будет пытаться доставить
сообщение абоненту. Диапазон от 1 до 24 часов. Также возможно передавать время в формате чч:мм в диапазоне от 00:01 до 24:00.
|
---|
Обязательными параметрами являются login, psw, name, phones и mes или login, psw, name и list.
Описание параметров, передаваемых Серверу при удалении, отключении или получении списка рассылок:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
id | Идентификатор рассылки. Возвращается Сервером после создания и используется для дальнейшей идентификации рассылки.
|
---|
Дополнительные параметры
|
---|
start | Дата, с которой требуется получить список рассылок. Если данный параметр не указан, возвращает список рассылок за последние 2 месяца, но не более 10. Применяется совместно с параметром get_all. Формат: 'дд.мм.гггг'.
|
---|
end | Дата, до которой требуется получить список рассылок. Если данный параметр не указан, то возвращается список рассылок до текущий даты, но не более 10. Применяется совместно с параметром get_all. Формат: 'дд.мм.гггг'.
|
---|
Обязательными параметрами являются login, psw и id.
После принятия и обработки данных Сервер возвращает Клиенту подтверждение с указанием результата обработки.
Все параметры, которые содержат специальные символы (плюс, пробел и т.д.), должны быть закодированы
при помощи функции urlencode для передачи в HTTP-запросе.
Рассылки. Ответ сервера и коды ошибок
Сервер отправляет ответ в виде строки:
Если произошла ошибка, то ответ будет одним из следующих:
При fmt = 0:
- ERROR = N (описание) – для ошибок 1,2,3,4,5,9.
При fmt = 1:
- 0,-N – для ошибок 1,2,3,4,5,9.
При fmt = 2:
- Для ошибок 1,2,3,4,5,9:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
При fmt = 3:
- Для ошибок 1,2,3,4,5,9:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Ошибка сохранения записи.
|
---|
4 | IP-адрес временно заблокирован из-за частых ошибок в запросах. Подробнее
|
---|
5 | Неверный формат даты.
|
---|
9 | Отправка более одного одинакового запроса на действия с рассылками в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешной обработки запроса возвращается строка следующего вида:
При создании рассылки:
- при cost = 0 и fmt = 0: OK, ID - <id>
- при cost = 1 и fmt = 0: OK, ID - <id>, COST - <cost>
- при cost = 0 и fmt = 1: <id>
- при cost = 1 и fmt = 1: <id>,<cost>
- при cost = 0 и fmt = 2:
<result>
<id>id</id>
</result> |
- при cost = 1 и fmt = 2:
<result>
<id>id</id>
<cost>cost</cost>
</result> |
- при cost = 0 и fmt = 3:
- при cost = 1 и fmt = 3:
{
"id": <id>,
"cost": "<cost>"
} |
При отключении или удалении рассылки:
- при fmt = 0,1: OK
- при fmt = 2:
<result>OK</result> |
- при fmt = 3:
При получении информации о конкретной рассылке (при mail=1 параметр "phones" заменяется на "emails"):
- при fmt = 0: <id>|<name>|<subject>|<repeat_send>|<repeat_cnt>|<created>|<changed>|<need_date>|<last_sent>|<phones>|<message>|<format>|<validity>|<period>|<frequency>|<status>|<sender_id>
- при fmt = 1: <id>;<name>;<subject>;<repeat_send>;<repeat_cnt>;<created>;<changed>;<need_date>;<last_sent>;<phones>;<message>;<format>;<validity>;<period>;<frequency>;<status>;<sender_id>
- при fmt = 2:
<job>
<id>id</id>
<name>name</name>
<subject>subject</subject>
<repeat_send>repeat_send</repeat_send>
<repeat_cnt>repeat_cnt</repeat_cnt>
<created>created</created>
<changed>changed</changed>
<need_date>need_date</need_date>
<last_sent>last_sent</last_sent>
<phones>phones</phones>
<message>message</message>
<format>format</format>
<validity>validity</validity>
<period>period</period>
<frequency>frequency</frequency>
<status>status</status>
<sender_id>sender_id</sender_id>
</job> |
- при fmt = 3:
[ {
"id": <id>,
"name": "<name>",
"subject": "<subject>",
"repeat_send": <repeat_send>,
"repeat_cnt": <repeat_cnt>,
"created": "<created>",
"changed": "<changed>",
"need_date": "<need_date>",
"last_sent": "<last_sent>",
"phones": "<phones>",
"message": "<message>",
"format": <format>,
"validity": <validity>,
"period": "<period>",
"frequency": <frequency>,
"status": <status>,
"cost": "<cost>",
"sms_sent": <sms_sent>,
"sms_ok": <sms_ok>,
"sender_id": "<sender_id>"
} ] |
При получении списка рассылок (при mail=1 параметр "phones" заменяется на "emails"):
- при fmt = 0: <id>|<name>|<changed>|<need_date>|<last_sent>|<phones>|<message>|<phones_cnt>|<cost>|<status>|<sender_id>|<format>
- при fmt = 1: <id>;<name>;<changed>;<need_date>;<last_sent>;<phones>;<message>;<phones_cnt>;<cost>;<status>;<sender_id>;<format>
- при fmt = 2:
<sms_jobs>
<job>
<id>id</id>
<name>name</name>
<changed>changed</changed>
<need_date>need_date</need_date>
<last_sent>last_sent</last_sent>
<phones>phones</phones>
<message>message</message>
<phones_cnt>phones_cnt</phones_cnt>
<cost>cost</cost>
<status>status</status>
<sender_id>sender_id</sender_id>
<format>format</format>
</job>
...
</sms_jobs>
|
- при fmt = 3:
[ {
"id": <id>,
"name": "<name>",
"changed": "<changed>",
"need_date": "<need_date>",
"last_sent": "<last_sent>",
"phones": "<phones>",
"message": "<message>",
"phones_cnt": <phones_cnt>,
"cost": "<cost>",
"status": <status>,
"sender_id": "<sender_id>",
"format": <format>,
"sms_sent": <sms_sent>,
"sms_ok": <sms_ok>
}, ... ] |
Где:
<id> – идентификатор рассылки, переданный Клиентом или назначенный Сервером автоматически.
<name> – название рассылки.
<subject> – тема (для e-mail рассылок).
<repeat_send> – период повтора.
<repeat_cnt> – количество повторов рассылки.
<created> – дата создания рассылки.
<changed> – дата изменения рассылки.
<need_date> – назначенная дата отправки.
<last_sent> – дата последней отправки.
<phones> (<emails>) – список телефонов (e-mail адресов) получателей сообщений.
<message> – текст сообщения.
<format> – формат сообщения.
<validity> – "время жизни" сообщения.
<period> – интервал отправки сообщений.
<frequency> – частота отправки сообщений.
<status> – статус рассылки.
<sender_id> – имя отправителя.
<phones_cnt> – количество получателей.
<cost> – стоимость рассылки.
<sms_sent> – количество отправленных сообщений.
<sms_ok> – количество доставленных сообщений.Примеры операций с рассылкамиПримеры:
Создание SMS-рассылки:
https://smsc.kz/sys/jobs.php?add=1&login=alex&psw=123&phones=79999999999&name=Privet&mes=Hello!
Создание рассылки с голосовым сообщением:
https://smsc.kz/sys/jobs.php?add=1&login=alex&psw=1234567890&phones=79999999999&call=1&voice=w2&name=Privet&mes=Hello!
Создание рассылки с e-mail сообщением на адрес "alex@mysite.com" с темой "Hi" и текстом "Hello!" от отправителя "alex2@mysite2.com"
и названием рассылки "Privet":
https://smsc.kz/sys/jobs.php?add=1&login=alex&psw=123&phones=alex%40mysite.com&mail=1&name=Privet&mes=Hello!&subj=Hi&sender=alex2%40mysite2.com
Создание Viber-рассылки с макросами и автоповтором по SMS (текст SMS отличен от текста Viber-сообщения) на несколько номеров (тексты сообщений необходимо закодировать при помощи функции urlencode):
https://smsc.kz/sys/jobs.php?add=1&login=alex&psw=123&phones=79999999999,78888888888&name=rassilka1&mes={Имя}, это Viber-сообщение&mes2=Это SMS для {Имя}&sender=MyViber&fl[5]=1&viber=1
Удаление созданной рассылки с id равным 701:
https://smsc.kz/sys/jobs.php?del=1&login=alex&psw=123&id=701
Отключение отложенной рассылки с id равным 701:
https://smsc.kz/sys/jobs.php?cancel=1&login=alex&psw=123&id=701 Проверка статуса
Для проверки статуса доставки SMS или e-mail необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/status.php?login=<login>&psw=<password>&phone=<phone>&id=<sms_id>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
phone | Номер телефона или список номеров через запятую при запросе
статусов нескольких SMS. При множественном запросе номера в списке должны
быть перечислены в порядке, соответствующем идентификаторам сообщений. Для
сохранения формата множественного запроса при запросе статуса одного сообщения
укажите запятую после номера телефона. Это описание подходит и для e-mail-сообщений.
|
---|
id | Идентификатор сообщения или список идентификаторов через запятую при
запросе статусов нескольких сообщений. Для сохранения формата множественного запроса
при запросе статуса одного сообщения укажите запятую после идентификатора
сообщения.
|
---|
fmt | Формат ответа сервера:
0 – (по умолчанию) в виде строки (Status = 1, check_time = 10.10.2010 10:10:10).
1 – в виде номера статуса и штампа времени через запятую (1,1286524541).
2 – в xml формате.
3 – в json формате.
|
---|
all | 0 – (по умолчанию) получить статус сообщения в обычном формате.
1 – получить полную информацию об отправленном сообщении.
2 – добавить в информацию о сообщении данные о стране, операторе и регионе абонента.
|
---|
charset | Кодировка результата запроса, если используется отличная от кодировки
по умолчанию windows-1251. Варианты: utf-8 и koi8-r.
|
---|
del | 1 – удалить ранее отправленное сообщение. Используется совместно с параметрами
phone и id. Более подробно данный параметр описан здесь.
|
---|
Статусы сообщений. Ответ сервера и коды ошибокВ случае ошибки Сервер возвращает следующую строку:
- При fmt = 0:
ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка удаления сообщения.
|
---|
9 | Попытка отправки более пяти запросов на получение статуса одного и того же сообщения или более одного массового запроса в течение минуты.
Данная ошибка возникает также при попытке отправки пяти и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
Ответы для SMS-сообщений:
- при fmt = 0 и all = 0: Status = <status>, check_time = <last_date>, err = <err>
- при fmt = 1 и all = 0: <status>,<last_timestamp>,<err>
- при fmt = 2 и all = 0:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
</sms> |
- при fmt = 3 и all = 0:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>
} |
- при fmt = 0 и all = 1:
Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, comment = <comment>, type = <type>
|
- при fmt = 1 и all = 1:
<status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<cost>,<sender>,<status_name>,<message>, <comment>, <type>
- при fmt = 2 и all = 1:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
<send_date>send_date</send_date>
<send_timestamp>send_timestamp</send_timestamp>
<phone>phone</phone>
<cost>cost</cost>
<sender_id>sender</sender_id>
<status_name>status_name</status_name>
<message>message</message>
<comment>comment</comment>
<type>type</type>
<sms_cnt>sms_cnt</sms_cnt>
</sms>
|
- при fmt = 3 и all = 1:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>,
"send_date": "<send_date>",
"send_timestamp": <send_timestamp>,
"phone": "<phone>",
"cost": "<cost>",
"sender_id": "<sender>",
"status_name": "<status_name>",
"message": "<message>",
"comment": "<comment>",
"type": <type>,
"sms_cnt": <sms_cnt>
} |
- при fmt = 0 и all = 2:
Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>, mccmnc = <mccmnc>, country = <country>, operator = <operator>, operator_orig= <operator_orig>, region = <region>, cost = <cost>, sender_id = <sender>, status_name = <status_name>, message = <message>, comment = <comment>, type = <type>
|
- при fmt = 1 и all = 2:
<status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<country>,<operator>,<region>,<cost>,<sender>,<status_name>,<message>, <comment>, <type>
|
- при fmt = 2 и all = 2:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
<send_date>send_date</send_date>
<send_timestamp>send_timestamp</send_timestamp>
<phone>phone</phone>
<cost>cost</cost>
<sender_id>sender</sender_id>
<status_name>status_name</status_name>
<message>message</message>
<comment>comment</comment>
<mccmnc>mccmnc</mccmnc>
<country>country</country>
<operator>operator</operator>
<operator_orig>operator_orig</operator_orig>
<region>region</region>
<type>type</type>
<sms_cnt>sms_cnt</sms_cnt>
</sms>
|
- при fmt = 3 и all = 2:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>,
"send_date": "<send_date>",
"send_timestamp": <send_timestamp>,
"phone": "<phone>",
"cost": "<cost>",
"sender_id": "<sender>",
"status_name": "<status_name>",
"message": "<message>",
"comment": "<comment>",
"mccmnc": "<mccmnc>",
"country": "<country>",
"operator": "<operator>",
"operator_orig": "<operator_orig>",
"region": "<region>",
"type": <type>,
"sms_cnt": <sms_cnt>
} |
Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<flag> – флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик.
Биты 0-3 (тип сообщения): 0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 8 – E-mail,
10 – Viber, 12 – Соцсети.
Бит 5 – оплата сообщения со второго баланса.
Бит 8 – признак шаблонного сообщения.
Биты 10,9 – тип шаблонного сообщения (00 - сервисное, 01 - транзакционное, 10 - авторизационное, 11 - рекламное).
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента или e-mail адрес.
<country> – название страны регистрации номера абонента.
<operator> – текущий сотовый оператор абонента.
<operator_orig> – оператор абонента по мобильному коду до портирования номера.
<region> – регион регистрации номера абонента.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<comment> – комментарий сообщения.
<mccmnc> – числовой код страны абонента плюс числовой код оператора абонента.
<type> – тип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 –
Звонок, 8 – E-mail, 10 – Viber, 12 – Соцсети).
<sms_cnt> – количество частей в SMS-сообщении (либо секунд в голосовом сообщении).
Ответы для HLR-запросов:
- при fmt = 0 и all = 0:
Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet> |
- при fmt = 1 и all = 0: <status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>
- при fmt = 2 и all = 0:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
<imsi>imsi</imsi>
<msc>msc</msc>
<mcc>mcc</mcc>
<mnc>mnc</mnc>
<cn>cn</cn>
<net>net</net>
<rcn>rcn</rcn>
<rnet>rnet</rnet>
</sms> |
- при fmt = 3 и all = 0:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>,
"imsi": "<imsi>",
"msc": "<msc>",
"mcc": "<mcc>",
"mnc": "<mnc>",
"cn": "<cn>",
"net": "<net>",
"rcn": "<rcn>",
"rnet": "<rnet>"
} |
- при fmt = 0 и all = 1:
Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>, msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>, send_date = <send_date>, phone = <phone>, cost = <cost>, sender_id = <sender_id>, status_name = <status_name>, message = <message>, type = <type> |
- при fmt = 1 и all = 1:
<status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>,
<send_timestamp>,<phone>,<cost>,<sender_id>,<status_name>,<message>,<type> |
- при fmt = 2 и all = 1:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
<imsi>imsi</imsi>
<msc>msc</msc>
<mcc>mcc</mcc>
<mnc>mnc</mnc>
<cn>cn</cn>
<net>net</net>
<rcn>rcn</rcn>
<rnet>rnet</rnet>
<send_date>send_date</send_date>
<send_timestamp>send_timestamp</send_timestamp>
<phone>phone</phone>
<cost>cost</cost>
<sender_id>sender_id</sender_id>
<status_name>status_name</status_name>
<message>message</message>
<type>type</type>
</sms> |
- при fmt = 3 и all = 1:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>,
"imsi": "<imsi>",
"msc": "<msc>",
"mcc": "<mcc>",
"mnc": "<mnc>",
"cn": "<cn>",
"net": "<net>",
"rcn": "<rcn>",
"rnet": "<rnet>",
"send_date": "<send_date>",
"send_timestamp": <send_timestamp>,
"phone": "<phone>",
"cost": "<cost>",
"sender_id": "<sender>",
"status_name": "<status_name>",
"message": "<message>",
"type": <type>
} |
- при fmt = 0 и all = 2:
Status = <status>, check_time = <check_time>, err = <err>, imsi = <imsi>,
msc = <msc>, mcc = <mcc>, mnc = <mnc>, cn = <cn>, net = <net>, rcn = <rcn>, rnet = <rnet>,
send_date = <send_date>, phone = <phone>, country = <country>, operator = <operator>, region = <region>, cost = <cost>,
sender_id = <sender_id>, status_name = <status_name>, message = <message>, type = <type> |
- при fmt = 1 и all = 2:
<status>,<last_timestamp>,<err>,<imsi>,<msc>,<mcc>,<mnc>,<cn>,<net>,<rcn>,<rnet>,
<send_timestamp>,<phone>,<country>,<operator>,<region>,<cost>,<sender_id>,<status_name>,<message>,<type> |
- при fmt = 2 и all = 2:
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<flag>flag</flag>
<err>err</err>
<imsi>imsi</imsi>
<msc>msc</msc>
<mcc>mcc</mcc>
<mnc>mnc</mnc>
<cn>cn</cn>
<net>net</net>
<rcn>rcn</rcn>
<rnet>rnet</rnet>
<send_date>send_date</send_date>
<send_timestamp>send_timestamp</send_timestamp>
<phone>phone</phone>
<cost>cost</cost>
<sender_id>sender_id</sender_id>
<status_name>status_name</status_name>
<message>message</message>
<country>country</country>
<operator>operator</operator>
<region>region</region>
<type>type</type>
</sms> |
- при fmt = 3 и all = 2:
{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"flag": <flag>,
"err": <err>,
"imsi": "<imsi>",
"msc": "<msc>",
"mcc": "<mcc>",
"mnc": "<mnc>",
"cn": "<cn>",
"net": "<net>",
"rcn": "<rcn>",
"rnet": "<rnet>",
"send_date": "<send_date>",
"send_timestamp": <send_timestamp>,
"phone": "<phone>",
"cost": "<cost>",
"sender_id": "<sender>",
"status_name": "<status_name>",
"message": "<message>",
"country": "<country>",
"operator": "<operator>",
"region": "<region>",
"type": <type>
} |
Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<flag> – флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик.
Биты 0-3 (тип сообщения): 0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 – Звонок, 8 – E-mail,
10 – Viber, 12 – Соцсети.
Бит 5 – оплата сообщения со второго баланса.
Бит 8 – признак шаблонного сообщения.
<err> – код HLR-ошибки или статуса абонента (список).
<imsi> – уникальный код IMSI SIM-карты абонента.
<msc> – номер сервис-центра оператора, в сети которого находится абонент.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<cn> – название страны регистрации абонента.
<net> – название оператора регистрации абонента.
<rcn> – название роуминговой страны абонента при нахождении в чужой сети.
<rnet> – название роумингового оператора абонента при нахождении в чужой сети.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – название оператора абонента.
<region> – регион регистрации номера абонента.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<type> – тип сообщения (для HLR равен 4).
Если сообщение не найдено или находится в архивной базе (значение статуса равно -3), то для fmt = 0,2,3 возвращается код статуса в
соответствующем формате. Для fmt = 1 возвращается ответ в формате статуса обычного сообщения.
При множественном запросе статусов:
- для fmt = 0 и fmt = 1 в результате возвращается список строк, каждая из которых содержит информацию о статусе соответствующего сообщения.
- для fmt = 2 формат возвращаемых статусов аналогичен формату для одиночных сообщений, при этом весь список статусов заключается в тег "<list>".
- для fmt = 3 формат также аналогичен формату для одиночных сообщений, статусы перечисляются через запятую, и весь список обрамляется
квадратными скобками.
В случае множественного запроса статусов при значении параметра all = 1 или all = 2 для каждого статуса дополнительно возвращается идентификатор
сообщения. При all = 0 дополнительно возвращается идентификатор сообщения и номер телефона.Коды статусовВозможные варианты кодов статусов сообщений или HLR-запросов (значения <status>):
Код | Название | Описание
|
---|
-3 | Сообщение не найдено | Возникает, если для указанного номера телефона и ID сообщение не найдено.
|
---|
-2 | Остановлено | Возникает у сообщений из рассылки, которые не успели уйти оператору до момента временной остановки данной рассылки на странице Рассылки и задания.
|
---|
-1 | Ожидает отправки | Если при отправке сообщения было задано время получения абонентом, то до этого времени сообщение будет
находиться в данном статусе, в других случаях сообщение в этом статусе находится непродолжительное время перед отправкой на SMS-центр.
|
---|
0 | Передано оператору | Сообщение было передано на SMS-центр оператора для доставки.
|
---|
1 | Доставлено | Сообщение было успешно доставлено абоненту.
|
---|
2 | Прочитано | Сообщение было прочитано (открыто) абонентом. Данный статус возможен для e-mail-сообщений, имеющих формат html-документа.
|
---|
3 | Просрочено | Возникает, если время "жизни" сообщения истекло, а оно так и не было доставлено получателю, например, если абонент
не был доступен в течение определенного времени или в его телефоне был переполнен буфер сообщений.
|
---|
4 | Нажата ссылка | Сообщение было доставлено, и абонентом была нажата короткая ссылка, переданная в сообщении.
Данный статус возможен при включенных в настройках опциях "Автоматически сокращать ссылки в сообщениях" и "отслеживать номера абонентов".
|
---|
20 | Невозможно доставить | Попытка доставить сообщение закончилась неудачно, это может быть вызвано разными причинами, например,
абонент заблокирован, не существует, находится в роуминге без поддержки обмена SMS, или на его телефоне не поддерживается прием SMS-сообщений.
|
---|
22 | Неверный номер | Неправильный формат номера телефона.
|
---|
23 | Запрещено | Возникает при срабатывании ограничений на отправку дублей, на частые сообщения на один номер (флуд), на номера из
черного списка, на запрещенные спам фильтром тексты или имена отправителей (Sender ID).
|
---|
24 | Недостаточно средств | На счете Клиента недостаточная сумма для отправки сообщения.
|
---|
25 | Недоступный номер | Телефонный номер не принимает SMS-сообщения, или на этого оператора нет рабочего маршрута.
|
---|
Запрос статусов сообщений необходимо осуществлять в течение суток с момента отправки.
По истечении данного времени сообщения помещаются в архивную базу. В 03:00 по московскому времени переносятся
сообщения с конечным статусом, отправленные до 18:00 прошедшего дня. Для возможности получения реальных статусов
таких сообщений необходимо обратиться в службу поддержки.
Также сервер не принимает более пяти одинаковых запросов на получение статуса одного и того же сообщения или более одного массового запроса
в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Коды ошибок в статусеВозможные коды ошибок в статусе сообщений или HLR-запросов (значения <err>):
Код | Название | Описание
|
---|
0 | Нет ошибки | Абонент существует и доступен.
|
---|
1 | Абонент не существует | Указанный номер телефона не существует.
|
---|
6 | Абонент не в сети | Телефон абонента отключен или находится вне зоны действия сети.
|
---|
11 | Не подключена услуга | Означает, что абонент не может принять SMS-сообщение. Например, услуга не подключена,
или абонент находится в роуминге, где не активирован прием сообщений, или у оператора абонента не налажен обмен SMS с
текущим роуминговым оператором. Также это может быть городской номер без приема сообщений.
|
---|
12 | Ошибка в телефоне абонента | Не удается доставить сообщение абоненту из-за ошибки в телефонном аппарате или SIM-карте.
|
---|
13 | Абонент заблокирован | Возникает, например, если на счету абонента нулевой или отрицательный баланс, и
он находится в роуминге, или заблокирован оператором за продолжительную неуплату либо добровольно самим абонентом. Также
данная ошибка может возвращаться при повреждении SIM-карты либо неправильном вводе PIN и PUK-кодов SIM-карты.
|
---|
21 | Нет поддержки сервиса | Аппарат абонента не поддерживает работу с данной услугой (сервисом).
|
---|
200 | Виртуальная отправка | Данное уведомление появляется под статусом сообщения в случае отправки
сообщения в режиме тестирования (при установленной в настройках галочке "Режим тестирования (виртуальная отправка без
оплаты)").
|
---|
219 | Замена sim-карты | Ошибка отправки сообщения в связи с заменой абонентом sim-карты. После физической замены sim-карты абоненту заблокирован прием сообщений от буквенных имен отправителей на 24 часа. Блокировка может быть снята путем пополнения баланса на 100 рублей.
|
---|
220 | Переполнена очередь у оператора | Указанная ошибка может возникать в случае, когда абонент недоступен
для приема SMS, но сообщения продолжают приходить оператору и происходит переполнение внутренней очереди сообщений
для данного абонента. В редких случаях возможно появление ошибки в результате сбоя в сети самого оператора или переполнении
общей очереди сообщений. Во всех подобных ситуациях система с определенными интервалами несколько раз пытается отправить
указанные сообщения повторно.
|
---|
237 | Абонент не отвечает | Возникает, если в процессе попытки дозвона абонент не взял трубку.
|
---|
238 | Нет шаблона | Возникает, если отправка сообщения возможна только по определенному шаблону, а отправляемое
сообщение ему не удовлетворяет.
|
---|
239 | Запрещенный ip-адрес | Возникает при попытке отправки сообщения с ip-адреса, не входящего в список ip-адресов,
разрешенных Клиентом для отправки. Также может возникать при попытке отправки сообщения с ip-адреса, ранее не используемого
для отправки сообщений и входов в личный кабинет.
|
---|
240 | Абонент занят | Возникает при передаче голосового сообщения абоненту, если линия занята или абонент
отменил вызов.
|
---|
241 | Ошибка конвертации | При преобразовании текста или звукового файла в конечный формат для передачи
абоненту голосового сообщения произошла ошибка конвертации звука. Также данная ошибка может возникать при передаче
SMS-сообщения отдельными частями, когда оператору переданы не все части.
|
---|
242 | Зафиксирован автоответчик | Означает, что во время отправки голосового сообщения на стороне абонента был
зафиксирован автоответчик.
|
---|
243 | Не заключен договор | Возникает при попытке отправки рассылок рекламного или массового характера без
заключенного договора.
|
---|
244 | Рассылка запрещена | Означает, что для данного Клиента запрещена отправка массовых и рекламных рассылок,
либо в тексте сообщения встретилась запрещенная ссылка.
|
---|
245 | Статус не получен | В течение суток статус доставки не был получен от оператора, в этом
случае нельзя точно сказать, было сообщение доставлено или нет.
|
---|
246 | Ограничение по времени | Если в личном кабинете в пункте "Настройки" во вкладке "Лимиты и ограничения"
установлено "Время отправки" и галочка "запретить отправку в другое время", то при попытке отправки SMS-сообщений в период
времени, отличный от указанного в поле "Время отправки", отправка сообщений будет запрещаться с указанием данной ошибки.
|
---|
247 | Превышен лимит сообщений | Превышен общий суточный лимит сообщений, указанный Клиентом в личном кабинете
в пункте "Настройки".
|
---|
248 | Нет маршрута | Означает, что на данный номер отправка сообщений недоступна в нашем сервисе.
Например, ввели несуществующий мобильный код, либо для указанного номера и текста нет рабочего SMS-шлюза.
|
---|
249 | Неверный формат номера | Возникает, когда мобильный код указанного номера и соответствующая этому коду
длина номера неверны.
|
---|
250 | Номер запрещен настройками | Номер попал под ограничения, установленные Клиентом для мобильных номеров в
личном кабинете в пункте "Настройки".
|
---|
251 | Превышен лимит на один номер | Превышен суточный лимит сообщений на один номер. Лимит устанавливается
Клиентом в личном кабинете в пункте "Настройки". Также такая ошибка возможна при отправке более 50 сообщений одному абоненту,
которые были отправлены с перерывом между сообщениями менее 30 секунд.
|
---|
252 | Номер запрещен | Возникает, например, при попытке указания Клиентом одного из наших федеральных номеров в
качестве получателя SMS-сообщения.
|
---|
253 | Запрещено спам-фильтром | Если текст сообщения содержит нецензурные выражения и оскорбления, призывы отправить
sms и некоторые другие запрещенные тексты, то отправка сообщения заблокируется. Также запрещено указывать в качестве
отправителя короткие платные номера, номер получателя сообщений, названия операторов, чужих интернет-ресурсов, компаний и
государственных организаций.
|
---|
254 | Незарегистрированный sender id | Данная ошибка возникает при попытке отправки сообщения от незарегистрированного
имени отправителя.
|
---|
255 | Отклонено оператором | Оператор отклонил сообщение без указания точного кода ошибки. Такое бывает, например,
когда номер не принадлежит ни одному мобильному оператору, т.е. с несуществующим кодом, либо по какой-то другой причине оператор
не может доставить сообщение.
|
---|
Возможные коды ошибок в статусе e-mail сообщений (значения <err>):
Код | Название | Описание
|
---|
0 | Нет ошибки | Получатель существует и доступен.
|
---|
1 | Адресат не существует | Указанный e-mail адрес не существует.
|
---|
2 | Переполнен почтовый ящик | Почтовый сервер получателя отклонил сообщение с указанным кодом ошибки.
|
---|
3 | Сервер получателя не найден | Домен, указанный в качестве почтового сервера, не найден.
|
---|
4 | Почтовый ящик заблокирован | От почтового сервера получателя вернулась ошибка о невозможности доставки
сообщения по причине блокировки ящика.
|
---|
239 | Запрещенный ip-адрес | Возникает при попытке отправки сообщения с ip-адреса, не входящего в список ip-адресов,
разрешенных Клиентом для отправки. Также может возникать при попытке отправки сообщения с ip-адреса, ранее не используемого
для отправки сообщений и входов в личный кабинет.
|
---|
245 | Статус не получен | В течение суток статус доставки не был получен от почтового сервера получателя, в этом
случае нельзя точно сказать, было сообщение доставлено или нет.
|
---|
248 | Нет маршрута | Означает, что на данный e-mail адрес отправка сообщений недоступна в нашем сервисе.
Например, для указанного адреса и текста нет рабочего e-mail шлюза.
|
---|
249 | Неверный формат адреса | Возникает, когда ввели некорректный по формату e-mail адрес получателя.
|
---|
252 | E-mail адрес запрещен | Возникает, например, при нахождении указанного e-mail адреса в черном списке.
|
---|
253 | Запрещено спам-фильтром | Если текст сообщения содержит нецензурные выражения и оскорбления, призывы отправить
sms или e-mail и некоторые другие запрещенные тексты, то отправка сообщения заблокируется. Также запрещено указывать в качестве
отправителя e-mail адрес получателя сообщения, адреса чужих интернет-ресурсов, компаний и государственных организаций.
|
---|
254 | Незарегистрированный отправитель | Данная ошибка возникает при попытке отправки сообщения от незарегистрированного
e-mail адреса отправителя.
|
---|
255 | Отклонено сервером получателя | Почтовый сервер получателя отклонил сообщение без указания точного кода ошибки. Такое бывает, например,
при возникновении внутренней ошибки сервера, когда он не может обработать сообщение.
|
---|
Удаление сообщенияДля удаления сообщения необходимо вызвать методом GET или POST скрипт запроса статуса, указав команду del:
https://smsc.kz/sys/status.php?del=1&login=<login>&psw=<password>&phone=<phone>&id=<sms_id>
Описание параметров, передаваемых Серверу, и возвращаемых им ошибок аналогичное приведенному для функции запроса статуса.
В случае успешного запроса Сервер возвращает ответ в виде строки:
- при fmt = 0,1: OK
- при fmt = 2:
<result>OK</result>
- при fmt = 3:
Удаление сообщений необходимо производить до переноса в архивную базу.
Проверка состояния балансаЗапрос балансаДля запроса баланса используйте адрес:
https://smsc.kz/sys/balance.php?login=<login>&psw=<password>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
cur | Флаг, указывающий на необходимость добавления в ответ сервера названия валюты Клиента.
|
---|
fmt | Формат ответа сервера:
0 или 1 – (по умолчанию) в виде строки (250.80).
2 – в xml формате.
3 – в json формате.
|
---|
Баланс. Ответ сервера и коды ошибок
В случае ошибки Сервер возвращает следующую строку:
- При fmt = 0:
ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более десяти запросов на получение баланса в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
При cur = 0:
- при fmt = 0 или 1: <balance>
- при fmt = 2: <balance>balance</balance>
- при fmt = 3:
{
"balance": "<balance>"
} |
При cur = 1 и ненулевом кредите:
- при fmt = 0: <balance> <currency>
- при fmt = 1: <balance>,<currency>
- При fmt = 2:
<result>
<balance>balance</balance>
<credit>credit</credit>
<currency>currency</currency>
</result> |
- при fmt = 3:
{
"balance": "<balance>",
"credit": "<credit>",
"currency": "<currency>"
} |
Где:
<balance> – текущее состояние баланса.
<credit> – текущее состояние установленного кредита.
<currency> – валюта Клиента.
Сервер не принимает более десяти запросов на получение баланса в течение минуты для снижения
нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Действия с контактами и группамиДля управления контактами или группами необходимо вызвать методом GET или POST соответствующий адрес с указанием
требуемой команды и параметров.
Для создания контакта:
https://smsc.kz/sys/phones.php?add=1&login=<login>&psw=<password>&phone=<phone>&name=<name>
Для создания новой группы:
https://smsc.kz/sys/phones.php?add_group=1&login=<login>&psw=<password>&name=<name>
Для изменения номера телефона в контакте:
https://smsc.kz/sys/phones.php?chg=1&login=<login>&psw=<password>&phone=<phone>&new_phone=<new_phone>
Для изменения названия группы:
https://smsc.kz/sys/phones.php?chg_group=1&login=<login>&psw=<password>&grp=<group_id>&name=<name>
Для переноса контакта в новую группу:
https://smsc.kz/sys/phones.php?move_group=1&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для добавления новой группы к контакту:
https://smsc.kz/sys/phones.php?move_group=2&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для удаления контакта из группы:
https://smsc.kz/sys/phones.php?move_group=3&login=<login>&psw=<password>&grp=<group_id>&phone=<phone>
Для удаления контакта:
https://smsc.kz/sys/phones.php?del=1&login=<login>&psw=<password>&phone=<phone>
Для удаления группы:
https://smsc.kz/sys/phones.php?del_group=1&login=<login>&psw=<password>&grp=<group_id>
Для вывода списка контактов:
https://smsc.kz/sys/phones.php?get=1&login=<login>&psw=<password>
Для вывода списка групп:
https://smsc.kz/sys/phones.php?get_group=1&login=<login>&psw=<password>
Для добавления записи в "черный" список:
https://smsc.kz/sys/phones.php?add_black=1&login=<login>&psw=<password>&phone=<phone>
Для удаления записи из "черного" списка:
https://smsc.kz/sys/phones.php?del_black=1&login=<login>&psw=<password>&phone=<phone>
Для получения элементов "черного" списка:
https://smsc.kz/sys/phones.php?get_black=1&login=<login>&psw=<password>
Контакты и группы. Описание параметровОписание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
name | Название контакта или группы.
|
---|
grp | Идентификатор группы, которой принадлежит создаваемый контакт. Можно привязать контакт
сразу к нескольким группам, указав их идентификаторы через запятую.
|
---|
num | Номер группы для рассылок сообщений.
|
---|
phone | Список номеров телефонов через любой разделитель (команда add), либо номер телефона
(команды move_group, add_black). Используется для операций с номерами телефонов в скрипте phones.php.
|
---|
mail | Список e-mail адресов через любой разделитель (команда add), либо e-mail адрес
(команды move_group, add_black). Используется для операций с e-mail адресами в скрипте mails.php.
Формат запросов аналогичен формату для phones.php.
|
---|
new_phone | Новый список номеров телефонов через любой разделитель (команда chg).
|
---|
new_mail | Новый список e-mail адресов через любой разделитель (команда chg).
|
---|
lnm | Фамилия.
|
---|
fnm | Имя.
|
---|
mnm | Отчество.
|
---|
fio | ФИО контакта. Данный параметр используется в команде get для получения списка контактов по любому из
инициалов (фамилии, имени и (или) отчеству).
|
---|
search | Выборка контактов для команды get по названию контакта и (или) номеру телефона.
|
---|
after_id | Идентификатор контакта (int_id), начиная с которого необходимо вернуть список контактов (команда get, формат fmt=3), за исключением самого
after_id.
|
---|
bd | Дата рождения в формате дд.мм.гггг.
|
---|
myid | ID контакта, назначенный Клиентом.
|
---|
cmt | Комментарии.
|
---|
tags | Теги (метки).
|
---|
pho | Другие номера телефонов. По данным номерам рассылка SMS-сообщений не выполняется.
|
---|
type | Тип блокировки (команды add_black):
0 – все сообщения.
1 – массовые рассылки.
2 – одиночные сообщения.
Либо тип группы (команды add_group и get_group):
0 – группа для номеров телефонов.
1 – группа для e-mail адресов.
|
---|
prev_id | Глобальный идентификатор элемента "черного" списка (параметр id в ответе Сервера), назначаемый Сервером автоматически. Используется в команде get_black для запроса элементов "черного списка", добавленных ранее до данного элемента.
|
---|
cnt | Количество записей, возвращаемых в ответе Сервера. Максимальное значение равно 1000.
|
---|
fmt | Формат ответа сервера:
0 – (по умолчанию) в виде строки (ID = 12345).
1 – в виде строки (12345).
2 – в xml формате.
3 – в json формате.
|
---|
Контакты и группы. Ответ сервера и коды ошибок
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Записи не найдены.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка выполнения операции.
|
---|
9 | Попытка отправки более трех одинаковых запросов на операции с группами, контактами или записями "черного" списка в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
При создании контакта, группы контактов, записи "черного" списка:
- при fmt = 0: ID = <id>
- при fmt = 1: <id>
- при fmt = 2 (создание контакта, записи "черного" списка):
<phone>
<id>id</id>
</phone> |
- при fmt = 2 (создание группы):
<group>
<id>id</id>
</group> |
- при fmt = 3:
Где <id> – идентификатор контакта, группы или записи "черного" списка, назначенный Сервером автоматически.
При изменении или удалении контакта (группы), удалении записи "черного" списка:
- при fmt = 0,1: OK
- при fmt = 2: <result>OK</result>
- при fmt = 3:
При запросе списка контактов:
- при fmt = 0:
phone = <phone>, name = <name>, group = <group>, first_name = <first_name>, last_name = <last_name>, middle_name = <middle_name>,
birthday = <birthday>, id = <id>, comments = <comments>, tags = <tags>, phone_other = <phone_other>
... |
- при fmt = 1:
<phone>,<name>,<group>,<first_name>,<last_name>,<middle_name>,<birthday>,<id>,<comments>,<tags>,<phone_other>
... |
- при fmt = 2:
<list>
<contact>
<phone>phone</phone>
<name>name</name>
<group>group</group>
<first_name>first_name</first_name>
<last_name>last_name</last_name>
<middle_name>middle_name</middle_name>
<birthday>birthday</birthday>
<id>id</id>
<comments>comments</comments>
<tags>tags</tags>
<phone_other>phone_other</phone_other>
</contact>
...
</list> |
- при fmt = 3:
[{
"phone": "<phone>",
"name": "<name>",
"group": <group>,
"first_name": "<first_name>",
"last_name": "<last_name>",
"middle_name": "<middle_name>",
"birthday": "<birthday>",
"id": "<id>",
"comments": "<comments>",
"tags": "<tags>",
"phone_other": "<phone_other>"
},
...] |
Где:
<phone> – список номеров телефонов через любой разделитель. Для e-mail адресов заменяется на <mail>.
<name> – название контакта.
<group> – идентификатор группы, к которой принадлежит контакт.
<first_name> – имя.
<last_name> – фамилия.
<middle_name> – отчество.
<birthday> – дата рождения в формате дд.мм.гггг.
<id> – id контакта, назначенный Клиентом.
<comments> – комментарии.
<tags> – теги (метки).
<phone_other> – другие номера телефонов. По данным номерам рассылка сообщений не выполняется. Для e-mail
адресов заменяется на <mail_other>.
При запросе списка групп:
- при fmt = 0:
id = <id>, name = <name>, number = <number>, cnt = <cnt>
... |
- при fmt = 1:
<id>,<name>,<number>,<cnt>
... |
- при fmt = 2:
<list>
<group>
<id>id</id>
<name>name</name>
<number>number</number>
<cnt>number</cnt>
</group>
...
</list> |
- при fmt = 3:
[{
"id": <id>,
"name": "<name>",
"number": <number>,
"cnt": "<cnt>"
},
...] |
Где:
<id> – идентификатор группы, назначенный Сервером при создании.
<name> – название группы.
<number> – номер группы для рассылок.
<cnt> – количество контактов в группе.
При запросе элементов "черного" списка:
- при fmt = 0:
id = <id>, phone = <phone>, type = <type>, comment = <comment>
... |
- при fmt = 1:
<id>,<phone>,<type>,<comment>
... |
- при fmt = 2:
<list>
<record>
<id>id</id>
<phone>phone</phone>
<type>type</type>
<comment>comment</comment>
</record>
...
</list> |
- при fmt = 3:
[{
"id": <id>,
"phone": "<phone>",
"type": <type>,
"comment": "<comment>"
},
...] |
Где:
<id> – идентификатор элемента, назначенный Сервером при создании.
<phone> – номер телефона (или <email> при запросе "черного" списка e-mail).
<type> – тип блокировки: 0 – все сообщения, 1 – массовые рассылки, 2 – одиночные сообщения.
<comment> – комментарии.Примеры операций с контактамиПримеры:
Создание контакта с именем "Contact", принадлежащего группе с ID = 321:
https://smsc.kz/sys/phones.php?add=1&login=alex&psw=123&phone=79999999999&name=Contact&grp=321
Создание группы с именем "Group":
https://smsc.kz/sys/phones.php?add_group=1&login=alex&psw=123&name=Group
Изменение имени контакта с номером телефона "79999999999" на новое имя "Contact1":
https://smsc.kz/sys/phones.php?chg=1&login=alex&psw=123&phone=79999999999&name=Contact1
Изменение названия группы с ID = 321 на новое название "Group1":
https://smsc.kz/sys/phones.php?chg_group=1&login=alex&psw=123&grp=321&name=Group1
Удаление контакта с номером телефона "79999999999":
https://smsc.kz/sys/phones.php?del=1&login=alex&psw=123&phone=79999999999
Удаление группы с ID = 321:
https://smsc.kz/sys/phones.php?del_group=1&login=alex&psw=123&grp=321
Получение списка контактов, принадлежащих группе с ID = 321:
https://smsc.kz/sys/phones.php?get=1&login=alex&psw=123&grp=321
Получение данных контакта с номером телефона "79999999999":
https://smsc.kz/sys/phones.php?get=1&login=alex&psw=123&phone=79999999999
Получение списка всех групп:
https://smsc.kz/sys/phones.php?get_group=1&login=alex&psw=123
Добавление телефона "79999999999" в "черный" список с блокировкой только массовых рассылок:
https://smsc.kz/sys/phones.php?add_black=1&login=alex&psw=123&phone=79999999999&type=1
Удаление телефона "79999999999" из "черного" списка:
https://smsc.kz/sys/phones.php?del_black=1&login=alex&psw=123&phone=79999999999
Сервер не принимает более трех одинаковых запросов в течение минуты на операции с группами,
контактами или записями "черного" списка для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Перечень доступных операцийДля создания или изменения субклиента необходимо вызвать методом GET или POST соответствующий адрес с указанием требуемой команды и параметров.
Создание субклиента:
https://smsc.kz/sys/users.php?add=1&login=<login>&psw=<password>&user=<user>&password=<password2>
Изменение настроек субклиента:
https://smsc.kz/sys/users.php?chg=1&login=<login>&psw=<password>&user=<user>&fio=<fio>
Изменение баланса субклиента:
https://smsc.kz/sys/users.php?pay=1&login=<login>&psw=<password>&user=<user>&sum=<sum>
Получение статистики по субклиентам c независимым балансом:
https://smsc.kz/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&reseller=1
Получение статистики по одному субклиенту:
https://smsc.kz/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&user=<sub_login>
либо:
https://smsc.kz/sys/users.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&user_id=<id>
Получение подробной статистики по субклиентам с независимым балансом:
https://smsc.kz/sys/users.php?get_stat_all=1&login=<login>&psw=<password>&start=<date1>&end=<date2>&reseller=1 Субклиенты. Описание параметров
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
user | Логин субклиента.
|
---|
pswc | Текущий пароль субклиента.
|
---|
password | Новый пароль субклиента. Длина должна быть не менее 8 символов, и выполняться 3 из условий: буквы, цифры, разный регистр, символы.
|
---|
sum | Сумма, перечисляемая клиенту с главного аккаунта в валюте главного аккаунта.
|
---|
balance2 | Флаг, устанавливающий возможность использования электронного баланса для зачислений, списаний и получения статистики по сообщениям.
|
---|
site_id | ID сайта, которому будет принадлежать создаваемый субклиент.
|
---|
new_login | Новый логин субклиента при изменении.
|
---|
type | Тип учетной записи. 0 (по умолчанию) – независимые тариф и баланс.
1 – тариф главного аккаунта, независимый баланс. 2 – тариф и баланс главного аккаунта.
3 – баланс главного аккаунта, независимый тариф. 4 – дополнительный логин главного аккаунта.
|
---|
email | Основной адрес электронной почты.
|
---|
fl[9] | Флаг, устанавливающий возможность пересылки входящих SMS на e-mail.
|
---|
email2 | Альтернативный адрес электронной почты для пересылки входящих SMS.
|
---|
phone | Основной номер телефона.
|
---|
fl[8] | Флаг, устанавливающий возможность пересылки входящих SMS на телефон.
|
---|
phone2 | Альтернативный номер телефона для пересылки входящих SMS.
|
---|
start | Начальная дата в периоде, за который запрашивается статистика. Формат: 'дд.мм.гггг'.
|
---|
end | Конечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
|
---|
user_id | Идентификатор субклиента, назначаемый сервером автоматически при создании.
|
---|
reseller | Типы субклиентов. 0 или отсутствует – cубклиенты, использующие баланс главного аккаунта.
1 – субклиенты с независимым балансом.
|
---|
hide_deleted | Скрыть статистику по удаленным субклиентам. 0 или отсутствует – вывести статистику по всем субклиентам. 1 – скрыть статистику по удаленным субклиентам.
|
---|
mycur | Флаг, позволяющий выводить статистику в валюте главного аккаунта.
|
---|
fio | Инициалы (фамилия, имя, отчество) или название компании.
|
---|
props | Поле "Другие реквизиты" субклиента.
|
---|
cntr | Номер договора.
|
---|
tariff | Текущий тарифный план. Субклиенту можно установить тарифный план не выше тарифного плана Клиента. Параметр может принимать следующие значения: 0 (по умолчанию) – 1 тариф (от 1 р.).
1 – 2 тариф (от 1000 р.).
...
8 – 9 тариф (от 100000 р.).
|
---|
mintrf | Минимальный тариф. Определяет минимальное значение тарифа субклиента независимо от суммы платежа.
|
---|
curr | Валюта расчетов субклиента. Используется в командах add и chg. Может принимать следующие основные значения:
1 – российский рубль;
2 – доллар США;
3 – евро;
4 – украинская гривна;
5 – казахстанский тенге.
|
---|
tz | Часовой пояс. По умолчанию устанавливается часовой пояс Клиента. Возможные значения:
0 – GMT-12. ... 12 – GMT+00 ... 24 – GMT+12.
|
---|
sender | Имя отправителя (Sender ID) по умолчанию.
|
---|
sender2 | Резервное имя отправителя.
|
---|
fl[29] | Флаг, определяющий возможность использования списка отправителей Клиента (главного аккаунта).
|
---|
fl2[9] | Флаг, разрешающий использование более дорогих маршрутов для гарантированной доставки сообщений.
|
---|
fl2[24] | Флаг, позволяющий отправлять сначала через дешевые маршруты, при недоставке повторять через дорогие (кроме массовых рассылок).
|
---|
fl2[12] | Флаг запрещает отправку сообщений с автоматической заменой имени отправителя.
|
---|
fl2[13] | Флаг отключает добавление имени отправителя в текст сообщений без удорожания в случае автозамены.
|
---|
nb | Баланс для уведомлений. При достижении указанной суммы будут отправляться уведомления на e-mail субклиента.
|
---|
ktm | Данный параметр устанавливает количество дней для хранения отправленных сообщений, по истечении которых SMS-сообщения будут автоматически удаляться из истории.
|
---|
fmts | Список телефонных кодов, на которые разрешена отправка сообщений.
|
---|
notes | Комментарии главного аккаунта. Недоступны субклиенту.
|
---|
fl2[23] | Запрет массовых и рекламных рассылок.
|
---|
fl[26] | Разрешение использования списка контактов главного аккаунта.
|
---|
fl2[8] | Флаг, устанавливающий расширенный режим личного кабинета.
|
---|
fl[16] | Включить распознавание автоответчиков при звонках.
|
---|
fl2[31] | Разрешить использование шаблонов главного аккаунта.
|
---|
Дополнительные параметры для настройки доступа к сервису
|
---|
fl3[20] | Флаг, позволяющий отключить подтверждение доступа с новых IP-адресов при входе.
|
---|
ph | Список телефонов или номеров групп через запятую для выполнения рассылок по SMS-командам.
|
---|
fl[27] | Запретить изменения настроек субклиентом.
|
---|
fl[28] | Запретить оплаты субаккаунтом.
|
---|
fl[6] | Запретить рассылки.
|
---|
fl2[1] | Скрыть сообщения для субклиента.
|
---|
fl2[10] | Заблокировать субаккаунт.
|
---|
Дополнительные параметры для лимитов и ограничений
|
---|
dlim | Общий лимит SMS за день. Определяет максимальное количество отправляемых за сутки сообщений.
|
---|
plim | Лимит на один номер. Устанавливает максимальное количество отправляемых за сутки сообщений на один номер телефона.
|
---|
tlim | Лимит на номер и текст. Устанавливает максимальное количество отправляемых за сутки сообщений с одним текстом на один номер телефона.
|
---|
ilim | Лимит с одного IP-адреса. Задает максимальное количество отправляемых за сутки сообщений с одного IP-адреса.
|
---|
tmlim | Диапазон времени в часах h1-h2, в который разрешено отправлять сообщения. Если текущее время меньше h1, то SMS-сообщение будет отправлено абоненту при наступлении времени h1, если текущее время попадает в промежуток от h1 до h2, то сообщение будет отправлено немедленно, в другом случае отправка будет выполнена на следующий день при достижении времени h1. Данная функция, например, полезна для того, чтобы не допустить получение SMS-сообщений абонентами в ночное время.
|
---|
fl2[15] | Запретить отправку в другое время, кроме указанного в параметре tmlim, вместо переноса на следующий день.
|
---|
fl2[16] | При использовании параметра tmlim учитывать часовой пояс абонентов.
|
---|
vld | Максимальный срок доставки сообщений временно недоступным абонентам (мин.).
|
---|
Дополнительные параметры для автоответов
|
---|
answ | Автоответ на входящие SMS.
|
---|
answ_call | Автоответ на входящие звонки.
|
---|
fl2[4] | Отключить пересылку звонков (на e-mail, телефон и обработчик).
|
---|
Дополнительные параметры для настроек API
|
---|
url | http-адрес (URL) скрипта для обработки статусов доставки SMS-сообщений и (или) входящих SMS-сообщений на стороне субклиента. Указанный скрипт будет вызываться Сервером после каждого получения статуса доставки ранее отправленного субклиентом SMS-сообщения и (или) после получения входящего SMS-сообщения от абонента.
|
---|
fl[10] | Включение пересылки статусов сообщений на http-адрес, указанный в параметре url.
|
---|
fl[11] | Включение пересылки входящих SMS-сообщений на http-адрес, установленный в параметре url.
|
---|
fl[2] | Включить SMPP-доступ (предварительно необходимо зарегистрировать IP-адрес через ONLINE-поддержку).
|
---|
fl[1] | Передавать входящие SMS по SMPP-подключению.
|
---|
fl[23] | Отслеживать статусы отдельных SMS-частей.
|
---|
fl2[27] | Режим тестирования (виртуальная отправка без оплаты).
|
---|
fl[5] | Включить контроль за доставкой сообщений.
|
---|
fl[30] | Включение лога API. Позволяет просматривать 20 последних http-запросов. Хранится 10 минут после последнего запроса.
|
---|
Дополнительные параметры для E-mail2sms
|
---|
mfl[0] | Флаг, позволяющий отключить функцию e-mail2sms.
|
---|
mph | Разделенный запятой список номеров телефонов, на которые будут отправляться сообщения.
|
---|
mfl[5] | Включает возможность указания списка телефонов в теле письма.
|
---|
mfl[6] | Включает возможность указания списка телефонов в адресе письма.
|
---|
mfl[1] | Пересылка письма без темы.
|
---|
mfl[2] | Пересылка письма без текста.
|
---|
mfl[3] | Пересылка письма без обратного адреса (от кого).
|
---|
mfl[4] | Перевод текста письма в транслит.
|
---|
mh1 | Начальное значение диапазона времени для отправки входящих писем. Вместе с параметром mh2 определяет диапазон, в течение которого возможна пересылка входящих писем в виде SMS-сообщений.
|
---|
mh2 | Конечное значение диапазона времени для отправки входящих писем.
|
---|
mlen | Максимальная длина сообщения, до которой обрезается входящее письмо при отправке в виде SMS-сообщения (число больше 12 задает максимальную длину сообщения, меньше 12 - количество SMS).
|
---|
Ответ сервера и коды ошибок
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Записи не найдены.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка выполнения операции.
|
---|
6 | Субклиент с указанным логином не существует.
|
---|
7 | Указан сублогин, имеющий общий баланс с главным аккаунтом, либо в запросе на операцию с электронным балансом не указан параметр balance2=1.
|
---|
8 | Ошибка при сохранении записи.
|
---|
9 | Попытка отправки более трех запросов на добавление субклиентов
или изменение одного и того же субклиента в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
10 | Недостаточно средств для зачисления.
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
При создании субклиента:
- при fmt = 0: ID = <id>
- при fmt = 1: <id>
- при fmt = 2:
<user
<id>id</id>
</user> |
- при fmt = 3:
Где <id> – идентификатор субклиента, назначенный Сервером автоматически.
При изменении сублогина:
- при fmt = 0,1: OK
- при fmt = 2:
<result>OK</result>
- при fmt = 3:
При запросе статистики:
- при fmt = 0 и get_stat = 1:
login = <login>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
... |
- при fmt = 0 и get_stat_all = 1:
login = <login>, description = <description>, operator = <operator>, mccmnc = <mccmnc>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
... |
- при fmt = 1 и get_stat = 1:
<login>,<cnt>,<credit>,<debit>,<currency>
... |
- при fmt = 1 и get_stat_all = 1:
<login>,<description>,<operator>,<mccmnc>,<cnt>,<credit>,<debit>,<currency>
... |
- при fmt = 2 и get_stat = 1:
<list>
<stat>
<login>login</login>
<sms>cnt</sms>
<credit>credit</credit>
<debit>debit</debit>
<currency>currency</currency>
</stat>
...
</list> |
- при fmt = 2 и get_stat_all = 1:
<list>
<user login="login">
<item>
<description>description</description>
<operator>operator</operator>
<mccmnc>mccmnc</mccmnc>
<sms>cnt</sms>
<credit>credit</credit>
<debit>debit</debit>
<currency>currency</currency>
</item>
...
</user>
...
</list> |
- при fmt = 3 и get_stat = 1:
[{
"login": "<login>",
"sms": "<cnt>",
"credit": "<credit>",
"debit": "<debit>",
"currency": "<currency>"
},
...] |
- при fmt = 3 и get_stat_all = 1:
[{
"login": "<login>",
"items": [{
"description": "<description>",
"operator": "<operator>",
"mccmnc": "<mccmnc>",
"sms": "<cnt>",
"credit": "<credit>",
"debit": "<debit>",
"currency": "<currency>"
},
...]
},
...] |
Где:
<login> - логин субклиента.
<description> - название операции.
<operator> - название оператора.
<mccmnc> - числовой код страны абонента плюс числовой код оператора абонента
<cnt> - количество сообщений.
<credit> - расход.
<debit> - приход.
<currency> - трехсимвольный код валюты субклиента.Примеры действий с субклиентамиПримеры:
Создание субклиента с логином "mylogin", паролем "mypassword", номером телефона 79999999999 и разрешением на использование
имен отправителей (Sender ID) главного аккаунта:
https://smsc.kz/sys/users.php?add=1&login=alex&psw=123&user=mylogin&password=mypassword&phone=79999999999&fl[29]=1
Изменение логина субклиента с "mylogin" на "mylogin2", типа клиента на "Тариф и баланс главного аккаунта" и установки
разрешенных кодов для отправки SMS только по России:
https://smsc.kz/sys/users.php?chg=1&login=alex&psw=123&user=mylogin&password=mypassword&new_login=mylogin2&type=2&fmts=7,-77
Получение статистики по субклиентам, имеющим общий баланс с главным аккаунтом и SMS, отправленные с электронного баланса:
https://smsc.kz/sys/users.php?get_stat=1&login=alex&psw=123&balance2=1
Получение статистики по субклиенту с логином "sub_alex":
https://smsc.kz/sys/users.php?get_stat=1&login=alex&psw=123&user=sub_alex
Получение статистики по независимым субклиентам в валюте главного аккаунта с "01.01.2014" по "01.02.2014":
https://smsc.kz/sys/users.php?get_stat=1&login=alex&psw=123&mycur=1&start=01.01.2014&end=01.02.2014
Сервер не принимает более трех запросов в течение минуты на добавление субклиентов или изменение одного и того же субклиента
для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Создание и выгрузка счетов и актовДля создания нового счета для субклиента необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/documents.php?add_account=1&login=<login>&psw=<password>&user=<user>&sum=<sum>
либо:
https://smsc.kz/sys/documents.php?add_account=1&login=<login>&psw=<password>&user_id=<user_id>&sum=<sum>
Для выгрузки существующего счета субклиента необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/documents.php?get_account=1&login=<login>&psw=<password>&user=<user>&id=<id>
либо:
https://smsc.kz/sys/documents.php?get_account=1&login=<login>&psw=<password>&user_id=<user_id>&id=<id>
Для выгрузки существующего акта субклиента необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/documents.php?get_act=1&login=<login>&psw=<password>&user=<user>&id=<id>
https://smsc.kz/sys/documents.php?get_act=1&login=<login>&psw=<password>&user_id=<user_id>&id=<id>
либо:
https://smsc.kz/sys/documents.php?get_act=1&login=<login>&psw=<password>&user=<user>&num=<num>
https://smsc.kz/sys/documents.php?get_act=1&login=<login>&psw=<password>&user_id=<user_id>&num=<num>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
user | Логин субклиента, для которого необходимо создать или выгрузить счет. Вместо данного параметра можно использовать параметр user_id.
|
---|
user_id | Идентификатор субклиента, для которого необходимо создать или выгрузить счет. Вместо данного параметра можно использовать параметр user.
|
---|
sum | Сумма, на которую необходимо создать счет в валюте Клиента.
|
---|
service | Название услуги, указываемой при создании счета.
|
---|
id | Идентификатор запрашиваемого счета или акта.
|
---|
num | Номер запрашиваемого акта.
|
---|
В случае ошибки Сервер возвращает следующую строку:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка создания счета.
|
---|
6 | Сублогин не найден.
|
---|
7 | Указанный документ не найден.
|
---|
9 | Попытка отправки более одного запроса на создание или получение счета или акта в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса на создание счета Сервер возвращает multipart-структуру, включающую в себя 2 части с соответствующими заголовками. Первая часть содержит ответ Сервера в json-формате, содержащий идентификатор и сумму созданного счета, вторая часть включает в себя файл со счетом в pdf-формате.
В случае успешного запроса на получение счета Сервер возвращает файл со счетом в pdf-формате.
В случае успешного запроса на получение акта Сервер возвращает файл с актом в pdf-формате.
Сервер не принимает более одного запроса на создание или изменение счета или акта в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Перечень доступных операций с именами отправителейДля управления именами отправителей необходимо вызвать методом GET или POST соответствующий адрес с указанием
требуемой команды и параметров.
Для получения списка зарегистрированных в личном кабинете и допущенных модератором имен отправителей:
https://smsc.kz/sys/senders.php?get=1&login=<login>&psw=<password>
Для добавления нового имени отправителя:
https://smsc.kz/sys/senders.php?add=1&login=<login>&psw=<password>&sender=<sender>&cmt=<cmt>
Для изменения имени отправителя:
https://smsc.kz/sys/senders.php?chg=1&login=<login>&psw=<password>&sender=<sender>&cmt=<cmt>
или
https://smsc.kz/sys/senders.php?chg=1&login=<login>&psw=<password>&id=<id>&cmt=<cmt>
Отправка кода подтверждения для цифрового имени отправителя:
https://smsc.kz/sys/senders.php?send_code=1&login=<login>&psw=<password>&sender=<sender>
Подтверждение цифрового имени отправителя:
https://smsc.kz/sys/senders.php?check_code=1&login=<login>&psw=<password>&sender=<sender>&code=<code>
Для удаления имени отправителя:
https://smsc.kz/sys/senders.php?del=1&login=<login>&psw=<password>&sender=<sender>
либо
https://smsc.kz/sys/senders.php?del=1&login=<login>&psw=<password>&id=<id>
При добавлении или изменении имени отправителя в теле запроса можно передавать файл документа для операторов (свидетельство на товарный знак, сертификат на домен) в формате jpg, tif, pdf, png, zip, rar. Максимальный размер передаваемого файла не должен превышать 3 Мб. Комментарий к документу может быть указан в дополнительном параметре doc_info.
Описание параметров
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
all | 0 (по умолчанию) – получить список активированных имен отправителей.
1 – получить полный список имен отправителей.
|
---|
sender | Создаваемое или удаляемое имя отправителя.
|
---|
mts_step | 1 – зарегистрировать платное имя у оператора MTS.
|
---|
sber_step | 1 – зарегистрировать бесплатное имя у оператора СберМобайл.
|
---|
tele2 | 1 – зарегистрировать имя у оператора Tele2 по тарифу с бесплатными именами.
|
---|
motiv | 1 – зарегистрировать имя у оператора МОТИВ по тарифу с бесплатными именами.
|
---|
mega_step | 1 – зарегистрировать платное имя у оператора Мегафон.
|
---|
bee_step | 1 – зарегистрировать платное имя у оператора Билайн.
|
---|
motiv_step | 1 – зарегистрировать платное имя у оператора MOTIV.
|
---|
winmob_step | 1 – зарегистрировать платное имя у оператора Win-Mobile.
|
---|
volnamob_step | 1 – зарегистрировать платное имя у оператора Волна мобайл.
|
---|
tele2_step | 1 – зарегистрировать платное имя у оператора Tele2.
|
---|
ua_reg | 1 – зарегистрировать имя для Украины на пониженный тариф по национальному трафику.
Для данного тарифа необходимо дополнительно передать следующие параметры:
fio – Юридическое название организации (ООО/СПД).
inn – ЕДРПОУ/ИНН.
site – Адрес сайта или ссылка на соц. сеть.
email – E-mail для связи.
address – Фактический адрес.
desc – Описание услуг, предоставляемых отправителем.
subj – Тема (цель информирования).
|
---|
ua_int | 1 – зарегистрировать имя для Украины по более высокому тарифу для международного трафика.
Для регистрации также необходимо дополнительно передать поля, описанные выше для параметра ua_reg.
|
---|
by_reg | 1 – зарегистрировать имя для Беларуси на пониженный тариф по национальному трафику.
Для данного тарифа необходимо дополнительно передать следующие параметры:
by_fio – Название компании.
by_inn – УНП/ИНН.
by_address – Адрес компании.
by_ocup – Сфера деятельности (варианты можно уточнить на данной странице).
Нумерация от 1 до 19.
by_type – Тип рассылки (варианты можно уточнить на данной странице).
Нумерация от 1 до 3.
by_mes – Пример сообщения.
by_site – Адрес сайта.
|
---|
by_int | 1 – зарегистрировать имя для Беларуси по более высокому тарифу для международного трафика.
Для регистрации также необходимо дополнительно передать поля, описанные выше для параметра by_reg.
|
---|
id | Идентификатор имени отправителя, назначаемый Сервером
автоматически при создании нового имени.
|
---|
cmt | Комментарий, указываемый при создании имени отправителя.
|
---|
mail | 1 – добавить e-mail адрес отправителя.
|
---|
name | Комментарий, связанный с параметром mail (обычно имя владельца e-mail адреса).
|
---|
code | Код для подтверждения цифрового имени отправителя.
|
---|
site | Адрес сайта, от которого будут приходить коды для подтверждения цифровых
имен отправителей. Данный параметр должен быть ранее добавлен и активирован в качестве
Sender ID. Если не указан, то сообщения будут приходить от имени отправителя
по умолчанию.
|
---|
site_name | Адрес сайта, указываемый в тексте сообщения с кодом подтверждения.
|
---|
user | Логин субклиента, к которому применяется указанная команда.
|
---|
operators | 1 – добавить в ответ код статуса имени отправителя у оператора.
|
---|
from_date | Выбрать имена отправителей начиная с указанной даты, для которых был изменен статус имени у любого из операторов.
При указании данного параметра происходит сортировка имен в порядке убывания даты изменения статусов имен. Формат DD.MM.YYYY.
|
---|
prev_id | Уникальный идентификатор имени отправителя, назначаемый Сервером автоматически при создании имени. Используется для запроса списка имен, созданных до имени с указанным идентификатором.
|
---|
cnt | Количество имен отправителей возвращаемых при запросе списка имен. Максимальное значение равно 15000.
|
---|
doc_info | Если при создании или изменении имени отправителя в теле запроса будет передан файл документа для операторов, то в данном параметре можно указать описание к переданному файлу.
|
---|
charset | Кодировка передаваемых параметров.
|
---|
files | 1 – вернуть в ответе сервера для команды get массив files, содержащий информацию о прикрепленных файлах документов для операторов. Параметр актуален только для форматов fmt=2 или fmt=3.
Массив включает следующие поля:
file – Название файла.
fid – Идентификатор файла в системе.
fstatus – Статус файла (0 - на проверке, 1 - отклонено, 2 - допущено).
fcomment – Комментарий администратора.
|
---|
Ответ сервера и коды ошибок
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Имя отправителя не найдено.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Ошибка сохранения или удаления имени отправителя.
|
---|
7 | Неверный формат номера.
|
---|
8 | Код подтверждения на указанный номер не может быть доставлен.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение списка доступных имен отправителей
или пяти запросов на создание нового имени отправителя в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
10 | Код уже был отправлен на указанный номер. Повторная попытка возможна через 8 часов.
|
---|
11 | Неверный код подтверждения.
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
При запросе списка имен отправителей:
- при fmt = 0 и all = 0:
name = <sender>, id = <id>
... |
- при fmt = 1 и all = 0:
- при fmt = 2 и all = 0:
<list>
<sender id="<id>">sender</sender>
...
</list>
|
- при fmt = 3 и all = 0:
[{
"sender": "<sender>",
"id": <id>
},
...] |
- при fmt = 0 и all = 1:
name = <sender>, status = <status>, id = <id>
... |
- при fmt = 1 и all = 1:
<sender>,<status>,<id>
... |
- при fmt = 2 и all = 1:
<list>
<sender status="<status>" id="<id>">sender</sender>
...
</list>
|
- при fmt = 3 и all = 1:
[{
"sender": "<sender>",
"status": <status>,
"id": <id>
},
...] |
- при fmt = 0 и operators = 1:
name = <sender>, mega_step = <mega_step_status>, bee_step = <bee_step_status>, motiv_step = <motiv_step_status>, sber_step = <sber_step_status>, winmob_step = <winmob_step>, volnamob_step = <volnamob_step>, mts_step = <mts_step_status>, tele2_step = <tele2_step_status>, tele2 = <tele2_status>, ua_reg = <ua_reg_status>, ua_int = <ua_int_status>, mega_int = <mega_int_status>, motiv_int = <motiv_int_status>, mts_int = <mts_int_status>, motiv = <motiv_status>, by_reg = <by_reg_status>, by_int = <by_int_status>, tele2_int = <tele2_int_status>, sber_int = <sber_int_status>, id = <id>
... |
- при fmt = 2 и operators = 1:
<list>
<sender mega_step="<mega_step_status>" bee_step="<bee_step_status>" motiv_step="<motiv_step_status>" sber_step="<sber_step_status>" winmob_step="<winmob_step_status>" volnamob_step="<volnamob_step_status>" mts_step="<mts_step_status>" tele2_step="<tele2_step_status>" tele2="<tele2_status>" ua_reg="<ua_reg_status>" ua_int="<ua_int_status>" mega_int="<mega_int_status>" motiv_int="<motiv_int_status>" mts_int="<mts_int_status>" motiv="<motiv_status>" by_reg="<by_reg_status>" by_int="<by_int_status>" tele2_int="<tele2_int_status>" sber_int="<sber_int_status>" id="<id>">sender</sender>
...
</list>
|
- при fmt = 3 и operators = 1:
[{
"sender": "<sender>",
"mega_step": "<mega_step_status>",
"mega_int": "<mega_int_status>",
"bee_step": "<bee_step_status>",
"motiv": "<motiv_status>",
"motiv_step": "<motiv_step_status>",
"motiv_int": "<motiv_int_status>",
"sber_step": "<sber_step_status>",
"sber_int": "<sber_int_status>",
"winmob_step": "<winmob_step_status>",
"volnamob_step": "<volnamob_step_status>",
"mts_step": "<mts_step_status>",
"mts_int": "<mts_int_status>",
"tele2_step": "<tele2_step_status>",
"tele2": "<tele2_status>",
"tele2_int": "<tele2_int_status>",
"ua_reg": "<ua_reg_status>",
"ua_int": "<ua_int_status>",
"by_reg": "<by_reg_status>",
"by_int": "<by_int_status>",
"id": "<id>"
},
...] |
Где:
<sender> – зарегистрированное и допущенное к использованию имя отправителя.
<mega_step_status>, <mega_int_status>, <bee_step_status>, <motiv_status>, <motiv_step_status>, <motiv_int_status>, <sber_step_status>, <sber_int_status>, <winmob_step_status>, <volnamob_step_status>, <mts_step_status>, <mts_int_status>, <tele2_step_status>, <tele2_status>, <tele2_int_status>, <ua_reg_status>, <ua_int_status>, <by_reg_status>, <by_int_status> – код статуса имени отправителя у соответствующего оператора
(0 - ожидает регистрации, 1 - отправлено на регистрацию, 2 - допущено оператором, 3 - не принято оператором, 4 - временно отключено,
5 - недостаточно средств на счете, 8 - необходимы подтверждающие документы, 9 - активация с начала месяца), 255 - допущено, но помечено на снятие с регистрации).
<status> – статус имени отправителя (0 - ожидает модерации, 1 - допущено к использованию, 2 - выключено).
<id> – уникальный идентификатор имени отправителя (назначается Сервером автоматически при создании имени).
Если для какого-либо оператора имя отправителя имеет заменяющий аналог, то при operators = 1 и fmt = 0,2,3 в ответ сервера дополнительно будет включена данная замена.
При добавлении нового имени отправителя:
- при fmt = 0: ID = <id>
- при fmt = 1: <id>
- при fmt = 2:
<sender>
<id>id</id>
</sender>
|
- при fmt = 3:
Где:
<id> – идентификатор имени отправителя, назначенный Сервером автоматически.
При изменении имени отправителя, отправке кода, подтверждении и удалении имени отправителя:
- при fmt = 0, 1: OK
- при fmt = 2:
<result>OK</result>
- при fmt = 3:
Примеры действий с именами отправителейПримеры:
Получение списка имен отправителей:
https://smsc.kz/sys/senders.php?get=1&login=alex&psw=123
Добавление нового имени отправителя:
https://smsc.kz/sys/senders.php?add=1&login=alex&psw=123&sender=my_shop&cmt=test
Отправка кода подтверждения для цифрового имени отправителя:
https://smsc.kz/sys/senders.php?send_code=1&login=alex&psw=123&sender=79999999999
Отправка кода подтверждения цифрового имени отправителя для субклиента "subalex" от имени "mysite.ru":
https://smsc.kz/sys/senders.php?send_code=1&login=alex&psw=123&sender=79999999999&user=subalex&site=mysite.ru
Подтверждение цифрового имени отправителя:
https://smsc.kz/sys/senders.php?check_code=1&login=alex&psw=123&sender=79999999999&code=338824
Удаление имени отправителя:
https://smsc.kz/sys/senders.php?del=1&login=alex&psw=123&sender=my_shop
Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка доступных имен
отправителей и пяти запросов на создание нового имени отправителя для снижения нагрузки и защиты от ошибок и зацикливаний
в программе на стороне Клиента.
Получение истории отправленных сообщенийДля получения списка отправленных SMS-сообщений необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/get.php?get_messages=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
start | Начальная дата в периоде, за который запрашивается история. Формат: 'дд.мм.гггг'. Максимальный период, за который возможен запрос истории
отправленных сообщений, составляет полгода.
|
---|
end | Конечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
|
---|
phone | Номер или разделенный запятыми список номеров телефонов, для которых необходимо получить
историю отправленных SMS-сообщений.
|
---|
email | E-mail адрес или разделенный запятыми список адресов, для которых необходимо получить
историю отправленных e-mail сообщений.
|
---|
format | Признак запроса e-mail сообщений.
0 (по умолчанию) – запрос SMS-сообщений. 8 – запрос e-mail сообщений.
|
---|
cnt | Количество возвращаемых в ответе сообщений. Максимальное значение равно 1000.
|
---|
prev_id | Глобальный идентификатор сообщения (параметр int_id в ответе Сервера), назначаемый Сервером автоматически. Используется для запроса списка сообщений, отправленных до сообщения с указанным идентификатором.
|
---|
fmt | Формат ответа Сервера.
0 – (по умолчанию) в виде строки (подробнее можно ознакомиться в описании ниже).
1 – вернуть ответ в виде параметров через запятую.
2 – ответ в xml формате.
3 – ответ в json формате.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Сообщение не найдено.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение истории исходящих сообщений в течение минуты либо более тридцати запросов в течение часа.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
- при fmt = 0:
Status = <status>, check_time = <last_date>, err = <err>, send_date = <send_date>, phone = <phone>,
mccmnc = <mccmnc>, country = <country>, operator = <operator>, region = <region>, cost = <cost>, sender_id = <sender>,
status_name = <status_name>, message = <message>, type = <type>, ID = <id>, int_id = <int_id>, sms_cnt = <sms_cnt>,
format = <format>, crc = <crc>
... |
- при fmt = 1:
<status>,<last_timestamp>,<err>,<send_timestamp>,<phone>,<mccmnc>,<country>,<operator>,<region>,<cost>,<sender>,<status_name>,
<message>,<type>,<id>,<int_id>,<sms_cnt>,<format>,<crc>
... |
- при fmt = 2:
<list>
<sms>
<status>status</status>
<last_date>last_date</last_date>
<last_timestamp>last_timestamp</last_timestamp>
<err>err</err>
<send_date>send_date</send_date>
<send_timestamp>send_timestamp</send_timestamp>
<phone>phone</phone>
<cost>cost</cost>
<sender_id>sender</sender_id>
<status_name>status_name</status_name>
<message>message</message>
<mccmnc>mccmnc</mccmnc>
<country>country</country>
<operator>operator</operator>
<region>region</region>
<type>type</type>
<id>id</id>
<int_id>int_id</int_id>
<sms_cnt>sms_cnt</sms_cnt>
<format>format</format>
<crc>crc</crc>
</sms>
...
</list>
|
- при fmt = 3:
[{
"status": <status>,
"last_date": "<last_date>",
"last_timestamp": <last_timestamp>,
"err": <err>,
"send_date": "<send_date>",
"send_timestamp": <send_timestamp>,
"phone": "<phone>",
"cost": "<cost>",
"sender_id": "<sender>",
"status_name": "<status_name>",
"message": "<message>",
"mccmnc": "<mccmnc>",
"country": "<country>",
"operator": "<operator>",
"region": "<region>",
"type": <type>,
"id": <id>,
"int_id": "<int_id>",
"sms_cnt": <sms_cnt>,
"format": <format>,
"crc": <crc>
...] |
Где:
<status> – код статуса (список)
<last_date> – дата последнего изменения статуса. Формат DD.MM.YYYY hh:mm:ss.
<last_timestamp> – штамп времени последнего изменения статуса.
<err> – код ошибки, если сообщение не было доставлено.
<send_date> – дата отправки сообщения (формат DD.MM.YYYY hh:mm:ss).
<send_timestamp> – штамп времени отправки сообщения.
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – название оператора абонента.
<region> – регион регистрации номера абонента.
<type> – тип сообщения.
<cost> – стоимость сообщения.
<sender> – имя отправителя.
<status_name> – название статуса.
<message> – текст сообщения.
<mccmnc> – мобильный код страны и мобильный код оператора.
<id> – идентификатор сообщения.
<int_id> – глобальный идентификатор сообщения.
<sms_cnt> – количество частей в сообщении.
<format> – формат сообщения.
<crc> – контрольная сумма сообщения.
Примеры:
Получение последних десяти исходящих SMS-сообщений:
https://smsc.kz/sys/get.php?get_messages=1&login=alex&psw=123&cnt=10
Получение последнего исходящего SMS-сообщения, отправленного на номер "79999999999":
https://smsc.kz/sys/get.php?get_messages=1&login=alex&psw=123&phone=79999999999
Сервер не принимает более трех одинаковых запросов в течение минуты либо тридцати запросов в течение часа на получение истории исходящих
сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Получение входящих сообщений
Для получения списка входящих сообщений необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/get.php?get_answers=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
cnt | Количество возвращаемых в ответе сообщений. Максимальное значение равно 10000.
|
---|
hour | Период в часах, за который необходимо запросить входящие сообщения. Максимальное количество часов - 168 (7 дней).
|
---|
after_id | Идентификатор сообщения, начиная с которого необходимо вернуть входящие сообщения, за исключением самого
after_id.
|
---|
to_phone | Номер телефона Клиента, на который получены входящие сообщения.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
- при fmt = 0:
id = <id>, received = <received>, phone = <phone>, message = <message>, to_phone = <to_phone>, sent = <sent>
... |
- при fmt = 1:
<id>,<received>,<phone>,<to_phone>,<sent>,<message>
... |
- при fmt = 2:
<sms_answers>
<sms>
<id>id</id>
<received>received</received>
<phone>phone</phone>
<message>message</message>
<to_phone>to_phone</to_phone>
<sent>sent</sent>
</sms>
...
</sms_answers>
|
- при fmt = 3:
[{
"id": <id>,
"received": "<received>",
"phone": "<phone>",
"message": "<message>",
"to_phone": "<to_phone>",
"sent": "<sent>"
},
...] |
Где:
<id> – идентификатор входящего сообщения, назначаемый Сервером автоматически.
<received> – дата получения сообщения Сервером. Формат DD.MM.YYYY hh:mm:ss.
<phone> – номер телефона абонента.
<message> – входящее сообщение.
<to_phone> – номер телефона получателя.
<sent> – дата отправки сообщения. Формат DD.MM.YYYY hh:mm:ss.
Примеры:
Получение списка из 10 первых входящих сообщений за текущие сутки:
https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&cnt=10
Получение списка из 15 первых входящих сообщений за последние 48 часов:
https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&hour=48&cnt=15
Получение списка из 20 первых входящих сообщений с идентификаторами, большими id="1234567":
https://smsc.kz/sys/get.php?get_answers=1&login=alex&psw=123&after_id=1234567&cnt=20
Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка входящих
сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Получение статистикиДля получения статистики отправленных сообщений необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/get.php?get_stat=1&login=<login>&psw=<password>&start=<date1>&end=<date2>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
start | Начальная дата в периоде, за который запрашивается статистика. Формат: 'дд.мм.гггг'.
|
---|
end | Конечная дата в периоде. Если не указана, то возвращаются данные с начальной даты. Формат: 'дд.мм.гггг'.
|
---|
mycur | Флаг, позволяющий выводить статистику в текущей валюте Клиента.
|
---|
balance2 | Флаг, позволяющий получить статистику по отправленным сообщениям, оплаченным с электронного баланса.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
- при fmt = 0:
login = <login>, sms = <cnt>, credit = <credit>, debit = <debit>, currency = <currency>
... |
- при fmt = 1:
<login>,<cnt>,<credit>,<debit>,<currency>
... |
- при fmt = 2:
<list>
<stat>
<login>login</login>
<sms>cnt</sms>
<credit>credit</credit>
<debit>debit</debit>
<currency>currency</currency>
</stat>
...
</list> |
- при fmt = 3:
[{
"login": "<login>",
"sms": "<cnt>",
"credit": "<credit>",
"debit": "<debit>",
"currency": "<currency>"
},
...] |
Где:
<login> - логин Клиента.
<cnt> - количество сообщений.
<credit> - расход.
<debit> - приход.
<currency> - трехсимвольный код валюты.
Примеры:
Получение статистики в текущей валюте Клиента с "01.01.2014" по "01.02.2014" по безналичному балансу:
https://smsc.kz/sys/get.php?get_stat=1&login=alex&psw=123&mycur=1&start=01.01.2014&end=01.02.2014
Сервер не принимает более трех запросов в течение минуты на получение статистики для снижения
нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Запрос тарифовДля получения списка тарифов указанного Клиента необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/get.php?get_price=1&login=<login>&psw=<password>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение списка тарифов в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде набора строк:
- при fmt = 0:
zone = <zone>, name = <name>, api = <api>, mass = <mass>, mms = <mms>, hlr = <hlr>, call = <call>
...
|
при наличии установленных индивидуальных тарифов по определенным операторам к ответу добавляется набор строк:
mccmnc = <mccmnc>, cost = <cost>
...
mail = <mail>
|
- при fmt = 1:
<zone>,<name>,<api>,<mass>,<mms>,<hlr>,<call>
...
<mccmnc>,<cost>
...
<mail>
|
- при fmt = 2:
<price>
<zones>
<zone name="<name>" api="<api>" mass="<mass>" mms="<mms>" hlr="<hlr>" call="<call>">zone</zone>
...
</zones>
<codes>
<mccmnc cost="<cost>">mccmnc</mccmnc>
...
</codes>
<mail>mail</mail>
</price> |
- при fmt = 3:
{
"zones": [{
"zone": "<zone>",
"name": "<name>",
"api": "<api>",
"mass": "<mass>",
"mms": "<mms>",
"hlr": "<hlr>",
"call": "<call>"
},
...
{
...
}],
"codes": [{
"mccmnc": "<mccmnc>",
"cost": "<cost>"
},
...
{
...
}],
"mail": "<mail>"
}
|
Где:
<zone> - тарифная зона.
<name> - название тарифной зоны (оператор, страна и т.п.).
<api> - стоимость SMS при отправке через API.
<mass> - стоимость SMS при отправке через личный кабинет.
<mms> - стоимость MMS-сообщения.
<hlr> - стоимость HLR-запроса.
<call> - стоимость голосового сообщения (звонок).
<mccmnc> - код страны и мобильного оператора, для которого установлен индивидуальный тариф.
<cost> - стоимость сообщения по данному индивидуальному тарифу.
<mail> - стоимость e-mail сообщения.
Примеры:
Получение списка тарифов:
https://smsc.kz/sys/get.php?get_price=1&login=alex&psw=123
Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка тарифов для
снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Получение информации об оператореДля получения информации об операторе абонента необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/info.php?get_operator=1&login=<login>&psw=<password>&phone=<phone>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
phone | Номер телефона абонента или список номеров через запятую.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Оператор не найден.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов или любых 100 запросов на получение
информации об операторе абонента в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
При успешном запросе Сервер возвращает ответ в виде строки или списка строк при множественном запросе (в этом случае в ответ
Сервера добавляется параметр "phone"):
- при fmt = 0: country = <country>, operator = <operator>, region = <region>, mcc = <mcc>, mnc = <mnc>, tz = <tz>
- при fmt = 1: <country>,<operator>,<region>,<mcc>,<mnc>,<tz>
- при fmt = 2:
<info>
<country>country</country>
<operator>operator</operator>
<region>region</region>
<mcc>mcc</mcc>
<mnc>mnc</mnc>
<tz>tz</tz>
</info>
|
При множественном запросе конструкции <info> заключаются в тег <list>.
- при fmt = 3:
{
"country": "<country>",
"operator": "<operator>",
"region": "<region>",
"mcc": "<mcc>",
"mnc": "<mnc>",
"tz": "<tz>"
} |
Где:
<phone> – номер телефона абонента.
<country> – название страны регистрации номера абонента.
<operator> – мобильный оператор абонента.
<region> – регион регистрации номера абонента.
<mcc> – числовой код страны абонента.
<mnc> – числовой код оператора абонента.
<tz> – часовой пояс региона регистрации номера абонента.
Пример:
Получение информации об операторе абонента с номером "79999999999":
https://smsc.kz/sys/info.php?get_operator=1&login=alex&psw=123&phone=79999999999
Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации
об операторе абонента для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Сервер также блокирует отправку более 100 запросов в течение минуты на получение данных об операторе для снижения
нагрузки на базу данных.
Получение данных о короткой ссылкеДля получения информации о короткой ссылке необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/tinyurls.php?get=1&login=<login>&psw=<password>&link=<link>
или
https://smsc.kz/sys/tinyurls.php?get=1&login=<login>&psw=<password>&id=<id>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
link | Исходная полная ссылка.
|
---|
id | Идентификатор короткой ссылки. Назначается автоматически при создании.
|
---|
Все параметры, которые содержат специальные символы (плюс, пробел, символы кириллицы и т.д.), должны быть закодированы при помощи функции urlencode для передачи в HTTP-запросе.
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Ссылка не найдена.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более трех одинаковых запросов на получение
информации о короткой ссылке в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки:
- при fmt = 0: id = <id>, cnt = <cnt>, cnt_mon = <cnt_mon>, cnt_day = <cnt_day>, cnt_yes = <cnt_yes>, cnt_pmon = <cnt_pmon>, link = <link>
- при fmt = 1: <id>,<cnt>,<cnt_mon>,<cnt_day>,<cnt_yes>,<cnt_pmon>,<link>
- при fmt = 2:
<result>
<id>id</id>
<cnt>cnt</cnt>
<cnt_mon>cnt_mon</cnt_mon>
<cnt_day>cnt_day</cnt_day>
<cnt_yes>cnt_yes</cnt_yes>
<cnt_pmon>cnt_pmon</cnt_pmon>
<link>link</link>
</result>
|
- при fmt = 3:
{
"id": "<id>",
"cnt": "<cnt>",
"cnt_mon": "<cnt_mon>",
"cnt_day": "<cnt_day>",
"cnt_yes": "<cnt_yes>",
"cnt_pmon": "<cnt_pmon>",
"link": "<link>"
} |
Где:
<id> – идентификатор короткой ссылки.
<cnt> – количество всех переходов по короткой ссылке.
<cnt_mon> – количество переходов по короткой ссылке за месяц.
<cnt_day> – количество переходов по короткой ссылке за сегодня.
<cnt_yes> – количество переходов по короткой ссылке за вчера.
<cnt_pmon> – количество переходов по короткой ссылке в предыдущем месяце.
<link> – короткая ссылка.
Пример:
Получение информации о короткой ссылке с id="145142":
https://smsc.kz/sys/tinyurls.php?get=1&login=alex&psw=123&id=145142
Получение информации о короткой ссылке по полной исходной ссылке "mywebsite.ru":
https://smsc.kz/sys/tinyurls.php?get=1&login=alex&psw=123&link=mywebsite.ru
Сервер не принимает более трех одинаковых запросов в течение минуты на получение информации
о короткой ссылке для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
Подключение выделенных номеров для приема сообщенийВы можете через специальные команды API получать список свободных выделенных номеров для приема SMS-сообщений
и подключать любой номер к своему логину, оплачивая стоимость за остаток дней в текущем месяце. При подключении
выделенного номера вы автоматически соглашаетесь с правилами использования таких номеров.
Для получения списка доступных выделенных номеров необходимо вызвать методом GET или POST следующий адрес:
https://smsc.kz/sys/receive_phones.php?get=1&login=<login>&psw=<password>
Для подключения выделенного номера необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/receive_phones.php?buy=1&login=<login>&psw=<password>&phone=<phone>
Для изменения признака продления выделенного номера на следующий месяц необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/receive_phones.php?chg=1&login=<login>&psw=<password>&phone=<phone>&noprolong=<noprolong>
Описание параметров, передаваемых Серверу:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
phone | Подключаемый номер.
|
---|
noprolong | Признак продления выделенного номера на следующий месяц. Данный параметр также возможно указывать при подключении
номера в команде buy.
0 (по умолчанию) – включить автоматическое продление номера.
1 – отключить автоматическое продление номера.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Недостаточно средств на счете для аренды номера.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
9 | Попытка отправки более двух одинаковых запросов на получение списка доступных для аренды номеров или подключение номера,
либо изменение свойств выделенного номера в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
Для получения списка доступных номеров:
- при fmt = 0:
phone = <phone>, type = <type>, cost = <cost>, current_cost = <current_cost>, info = <info>
... |
- при fmt = 1:
<phone>,<type>,<cost>,<current_cost>,<info>
... |
- при fmt = 2:
<list>
<receive_phone>
<phone>phone</phone>
<type>type</type>
<cost>cost</cost>
<current_cost>current_cost</current_cost>
<info>info</info>
</receive_phone>
...
</list>
|
- при fmt = 3:
[{
"phone": "<phone>",
"type": <type>,
"cost": "<cost>",
"current_cost": "<current_cost>"
"info": "<info>"
},
...] |
Где:
<phone> – номер телефона.
<type> – тип номера: 1,4 – выделенный виртуальный номер, 2 – номер на услуге SIM-хостинга.
<cost> – стоимость аренды номера за полный месяц.
<current_cost> – стоимость аренды номера за остаток дней до конца текущего месяца.
<info> – название оператора и поддерживаемые типы уведомлений.
Для аренды номера:
- при fmt = 0: cost = <cost>
- при fmt = 1: <cost>
- при fmt = 2:
<phone>
<cost>cost</cost>
</phone>
|
- при fmt = 3:
Где:
<cost> – сумма, списанная со счета Клиента за аренду номера.
Для изменения признака продления номера:
- при fmt = 0,1: OK
- при fmt = 2:
<result>OK</result>
- при fmt = 3:
Примеры:
Получение списка свободных номеров для аренды:
https://smsc.kz/sys/receive_phones.php?get=1&login=alex&psw=123
Подключение номера "79999999999":
https://smsc.kz/sys/receive_phones.php?buy=1&login=alex&psw=123&phone=79999999999
Отключение возможности продления выделенного номера "79999999999" на следующий месяц:
https://smsc.kz/sys/receive_phones.php?chg=1&login=alex&psw=123&phone=79999999999&noprolong=1
Сервер не принимает более двух одинаковых запросов в течение минуты на получение списка свободных
для аренды номеров или подключение номера, либо изменение свойств выделенного номера для снижения нагрузки и защиты
от ошибок и зацикливаний в программе на стороне Клиента.
Передача статусов и сообщений на обработчик КлиентаВ личном кабинете Клиента в "Настройках пользователя" имеется возможность
указания http(s)-адреса (URL) скрипта для обработки статусов доставки сообщений, входящих SMS-сообщений,
а также служебных сообщений (при использовании услуги "Подтверждение номера с помощью звонка") на стороне Клиента. Указанный скрипт будет вызываться Сервером после каждого получения статуса доставки ранее отправленного Клиентом сообщения, после получения входящего SMS-сообщения от абонента или звонка от абонента (при использовании услуги "Подтверждение номера с помощью звонка").
В адресе обработчика можно указать параметр charset для выбора кодировки передаваемых параметров:
?charset=utf-8
?charset=koi8-r
?charset=windows-1251
По умолчанию используется кодировка windows-1251.
Также в адресе обработчика статусов и входящих сообщений можно передавать параметр fmt для указания формата возвращаемых параметров. Возможные значения: fmt=2 (для формата xml) и fmt=3 (для формата json). При передаче параметра fmt кодировка koi8-r не используется.
Для защиты передаваемых данных от подмены в адресе обработчика дополнительно можно указать любой из параметров md5, sha1, crc32,
определяющих алгоритм подсчета контрольного параметра с хешем строки:
"id:phone:status:<секретная строка>" − для статуса доставки
"phone:mes:to:<секретная строка>" − для входящего сообщения
"phone:ts:<секретная строка>" − для подтверждения номера с помощью звонка
в виде:
?md5=<секретная строка>
?sha1=<секретная строка>
?crc32=<секретная строка>
В качестве символов секретной строки можно использовать латинские буквы, цифры, минус и подчеркивание.
Обработчику будет передан соответствующий параметр, в котором секретная строка будет заменена на значение хеша передаваемых данных.
Все параметры передаются методом POST (для fmt=2 и fmt=3 параметры передаются в теле запроса). В случае необходимости передачи параметров,
указанных в URL обработчика методом GET требуется прописать их специальным образом через символ "!" (например, в URL
"https://mysite.ru/!param1¶m2?param3¶m4" параметры param1 и param2 будут переданы методом GET, а param3 и param4 методом POST).
Передаваемые параметры для статуса SMS-сообщения:
Параметр | Значение
|
---|
id | Идентификатор сообщения.
|
---|
phone | Номер телефона.
|
---|
status | Статус сообщения.
|
---|
time | Время изменения статуса (или доставки SMS-сообщения абоненту).
Формат: DD.MM.YY hh:mm:ss (по часовому поясу, указанному в настройках).
|
---|
ts | Время изменения статуса в виде штампа в секундах.
|
---|
err | Код ошибки, если сообщение не может быть доставлено (список). Передается, если не равен нулю.
|
---|
syserr | Дополнительная ошибка от оператора, присутствует не всегда.
|
---|
cnt | Количество частей (при отправке SMS-сообщения) либо количество секунд (при голосовом сообщении (звонке)).
|
---|
type | Тип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 –
Звонок, 10 – Viber, 12 – Соцсети).
|
---|
cost | Стоимость сообщения.
|
---|
flag | Флаг в виде 2-х байтового числа, содержащий различную информацию о сообщении. Возможны комбинации значений битов разных характеристик.
Биты 0-3 (тип сообщения):
0 (по умолчанию) – SMS.
1 – Flash-SMS.
2 – Бинарное SMS.
3 – Wap-push.
4 – HLR-запрос.
5 – Ping-SMS.
6 – MMS.
7 – Звонок.
8 – E-mail.
10 – Viber.
12 – Соцсети.
Бит 5 – оплата сообщения со второго баланса.
Бит 8 – признак шаблонного сообщения.
Биты 10,9 – тип шаблонного сообщения:
00 - сервисное.
01 - транзакционное.
10 - авторизационное.
11 - рекламное.
|
---|
sender | Имя отправителя, отображаемое в телефоне получателя.
|
---|
dtmf | Последовательность символов, набираемая абонентом на цифровой клавиатуре во время прослушивания голосового сообщения (звонка).
|
---|
cmt | Комментарии клиента, передаваемые при отправке сообщения. В случае возникновения overtime при голосовом сообщении он будет передан
в комментарии отдельной строкой в виде "overtime: mm:ss".
|
---|
md5 | MD5-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Дополнительные параметры для HLR-запросов
|
---|
imsi | Уникальный код IMSI SIM-карты абонента.
|
---|
msc | Номер сервис-центра оператора, в сети которого находится абонент.
|
---|
mcc | Числовой код страны абонента.
|
---|
mnc | Числовой код оператора абонента.
|
---|
cn | Название страны регистрации абонента.
|
---|
net | Название оператора регистрации абонента.
|
---|
rcn | Название роуминговой страны абонента при нахождении в чужой сети.
|
---|
rnet | Название роумингового оператора абонента при нахождении в чужой сети.
|
---|
Передаваемые параметры для входящего SMS-сообщения:
Параметр | Значение
|
---|
id | Уникальный идентификатор входящего сообщения, назначаемый Сервером автоматически.
|
---|
sms_id | Идентификатор сообщения, на которое получен ответ. Данный параметр отсутствует, если сообщение от абонента было отправлено на выделенный входящий номер либо при указании абонентом префикса "логин, двоеточие и пробел".
|
---|
phone | Номер телефона абонента.
|
---|
mes | Текст SMS-сообщения.
|
---|
to | Входящий номер телефона, на который было отправлено сообщение абонентом.
|
---|
smsc | SMS-центр оператора, от которого было получено входящее сообщение.
|
---|
sent | Время отправки сообщения абонентом в виде штампа в секундах.
|
---|
time | Время получения сообщения Сервером в виде штампа в секундах.
|
---|
md5 | MD5-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Передаваемые параметры при использовании услуги "Подтверждение номера с помощью звонка":
Параметр | Значение
|
---|
waitcall | 1 – признак служебного сообщения для услуги "Подтверждение номера с помощью звонка".
|
---|
phone | Номер телефона абонента, с которого поступил звонок.
|
---|
ts | Время звонка.
|
---|
md5 | MD5-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Дополнительные параметры, передаваемые при использовании функции голосового меню в звонках:
Параметр | Значение
|
---|
calltime | Время разговора, по истечении которого была нажата клавиша на цифровой клавиатуре телефона абонента или общее время разговора.
|
---|
callmenu | Последовательность клавиш цифровой клавиатуры телефона, нажатые абонентом во время прохождения по голосовому меню.
|
---|
ringtime | Время ожидания поднятия трубки абонентом.
|
---|
Помимо описанных выше стандартных параметров Сервер также будет передавать методом POST все параметры,
указанные в http(s)-адресе обработчика после знака "?".
Для различия статуса сообщения, входящего SMS-сообщения или служебного сообщения (при использовании услуги "Подтверждение номера с помощью звонка") в одном обработчике можно выполнить проверку на наличие параметра mes (для входящего сообщения) и waitcall (для услуги подтверждения номера):
if (isset($_POST["mes"])) { // message } elseif (isset($_POST["waitcall"])) { // confirmation } else { // status }
Пересылка статусов на обработчик Клиента осуществляется только при отправке сообщений
по протоколам HTTP/HTTPS, SMTP или SMPP. При отправке сообщений с личного кабинета передача статусов на обработчик Клиента
не происходит.
В случае если от обработчика Клиента вернется ответ с кодом ошибки, отличным от 200 или 404, то Сервер с определенной периодичностью будет повторять запрос на обработчик (1 запрос каждые 4 минуты, всего 50 попыток). Подключение антиспам проверки (captcha) к сайтуИногда возникает необходимость отправки сообщений со своего сайта по запросу пользователей, и в таких случаях для исключения автоматизированных
спам-рассылок с помощью роботов можно легко внедрить антиспам проверку, используя наш сервис.
Для этого достаточно на форме для отправки сообщений разместить специальный код для вывода картинки (captcha) и поля для ввода кода:
Код с картинки <img src="https://smsc.kz/sys/imgcode.php?1.1" onclick="src+=1" width="50" height="18" border="1"> <input type="text" size="9" name="code">
и передать его с другими данными формы в соответствующий скрипт отправки сообщений в качестве значения параметра imgcode.
Также с данным параметром необходимо передавать значение IP-адреса пользователя, которому отображалась картинка в качестве значения параметра userip.
Примеры:
Пример скрипта для отправки сообщений, использующего код с картинки (captcha), полученный с формы:
include_once "smsc_api.php";
if ($_POST["sendsms"]) { $r = send_sms($_POST["phone"], "Ваш код для регистрации на сайте mysite.com 123321.", 0, 0, 0, 0, false, "imgcode=".$_POST["code"]."&userip=".$_SERVER["REMOTE_ADDR"]);
if ($r[1] > 0) echo "<script>alert('Сообщение отправлено на номер ".$_POST["phone"]."')</script>"; elseif ($r[1] == -10) echo "<script>alert('Вы ввели неверный код с картинки!')</script>"; }
Подтверждение номера телефона с помощью звонкаПри различного рода операциях, таких как восстановление паролей, авторизация в общественных сетях Wi-Fi, подтверждение денежных переводов, вход в личный кабинет и так далее требуется отправка аутентификационных данных. Используя наш API можно организовать процедуру подтверждения номера телефона с помощью звонка самим абонентом.
Для создания запроса на получение номера телефона, по которому абонент должен будет осуществить подтверждающий звонок, необходимо вызвать методом GET или POST адрес:
https://smsc.kz/sys/wait_call.php?login=<login>&psw=<password>&phone=<phone>
Серверу передаются следующие параметры:
Параметр | Значение
|
---|
login | Логин Клиента.
|
---|
psw | Пароль Клиента (можно добавить или изменить на данной странице).
|
---|
phone | Номер телефона абонента, с которого будет осуществлен подтверждающий звонок.
|
---|
В случае ошибки Сервер возвращает следующую строку:
- ERROR = N (описание)
- При fmt = 1:
0,-N
- При fmt = 2:
<result>
<error>описание</error>
<error_code>N</error_code>
</result> |
- При fmt = 3:
{
"error": "описание",
"error_code": N
} |
N – номер ошибки, может принимать следующие значения:
Значение | Описание
|
---|
1 | Ошибка в параметрах.
|
---|
2 | Неверный логин или пароль. Также возникает при попытке отправки сообщения с IP-адреса, не входящего в список разрешенных Клиентом (если такой список был настроен Клиентом ранее).
|
---|
3 | Недостаточно средств на счете Клиента.
|
---|
4 | IP-адрес временно заблокирован.
|
---|
5 | Указанный номер телефона абонента находится в черном списке Клиента.
|
---|
6 | Не удалось получить стоимость услуги из-за настроек в личном кабинете Клиента (разрешенные номера, время отправки и т.п.).
|
---|
9 | Попытка отправки более пятидесяти одинаковых запросов на получение номера телефона для подтверждения в течение минуты.
Данная ошибка возникает также при попытке отправки пятнадцати и более запросов одновременно с разных подключений под одним логином (too many concurrent requests).
|
---|
В случае успешного запроса Сервер возвращает ответ в виде строки.
- при fmt = 0:
phone = <phone>, all_phones = <all_phones>
- при fmt = 1 (первым идет номер, на который необходимо позвонить абоненту):
<all_phones>
- при fmt = 2:
<result>
<phone>phone</phone>
<all_phones>
<phone>phone</phone>
...
<phone>phone</phone>
</all_phones>
</result> |
- при fmt = 3:
{
"phone": "<phone>",
"all_phones": [
<phone>",
...
"<phone>"
]
} |
Где:
<phone> – номер телефона, на который в течение 15 минут должен осуществить звонок абонент для подтверждения своего номера телефона.
<all_phones> – список всех возможных номеров телефонов, один из которых был назначен системой для звонка абонента (в зависимости от страны).
После звонка абонента Сервер зафиксирует факт звонка в виде входящего сообщения с текстом "[waitcall]" и отправит на обработчик Клиента всю необходимую информацию о данном звонке.
Сервер не принимает более пятидесяти одинаковых запросов на получение номера телефона для подтверждения в течение минуты для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
|