Як уникнути втрати транзакційних SMS: інтеграція SMSC

Як уникнути втрати транзакційних SMS: інтеграція SMSC

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Як уникнути втрати транзакційних SMS: інтеграція SMSC
Простий
від 4 годин до 2 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Як уникнути втрати транзакційних SMS: інтеграція SMSC

Кожне п'яте транзакційне SMS-повідомлення не доходить до клієнта через неправильне кодування, відсутність fallback-каналів або ігнорування статусів доставки. Типова картина: після реєстрації користувач не отримує OTP, втрачає доступ до акаунту та йде до конкурентів. Ми вирішували ці проблеми у 30+ проєктах — від інтернет-магазинів до банківських систем. SMSC — російський агрегатор, чиї тарифи на 20% нижчі за середньоринкові, а підтримка мультиканальних каскадів (Viber + SMS) економить до 30% бюджету на розсилки. Без правильної інтеграції ці переваги обертаються головним болем.

Проблеми інтеграції SMSC та їх вирішення

Неправильне кодування кирилиці. Якщо не передати charset=utf-8, SMSC за замовчуванням використовує CP-1251 — текст перетворюється на кракозябри. Рішення: явно вказувати charset у кожному запиті. Згідно з документацією SMSC, параметр charset обов'язковий для кириличних повідомлень. Докладніше про кодування UTF-8.

Перевищення лімітів. SMSC обмежує кількість повідомлень за хвилину на одну IP-адресу. При масовій розсилці без черги частина листів втрачається. Ми додаємо чергу (Laravel Queue або Redis) та налаштовуємо троттлінг з паузами між пачками по 50 повідомлень.

Необроблені помилки. API повертає помилки, але багато розробників не перевіряють відповідь. Ми завжди парсимо JSON, логуємо error_code та відправляємо повтор при таймауті.

Чому важливий charset=utf-8 при відправці кирилиці?

Якщо забути про charset=utf-8, SMSC за замовчуванням кодує текст у CP-1251. Більшість сучасних сайтів працюють у UTF-8 — у результаті абонент бачить нечитабельні символи. Ми в кожному запиті явно передаємо charset=utf-8 і fmt=3 для JSON-відповіді. Це гарантує коректне відображення кирилиці у 100% випадків.

Способи інтеграції

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 ]); 

Як обробляти статуси доставки, щоб не втратити повідомлення?

SMS не завжди доходить — абонент поза зоною, телефон вимкнено, номер заблоковано. Без статусів ви не дізнаєтесь, що повідомлення не доставлено. SMSC надає API перевірки статусу та callback (вебхуки). Ми налаштовуємо отримання статусів і при невдачі задіюємо інший канал (Viber, WhatsApp) або повторюємо відправку через 30 хвилин. У 95% випадків повідомлення доставляється з першої спроби, але решта 5% потребують автоматичної обробки.

Код Статус Опис
-3 В дорозі Повідомлення відправлено, очікує доставки
1 Доставлено Успішно доставлено абоненту (95% випадків)
3 Закінчився термін Повідомлення не доставлено за 24 години
20 Неможливо доставити Номер неактивний або заблоковано

Що дає мультиканальний каскад Viber+SMS?

Viber — дешевий канал з високою відкриваністю, але не всі абоненти ним користуються. SMSC дозволяє налаштувати каскад: спочатку відправка через Viber, при невдачі — SMS. Це знижує витрати на розсилку в середньому на 30% і підвищує доставляємість до 99%. У налаштуваннях достатньо передати параметр viber=1.

Як уникнути перевищення лімітів при масовій розсилці?

Масова розсилка — основна причина блокувань. SMSC встановлює ліміт 100 повідомлень за секунду для тарифу «Індивідуальний». Якщо перевищити, API поверне помилку error_code=6. Рішення: розбити відправку на пачки по 50 повідомлень і робити паузу між ними.

$batch = array_chunk($phones, 50); foreach ($batch as $chunk) { $response = Http::get('https://smsc.ru/sys/send.php', [...]); if ($response['error'] ?? false) { // логуємо і чекаємо 1 секунду sleep(1); } } 

Як ми налаштовуємо SMSC

Наш стандартний стек: Laravel (PHP 8.3), Guzzle для HTTP-запитів, Redis для черг. Конфіги виносимо в .env. Ми використовуємо офіційну PHP-бібліотеку smsc_api.php, але обертаємо її в service-клас з обробкою помилок. Для мультиканальних каскадів (спочатку Viber, при невдачі SMS) використовуємо параметр viber=1.

Процес роботи

  1. Аналітика — вивчаємо вашу архітектуру, визначаємо точки відправки SMS (реєстрація, підтвердження замовлення, сповіщення).
  2. Проєктування — обираємо метод інтеграції (HTTP API або бібліотека), налаштовуємо чергу та троттлінг.
  3. Реалізація — пишемо код, обробляємо всі кейси помилок, налаштовуємо callback для статусів.
  4. Тестування — відправляємо тестові повідомлення, перевіряємо доставку на різні номери, імітуємо збої.
  5. Деплой — запускаємо на продакшені, налаштовуємо моніторинг (логи, алерти).

Терміни та вартість інтеграції

Базова інтеграція (один канал, без черг) займає кілька годин. Якщо потрібні мультиканальні розсилки, черги та кастомні звіти — до двох днів. Точну вартість розраховуємо після аналізу вашого проєкту. Отримайте консультацію для оцінки. Зв'яжіться з нами, щоб обговорити деталі.

Типові помилки при інтеграції SMSC

Код помилки Опис Рішення
2 Невірний логін або пароль Перевірити .env
4 Недостатньо коштів Поповнити баланс
6 Перевищено ліміт Зменшити частоту відправки

Також поширені помилки:

  • Не вказано charset=utf-8 — кирилиця перетворюється на кракозябри.
  • Пароль або логін передаються у відкритому вигляді — використовуйте змінні оточення.
  • Не обробляється відповідь API — пропущені помилки, повідомлення не доходять.
  • Відсутній fallback на інший канал — при збої SMS клієнт залишається без сповіщення.
  • Не налаштовано чергу — при масовій розсилці перевищуєте ліміти SMSC.

Що входить у роботу

  • Повна інтеграція SMSC з вашим сайтом на Laravel або іншому фреймворку.
  • Налаштування черг і троттлінгу для масових розсилок.
  • Обробка статусів доставки через callback або HTTP-запити.
  • Документація з інтеграції та доступів.
  • Навчання вашої команди роботі з системою.
  • Гарантія 30 днів після запуску — оперативно виправляємо будь-які проблеми.

За час роботи ми провели понад 30 успішних інтеграцій із SMSC для інтернет-магазинів, банків і сервісів доставки. Якщо вам потрібна надійна відправка транзакційних SMS, замовте консультацію — ми оцінимо ваш проєкт і запропонуємо оптимальне рішення. Отримайте безкоштовну оцінку вартості вже сьогодні.