Тарифи  Послуги  API  Партнерам  Про сервіс  Контакти 
0 (800) 30 7672
Безкоштовно по Україні
 

Інтеграція з сервісом (API)

API дозволяє розсилати повідомлення через ваші проекти і сервіси по протоколах HTTP/HTTPS, SMTP і SMPP. Готові бібліотеки різними мовами програмування підключаються до вашого проекту та допомагають надсилати повідомлення з будь-якого місця за допомогою однієї команди. Для спрощеної авторизації замість пари логін і пароль можна використовувати спеціальний API-ключ.


HTTP/HTTPS SMTP SMPP SOAP OMS SMS-команди Бібліотеки та приклади коду

Приклади

Форма для відправки SMS-повідомлень

Для відправки SMS-повідомлень зі свого сайту можна скористатись наступним прикладом HTML-форми і відповідного PHP-скрипта, що обробляє дані цієї форми.


Телефон


Повідомлення


Відправник


Відкласти до
(дд.мм.рр гг:хх)

Трансліт Flash-SMS


Вихідний код форми: <html>
<
form method="post" action="send.php">

Телефон<br/><input name="phone" value=""><br/><br/>

Сообщение<br/><textarea name="message" rows="4" cols="40"></textarea><br/><br/>

Оправитель<br/><input name="sender" value=""><br/><br/>

Отложить до<br/><input name="time" value=""> (дд.мм.гг чч:мм)<br/><br/>

<
input type="checkbox" name="translit">Транслит
<input type="checkbox" name="flash"> Flash SMS<br/><br/>

<
input type="submit" name="send" value="Отправить">
</
form>
</
html>

Файл send.php, який обробляє дані форми і використовує бібліотеку smsc_api.php: <?
if ($_POST["send"]) {
include_once
"smsc_api.php";

$r = send_sms($_POST["phone"], $_POST["message"],
$_POST["translit"], $_POST["time"], 0,
$_POST["flash"], $_POST["sender"]);

// $r = array(<id>, <количество sms>, <стоимость>, <баланс>) или array(<id>, -<код ошибки>)

if ($r[1] > 0)
echo
"Сообщение отправлено";
else
echo
"Произошла ошибка № ", -$r[1];
}
?>

Форма для підтвердження номера телефону

Для підтвердження номера мобільного телефону, наприклад, при активації нового облікового запису на сайті можна використовувати наступний приклад HTML-форми і PHP-скрипта, що обробляє дані форми. Щоб уникнути відправки множинних запитів на формі можна додатково розмістити антиспам перевірку (captcha).


Номер телефону

Код підтвердження 


Вихідний код форми: <html>
<
form method="post" action="act.php">

<
table>
<
tr><td>Номер телефона<td><input name="phone">
<
tr><td><br/>

<
tr><td>Код подтверждения<td><input name="code" size="6">&nbsp;
<
input type="submit" name="sendsms" value="Выслать код">
<
tr><td><br/>

<
tr><td><input type="submit" name="ok" value="Подтвердить">
</
table>

</
form>
</
html>

Файл act.php, який обробляє дані форми і використовує бібліотеку smsc_api.php: <?
include_once "smsc_api.php";

if (isset(
$_POST["sendsms"])) {
   
$r = send_sms($_POST["phone"], "Ваш код подтверждения: ".ok_code($_POST["phone"]));

    if (
$r[1] > 0)
        echo
"Код подтверждения отправлен на номер ".$_POST["phone"];
}

if (isset(
$_POST["ok"])) {
   
$oc = ok_code($_POST["phone"]);

    if (
$oc == $_POST["code"])
        echo
"Номер активирован";
    else
        echo
"Неверный код подтверждения";
}

function
ok_code($s) {
    return
hexdec(substr(md5($s."<секретная строка>"), 7, 5));
}
?>

Вихідний код форми: <html>
<
form method="post" action="act.php" target="ifr">

<
table>
<
tr><td>Номер телефона<td><input name="phone">
<
tr><td><br/>

<
tr><td>Код подтверждения<td><input name="code" size="6">&nbsp;
<
input type="submit" name="sendsms" value="Выслать код">
<
tr><td><br/>

<
tr><td><input type="submit" name="ok" value="Подтвердить"><td colspan="2" id="_out">
</
table>

</
form>
<
iframe name="ifr" frameborder="0" height="0" width="0" style="visibility:hidden"></iframe>
</
html>

Файл act.php, який обробляє дані форми і використовує бібліотеку smsc_api.php: <?
echo "<script>parent.document.getElementById('_out').innerHTML = '";

include_once
"smsc_api.php";

if (isset(
$_POST["sendsms"])) {
   
$r = send_sms($_POST["phone"], ok_code($_POST["phone"]));

    if (
$r[1] > 0)
        echo
"Код подтверждения отправлен на номер ".$_POST["phone"];
}

if (isset(
$_POST["ok"])) {
   
$oc = ok_code($_POST["phone"]);

    if (
$oc == $_POST["code"])
        echo
"Номер активирован";
    else
        echo
"Неверный код подтверждения";
}

echo
"'</script>";

function
ok_code($s) {
    return
hexdec(substr(md5($s."<секретная строка>"), 7, 5));
}
?>


Для уникнення множинних запитів коду підтвердження з однієї IP-адреси і на один номер телефону рекомендуємо зробити відповідний контроль на своєму сервері. Для обмеження кількості запитів на один номер телефону можливо встановити відповідний ліміт у "Налаштуваннях користувача". Також у форму підтвердження бажано додати картинку з кодом (captcha) для захисту від програмних автоматичних спам-розсилок.

Форма для підтвердження адреси електронної пошти

Для підтвердження адреси електронної пошти, наприклад, при активації нового облікового запису на сайті можна використовувати наступний приклад HTML-форми і PHP-скрипта, що обробляє дані форми. Щоб уникнути відправки множинних запитів на формі можна додатково розмістити антиспам перевірку (captcha).


E-mail адреса

Код підтвердження 


Вихідний код форми: <html>
<
form method="post" action="act.php">

<
table>
<
tr><td>E-mail адрес<td><input name="phone">
<
tr><td><br/>

<
tr><td>Код подтверждения<td><input name="code" size="6">&nbsp;
<
input type="submit" name="sendsms" value="Выслать код">
<
tr><td><br/>

<
tr><td><input type="submit" name="ok" value="Подтвердить">
</
table>

</
form>
</
html>

Файл act.php, який обробляє дані форми і використовує бібліотеку smsc_api.php: <?
include_once "smsc_api.php";

if (isset(
$_POST["sendsms"])) {
   
$r = send_sms($_POST["phone"], "Ваш код подтверждения: ".ok_code($_POST["phone"]), 0, 0, 0, 8, "www@mysite.com", "subj=Confirmation");

    if (
$r[1] > 0)
        echo
"Код подтверждения отправлен на e-mail адрес ".$_POST["phone"];
}

if (isset(
$_POST["ok"])) {
   
$oc = ok_code($_POST["phone"]);

    if (
$oc == $_POST["code"])
        echo
"E-mail адрес активирован";
    else
        echo
"Неверный код подтверждения";
}

function
ok_code($s) {
    return
hexdec(substr(md5($s."<секретная строка>"), 7, 5));
}
?>

Вихідний код форми: <html>
<
form method="post" action="act.php" target="ifr">

<
table>
<
tr><td>E-mail адрес<td><input name="phone">
<
tr><td><br/>

<
tr><td>Код подтверждения<td><input name="code" size="6">&nbsp;
<
input type="submit" name="sendsms" value="Выслать код">
<
tr><td><br/>

<
tr><td><input type="submit" name="ok" value="Подтвердить"><td colspan="2" id="_out">
</
table>

</
form>
<
iframe name="ifr" frameborder="0" height="0" width="0" style="visibility:hidden"></iframe>
</
html>

Файл act.php, який обробляє дані форми і використовує бібліотеку smsc_api.php: <?
echo "<script>parent.document.getElementById('_out').innerHTML = '";

include_once
"smsc_api.php";

if (isset(
$_POST["sendsms"])) {
   
$r = send_sms($_POST["phone"], ok_code($_POST["phone"]), 0, 0, 0, 8, "www@mysite.com", "subj=Confirmation");

    if (
$r[1] > 0)
        echo
"Код подтверждения отправлен на e-mail адрес ".$_POST["phone"];
}

if (isset(
$_POST["ok"])) {
   
$oc = ok_code($_POST["phone"]);

    if (
$oc == $_POST["code"])
        echo
"E-mail адрес активирован";
    else
        echo
"Неверный код подтверждения";
}

echo
"'</script>";

function
ok_code($s) {
    return
hexdec(substr(md5($s."<секретная строка>"), 7, 5));
}
?>


Для уникнення множинних запитів коду підтвердження з однієї IP-адреси і на одну адресу електронної пошти рекомендуємо зробити відповідний контроль на своєму сервері. Також в форму підтвердження бажано додати картинку з кодом (captcha) для захисту від програмних автоматичних спам-розсилок.

SOAP протокол

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

$client = new SoapClient ("http://smsc.ua/sys/soap.php?wsdl");
$ret = $client->send_sms(array("login"=>"alex", "psw"=>"123", "phones"=>"79999999999", "mes"=>"Hello world!", "id"=>"", "sender"=>"ivan", "time"=>0));

if (
$ret->sendresult->error)
    echo
"Ошибка №".$ret->sendresult->error;
else {
    echo
$ret->sendresult->id, "\n";
    echo
$ret->sendresult->balance, "\n";
    echo
$ret->sendresult->cost, "\n";
    echo
$ret->sendresult->cnt, "\n";
}


//Flash сообщение от отправителя "ivan", которое должно быть доставлено абоненту 01.01.2012 г. в 00:00:

$ret = $client->send_sms2(array("login"=>"alex", "psw"=>"123", "phones"=>"79999999999", "mes"=>"Hello world!", "id"=>"", "sender"=>"ivan", "time"=>"0101120000", "query"=>"flash=1"));

if (
$ret->sendresult->error)
    echo
"Ошибка №".$ret->sendresult->error;
else {
    echo
$ret->sendresult->id, "\n";
    echo
$ret->sendresult->balance, "\n";
    echo
$ret->sendresult->cost, "\n";
    echo
$ret->sendresult->cnt, "\n";
}


//Несколько сообщений разным абонентам:

$ret = $client->send_sms2(array("login"=>"alex", "psw"=>"123", "phones"=>"", "mes"=>"", "id"=>"", "sender"=>"", "time"=>0, "query"=>"list=79999999999:message1%0A79999999998:message2"));

if (
$ret->sendresult->error)
    echo
"Ошибка №".$ret->sendresult->error;
else {
    echo
$ret->sendresult->id, "\n";
    echo
$ret->sendresult->balance, "\n";
    echo
$ret->sendresult->cost, "\n";
    echo
$ret->sendresult->cnt, "\n";
}


// Получение стоимости

$ret = $client->get_sms_cost(array("login"=>"alex", "psw"=>"123", "phones"=>"79999999999", "mes"=>"Hello world!"));

if (
$ret->costresult->error)
    echo
"Ошибка №".$ret->costresult->error;
else {
    echo
$ret->sendresult->cost, "\n";
    echo
$ret->sendresult->cnt, "\n";
}


// Проверка статуса

$ret = $client->get_status(array("login"=>"alex", "psw"=>"123", "phone"=>"79999999999", "id"=>"999", "all"=>"0"));
    echo
"Ошибка №".$ret->statusresult->error;
else {
    echo
$ret->statusresult->status, "\n";
    echo
$ret->statusresult->last_date, "\n";
    echo
$ret->statusresult->err, "\n";
}


// Расширенный статус

$ret = $client->get_status(array("login"=>"alex", "psw"=>"123", "phone"=>"79999999999", "id"=>"999", "all"=>"2"));
    echo
"Ошибка №".$ret->statusresult->error;
else {
    echo
$ret->statusresult->status, "\n";
    echo
$ret->statusresult->last_date, "\n";
    echo
$ret->statusresult->err, "\n";
    echo
$ret->statusresult->last_timestamp, "\n";
    echo
$ret->statusresult->send_date, "\n";
    echo
$ret->statusresult->send_timestamp, "\n";
    echo
$ret->statusresult->phone, "\n";
    echo
$ret->statusresult->cost, "\n";
    echo
$ret->statusresult->sender_id, "\n";
    echo
$ret->statusresult->status_name, "\n";
    echo
$ret->statusresult->message, "\n";
    echo
$ret->statusresult->operator, "\n";
    echo
$ret->statusresult->region, "\n";
}


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

$ret = $client->get_status(array("login"=>"alex", "psw"=>"123"));

if (
$ret->balanceresult->balance)
    echo
"Ошибка №".$ret->sendresult->error;
else
    echo
$ret->balanceresult->balance, "\n";

?>



© 2003–2024 ТОВ " СМСЦЕНТР»
Код ЄДРПОУ 38404962
support@smsc.ua
Контакти
Дизайн — Студія Артемія Лебедєва
Інформація про сайт
SMS-центр для Android Яндекс.Метрика