Интеграция SMSC с сайтом: OTP, статусы доставки, мультиканальные каскады

Как избежать потери транзакционных SMS: интеграция SMSC

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Интеграция SMSC с сайтом: OTP, статусы доставки, мультиканальные каскады
Простой
от 4 часов до 2 дней

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Как избежать потери транзакционных 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, закажите консультацию — мы оценим ваш проект и предложим оптимальное решение. Получите бесплатную оценку стоимости уже сегодня.