Інтеграція SMS-розсилання (SMSC) з веб-сайтом
SMSC.ru — російський агрегатор SMS-розсилання з підтримкою кількох операторів, каналів (SMS, Viber, WhatsApp) та можливістю реєстрації імені відправника.
HTTP API
$response = Http::get('https://smsc.ru/sys/send.php', [
'login' => env('SMSC_LOGIN'),
'psw' => env('SMSC_PASSWORD'),
'phones' => $phone,
'mes' => $message,
'charset' => 'utf-8',
'fmt' => 3, // JSON відповідь
'sender' => env('SMSC_SENDER_NAME')
]);
$result = $response->json();
// ['id' => 1, 'cnt' => 1] — успіх
// ['error' => 'Помилка', 'error_code' => X] — помилка
Офіційна бібліотека
SMSC надає PHP-клас smsc_api.php:
require 'smsc_api.php';
$smsc = new SMSC_API();
$smsc->init(env('SMSC_LOGIN'), env('SMSC_PASSWORD'));
[$n_phones, $n_sms, $cost, $balance] = $smsc->send_sms(
$phone,
$message,
0, // translit
'', // time (delayed)
0, // id
0, // format (0=normal)
env('SMSC_SENDER_NAME')
);
Багатоканальні розсилання
SMSC підтримує каскадну відправку: спочатку Viber (дешевше), при невдачі — SMS:
Http::get('https://smsc.ru/sys/send.php', [
// ...
'viber' => 1, // спробувати через Viber
'vk' => 1, // потім VK
'phones' => $phone,
'mes' => $message
]);
Статуси доставки
$status = Http::get('https://smsc.ru/sys/status.php', [
'login' => env('SMSC_LOGIN'),
'psw' => env('SMSC_PASSWORD'),
'phone' => $phone,
'id' => $smsId,
'fmt' => 3
])->json();
// status: -3 (в пути), 1 (доставлено), 3 (істік термін доставки), 20 (неможливо доставити)
Тривалість інтеграції: кілька годин.







