Вход для клиентов:
Логин:
Пароль:
Отправить тестовое SMS

Введите мобильный номер:

Введите код на картинке:

картинка с цифрами

Если Вам не пришло тестовое SMS, пожалуйста напишите нам для проверки вашего оператора.

Документация API

  1. Описание работы SMS-гейта (HTTPS протокол)

  2. Описание работы MMS-гейта

Распечатать распечатать

Описание работы SMS-гейта

SMS-гейт отправляет сообщения на мобильные терминалы абонентов любых операторов сотовой связи стандарта GSM и CDMA (МТС, Мегафон, Билайн, Теле2, Скайлинк и другие) с указанием альфа-нумерической подписи в качестве отправителя.

При этом за каждое отправленное сообщение с баланса в системе SMS-рассылок https://my.sms2.ru/ снимается стоимость отправки одного сообщения в соответствии с текущим тарифом.

Отправка сообщения

Отправка сообщения через SMS-гейт осуществляется путем вызова скрипта https://my.sms2.ru/sms.cgi при помощи POST-запроса с соответствующими параметрами:

Параметры вызова

  • user - логин в системе SMS-рассылок https://my.sms2.ru/;
  • pass - пароль в системе SMS-рассылок https://my.sms2.ru/;
  • phone - номер телефона, куда следует отправить сообщение (11 цифр в формате 7xxxxxxxxxx);
  • message - текст сообщения (в кодировке Windows-1251, длина до 536-ти символов в кириллице, либо либо 1224-х символов в латинице);
  • from - альфа-нумерическая подпись сообщения (символы латинского алфавита или комбинация символов латинского алфавита и цифр, от 3-х до 11-ти символов);
  • flash - признак Flash-сообщения, отображаемого сразу на экране телефона (0 – обычное сообщение, по умолчанию; 1 – Flash-сообщение).

Результаты вызова

В случае успешной отправки сообщения скрипт возвращает текст:

Message successfully sent! Message_ID=XXXXX

с указанием, соответственно, уникального идентификатора, который сообщение получило в системе. Идентификатор требуется для просмотра статуса конкретного сообщения.

Если же сообщение отправить не удалось, то скрипт возвращает одно из сообщений об ошибке. Наиболее вероятны следующие типы ошибок:

  • Error: aunthefication failure - неправильная комбинация или неправильно переданные параметры логин/пароль;
  • Error: can't send this message - какое-то из полей message или from задано некорректно:
    • поле message не должно быть пустым;
    • поле message не должно превышать 536-ти символов в кириллице, либо либо 1224-х символов в латинице;
    • поле message не должно содержать слова из комбинации символов латинского и кириллического алфавитов;
    • поле from должно иметь длину от 3-х до 11-ти символов;
    • поле from должно состоять из символов латинского алфавита или комбинации символов латинского алфавита и цифр;
  • Error: your credit is null - для отправки сообщения следует пополнить кредит в системе SMS-рассылок https://my.sms2.ru/;
  • Error: direction is closed - сообщение по данному направлению не может быть отправлено, направление закрыто;
  • Error: unsupported phone number - сообщение на данный телефонный номер не может быть отправлено, номер не поддерживается системой;
  • Error: unsupported sender - альфа-нумерическая подпись сообщения должна быть предварительно зарегистрирована;
  • Error: phone blacklisted - сообщение на данный телефонный номер не может быть отправлено, номер находится в списке запрещенных;
  • Error: blocked text message - сообщение на данный телефонный номер не может быть отправлено, текст сообщения содержит запрещенные к отправке слова/выражения/символы;
  • Error: message duplication - сообщение на данный телефонный номер не может быть отправлено, так как является дубликатом;
  • Error: service is switched off - отправка сообщений через SMS-гейт недоступна. Тестирование сервиса возможно только из под Web-интерфейса. Так же эта ошибка может возникать после внесения средств на Ваш счет в том случае, если счет в системе SMS-рассылок https://my.sms2.ru/ не пополнялся длительное время.

Способы вызова

  • Непосредственный вызов в строке браузера. Неудобен и имеет ряд серьезных ограничений, но вполне подходит для тестирования. Достаточно ввести URL вида:
https://my.sms2.ru/sms.cgi?
user=your_login&pass=your_password&phone=79119876543&flash=0&message=Test&from=Test
  • Вызов из .html-файла. Если к этому файлу есть публичный доступ, то такой способ крайне небезопасен, так как логин и пароль жестко закодированы в коде HTML и могут быть прочитаны без особых проблем. Для вызова SMS-гейта подойдет простая HTML-форма вида:
<form method="post" action="https://my.sms2.ru/sms.cgi">
  <input type="hidden" name="login" value="your_login">
  <input type="hidden" name="pass" value="your_password">
  Phone: <input type="text" name="phone"><br>
  Sender: <input type="text" name="from"><br>
  Flash-SMS: <input type="checkbox" value=”1” name="flash"><br>
  Message:<br>
  <textarea name="message" cols="40" rows="6"></textarea>
  <input type="submit" value="Send">
</form>
  • Вызов из .cgi-скрипта, расположенного на каком-либо подходящем хостинге. Это наиболее безопасный и наиболее удобный способ, так как данные для входа в систему не светятся в публичном доступе, и скрипт может взять на себя часть работы по представлению ответа SMS-гейта в любом формате вывода. Пример такого скрипта приведен в разделе "Пример реализации PERL (.cgi-скрипт)". Он может быть взят за основу, или переделан в соответствии с нужными требованиями. Для его запуска достаточно:
    • найти UNIX-хостинг с поддержкой .cgi-скриптов;
    • прописать логин и пароль в gate.cgi;
    • скопировать gate.cgi в cgi-bin/ или любую другую директорию на хостинге, из которой разрешен запуск .cgi-скриптов;
    • установить подходящие права доступа для gate.cgi на хостинге, например, 755;
    • создать и разместить HTML-код для запуска gate.cgi, HTML-код самой формы может выглядеть примерно так:
<form method="post"
  action="https://www.yourwebsite.ru/cgi-bin/gate.cgi">
  Phone: <input type="text" name="phone"><br>
  Sender: <input type="text" name="from"><br>
  Message:<br>
  <textarea name="message" cols="40" rows="6"></textarea>
  <input type="submit" value="Send">
</form>

Проверка статуса сообщения

Проверка статуса сообщения через SMS-гейт осуществляется путем вызова скрипта https://my.sms2.ru/sms_status2.cgi с соответствующими параметрами:

Параметры вызова

  • user - логин в системе SMS-рассылок https://my.sms2.ru/;
  • pass - пароль в системе SMS-рассылок https://my.sms2.ru/;
  • mess_id - уникальный идентификатор сообщения, полученный при отправке в системе.

Результаты вызова

Скрипт возвращает текст, содержащий один из возможных ответов:

  • Error: aunthefication failure - неправильная комбинация или неправильно переданные параметры логин/пароль;
  • Error: no such message - сообщение с заданным идентификатором mess_id не найдено в системе;
  • Status: unknown - сообщение было передано на SMS-центр оператора для доставки абоненту;
  • Status: delivered - сообщение успешно доставлено абоненту;
  • Status: not_delivered - сообщение не доставлено абоненту (абонент заблокирован, не существует, находится в роуминге без поддержки обмена SMS-сообщениями, или на его телефоне не поддерживается прием SMS-сообщений).

Способы вызова

  • Непосредственный вызов в строке браузера. Вполне подходит для тестирования. Достаточно ввести URL вида:
https://my.sms2.ru/sms_status2.cgi?
user=your_login&pass=your_password&mess_id=27460
  • Вызов из .html-файла. Способ подробно описан в разделе «Способы вызова https://my.sms2.ru/sms.cgi», нужно лишь изменить соответствующие параметры, HTML-код может выглядеть примерно так:
<form method="post" action="https://my.sms2.ru/sms_status2.cgi">
  <input type="hidden" name="login" value="your_login">
  <input type="hidden" name="pass" value="your_password">
  <input type="text" name="mess_id" value="" placeholder="mess_id">
  <input type="submit" value="Send">
</form>

Работа с базами телефонов

Работа с базами телефонов осуществляется путем вызова скрипта https://my.sms2.ru/api_call.cgi с соответствующими параметрами:

Параметры вызова

  • user - логин в системе SMS-рассылок https://my.sms2.ru/;
  • pass - пароль в системе SMS-рассылок https://my.sms2.ru/;
  • function - выбранная функция для работы с базой телефонов, может принимать одно из следующих значений:
    • list_of_bases - получить список телефонных баз в формате:
      • base_name - название базы;
      • id - уникальный идентификатор базы;
      • phones_total - количество телефонов в базе;
    • add_phone_to_base - добавить телефон в базу (при добавлении телефона в новую базу, база будет автоматически создана);
    • add_phone_to_base_batch - добавить список телефонов в базу (при добавлении списка телефонов в новую базу, база будет автоматически создана);
    • is_phone_in_base - проверить, есть ли уже телефон в базе;
    • get_base - получить список телефонов в базе;
    • remove_phone_from_base - удалить телефон из базы;
    • start_multicast - добавить в очередь SMS-рассылку по базе, либо нескольким базам.

Дополнительные параметры для функций (кроме start_multicast)

  • base - название телефонной базы, с которой осуществляется работа;
  • phone - номер телефона, 11 цифр в формате 7xxxxxxxxxx (не указывается для функции get_base).
  • phones - номера телефонов, 11 цифр в формате 7xxxxxxxxxx, каждый номер с новой строки (указывается для функции add_phone_to_base_batch).

Дополнительные параметры для функции start_multicast

  • message - текст сообщения (в кодировке Windows-1251, длина до 268-ми символов);
  • from - альфа-нумерическая подпись сообщения (символы латинского алфавита или комбинация символов латинского алфавита и цифр, от 3-х до 11-ти символов);
  • bases - названия телефонных баз для рассылки, разделённые символом запятой (при выборе одной телефонной базы для рассылки, указывается только ее название);
  • start_at - время старта рассылки в формате 'YYYY-MM-DD HH:MM', если этот параметр не указан, по умолчанию берётся текущее время.

Результаты вызова

В случае ошибки скрипт возвращает одно из сообщений об ошибке. Наиболее вероятны следующие типы ошибок:

  • Error: wrong function - параметры в вызове скрипта https://my.sms2.ru/api_call.cgi заданы не корректно;
  • Error: wrong phone number - номер в неправильном формате, либо не поддерживается системой;
  • Error: wrong base - несуществующая база;
  • Error: base is protected - защищенная база может использоваться только для проведения SMS-рассылки по данным номерам, и не может быть скопирована либо отредактирована;
  • Error: can't add phone number - ошибка при добавлении номера в базу;
  • Error: can't remove phone number - ошибка при удалении номера из базы.

В случае успешного выполнения своей работы, скрипт возвращает следующие значения для соответствующих функций:

  • list_of_bases
[{"base_name":"XXXXX","id":"YYYYY","phones_total":"ZZZZZ"},…]
  • add_phone_to_base
Success
  • add_phone_to_base_batch
{"success"=>XXXXX,"errors"=>["70987654321","1728376",…]}
где XXXXX - количество успешно добавленных телефон
  • is_phone_in_base
Yes или No, в зависимости от того, есть ли телефон в базе
  • get_base
Список телефонов, если база не пустая, или No phones in base
  • remove_phone_from_base
Success
  • start_multicast
Success

Проверка баланса

Проверка текущего состояния баланса в системе SMS-рассылок осуществляется путем вызова скрипта https://my.sms2.ru/get_credit_info.cgi с соответствующими параметрами:

Параметры вызова

Результаты вызова

Скрипт возвращает текст, содержащий информацию в рублевом эквиваленте по текущему состоянию баланса на счету в системе SMS-рассылок и предельно допустимом пороге отключения:

Balance: 5006.75; Overdraft: -10000.00

Пример реализации PERL (.cgi-скрипт)

#!/usr/bin/perl
use strict;

use CGI qw(:standard);
use LWP::UserAgent;

my $primary_url = 'https://my.sms2.ru/sms.cgi';
my $ua = LWP::UserAgent->new();

my $USER = 'your_login';
my $PASS = 'your_password';

my $response = $ua->post($primary_url, {
	user => $USER,
	pass => $PASS,
	phone => param('phone'),
	message => param('message'),
	flash => param('flash') || 0,
	from => param('from') || $USER,
	enc => 'utf-8'
});

# Print headers
$| = 1;
print "Content-type: text/html\n\n";

if ($response->is_success) {
   print $response->content."\n";
} else {
   print "ERROR\r\n";	
}

exit 0;

Пример реализации PHP

<?php

/**
 * Date: 14.03.16
 * Time: 22:58
 */
class SMS2CurlWrapper {
    const HOST = 'https://my.sms2.ru';

    private $login;
    private $password;

    public function __construct($login, $password) {
        if ($login && $password) {
            $this->login = $login;
            $this->password = $password;
        } else {
            throw new \Exception('Логин или пароль не заполнены');
        }
    }

    public function sendSms($message, $phone, $from) {

        if (!$phone || !preg_match('/\D/', $phone)) {
            throw new \Exception('Неверный формат номера телефона');
        }

        if (!$from || strlen($from) > 11) {
            throw new \Exception('Неверный формат имени отправителя');
        }

        $data = array(
            'user' => $this->login,
            'pass' => $this->password,
            'phone' => $phone,
            'message' => mb_convert_encoding($message, 'WINDOWS-1251'),
            'from' => $from,
        );

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, self::HOST.'/sms.cgi');
        curl_setopt($ch, CURLOPT_FAILONERROR, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 7);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'SMSSender/1.5');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
/*
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
*/
        $result = curl_exec($ch);
        curl_close($ch);

        return $result;
    }
}

?>

Пример реализации интеграции с 1С (.vbs-скрипт)

Dim fso, fileSource, sourceFileName, outputFileName, line , result

sourceFileName = WScript.Arguments(0)
outputFileName = WScript.Arguments(1)

sUrl = "https://my.sms2.ru/sms.cgi"
login = "your_login"
password = "your_password"
sender = "your_sender"

Set fso = CreateObject("Scripting.FileSystemObject")
Set fileSource = fso.OpenTextFile(sourceFileName, 1, false, -2)
Set outFile = fso.OpenTextFile(outputFileName, 8, True)
while not fileSource.AtEndOfStream
    line = fileSource.readline()
    if line <> "end" then
        arr = split(line, "#")
		sRequest = "user=" & login & 
                           "&pass=" & password & 
                           "&phone=" & arr(0) & 
                           "&message=" & StrConv(arr(1), "windows-1251", "utf-8") & 
                           "&enc=utf-8&from=" & sender
		result = HTTPPost(sUrl, sRequest)
		WScript.Sleep 1000
		outFile.WriteLine arr(0) & " " & result
    end if
wend
fileSource.Close

Function HTTPPost(sUrl, sRequest)
  set oHTTP = CreateObject("Microsoft.XMLHTTP")
  oHTTP.open "POST", sUrl, false
  oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  oHTTP.setRequestHeader "Content-Length", Len(sRequest)
  oHTTP.send sRequest
  HTTPPost = oHTTP.responseText
 End Function

Function StrConv(Text, SourceCharset, DestCharset)
  Set Stream = CreateObject("ADODB.Stream")
  Stream.Type = 2
  Stream.Mode = 3
  Stream.Open
  Stream.Charset = SourceCharset
  Stream.WriteText Text
  Stream.Position = 0
  Stream.Charset = DestCharset
  StrConv = Stream.ReadText
 End Function

Описание работы MMS-гейта

MMS-гейт отправляет сообщения на мобильные терминалы абонентов любых операторов сотовой связи стандарта GSM и CDMA (МТС, Мегафон, Билайн, Теле2, Скайлинк и другие).

При этом за каждое отправленное сообщение с баланса в системе MMS-рассылок https://my.sms2.ru/ снимается стоимость отправки одного сообщения в соответствии с текущим тарифом.

Отправка сообщения

Отправка сообщения через MMS-гейт осуществляется путем вызова скрипта https://my.sms2.ru/api.php при помощи POST-запроса с соответствующими параметрами:

Параметры вызова

  • user - логин в системе MMS-рассылок https://my.sms2.ru/;
  • hash - MD5-хэш пароля в системе MMS-рассылок https://my.sms2.ru/;
  • phone - номер телефона, куда следует отправить сообщение (11 цифр в формате 7xxxxxxxxxx);
  • subject - тема сообщения (в кодировке UTF-8);
  • text - текст сообщения (в кодировке UTF-8);
  • picture - изображение, прикрепляемое к сообщению, в формате PNG (другие форматы могут некорректно отображаться на некоторых моделях сотовых телефонов).

Размер сообщения ограничен и составляет 300 Килобайт (КБ, Кбайт).

Результаты вызова

В случае успешной отправки сообщения скрипт возвращает текст:

Ok_XXXXX

с указанием, соответственно, уникального идентификатора, который сообщение получило в системе. Идентификатор требуется для просмотра статуса конкретного сообщения.

Если же сообщение отправить не удалось, то скрипт возвращает текст:

Error

и описание ошибки.

Наверх