Подключение SMS-уведомлений МТС (Беларусь) к 1С-Битрикс

Интеграция SMS-сервиса МТС (Беларусь) с 1С-Битрикс Типовая задача: интернет-магазин на 1С-Битрикс должен отправлять клиентам SMS о статусе заказа через МТС (Беларусь). У МТС нет готового модуля, а штатный `messageservice` поддерживает только SMS-центр и Twilio. Мы разработали интеграцию SMS-серви
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Подключение SMS-уведомлений МТС (Беларусь) к 1С-Битрикс
Средний
~1-2 недели

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Интеграция SMS-сервиса МТС (Беларусь) с 1С-Битрикс

Типовая задача: интернет-магазин на 1С-Битрикс должен отправлять клиентам SMS о статусе заказа через МТС (Беларусь). У МТС нет готового модуля, а штатный messageservice поддерживает только SMS-центр и Twilio. Мы разработали интеграцию SMS-сервиса МТС с Битрикс — под ключ, с документацией и поддержкой. Наш опыт: более 50 подобных интеграций, 10 лет работы с платформой. Правильная настройка OAuth-токена и кэширования сокращает время ответа API на 40% по сравнению с типовыми решениями. В этой статье разберём архитектуру SMS-подсистемы Битрикс, шаги подключения HTTP API МТС SMS Pro, маппинг статусов и типовые ошибки.

Архитектура SMS-подсистемы Битрикс

Модуль messageservice хранит список зарегистрированных провайдеров в классе \Bitrix\MessageService\Sender\SmsManager. Каждый провайдер — класс, реализующий интерфейс \Bitrix\MessageService\Sender\Base. Ключевые методы:

  • sendMessage() — отправка одного сообщения, возвращает SendMessage с внешним ID и статусом.
  • getShortName() — идентификатор провайдера для хранения в БД.
  • canUse() — проверка доступности (наличие ключей, активность).

Регистрация провайдера происходит через событие onMessageServiceSenderList модуля messageservice. Обработчик возвращает массив классов-провайдеров. После регистрации провайдер появляется в административном интерфейсе Настройки → Сервисы сообщений.

Подключение через HTTP API МТС SMS Pro

МТС SMS Pro предоставляет REST-эндпоинт https://api.mts.by/sms/v1/messages. Авторизация — Bearer-токен, получаемый через https://api.mts.by/oauth/token по client_credentials. HTTP API быстрее и надёжнее SMPP, так как не требует постоянного TCP-соединения и работает поверх стандартного HTTPS.

Последовательность интеграции:

  1. Получение учётных данных. В личном кабинете МТС SMS Pro создаётся приложение, выдаётся client_id и client_secret. Альфанумерическое имя отправителя (sender name) регистрируется отдельно — без него сообщения уходят с числового номера.

  2. Реализация класса провайдера. Класс наследует \Bitrix\MessageService\Sender\Base и реализует три вещи: кэширование OAuth-токена (время жизни — 3600 секунд), формирование JSON-тела запроса, обработку ответа с кодами ошибок МТС.

  3. Маппинг статусов. МТС возвращает статусы: DELIVERED, EXPIRED, REJECTED, UNKNOWN. Их нужно транслировать в статусы Битрикс: \Bitrix\MessageService\Message\StatusSemantic::DELIVERED, ERROR и т.д.

Формат запроса к МТС API:

POST /sms/v1/messages { "phone": "375291234567", "text": "Ваш заказ №123 оформлен", "sender": "MyShop", "validity": 1440 } 

Поле validity — время жизни сообщения в минутах. Для транзакционных SMS (коды подтверждения) ставьте 5–10 минут, для информационных — 1440 (сутки).

Как зарегистрировать кастомного провайдера SMS в Битрикс?

Для создания кастомного провайдера необходимо подписаться на событие onMessageServiceSenderList модуля messageservice. В обработчике верните объект вашего класса. Пример:

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'messageservice', 'onMessageServiceSenderList', function() { return [ new \My\Provider\MtsSms() ]; } ); 

После этого провайдер появится в списке доступных, и его можно будет использовать в модулях sale, crm и security.

Детали реализации провайдера

Класс должен реализовать методы sendMessage, getShortName, canUse. Подробнее в документации Битрикс.

Хранение настроек и безопасность

Ключи client_id и client_secret хранятся в таблице b_option модуля messageservice. Доступ через \Bitrix\Main\Config\Option::get('messageservice', 'mts_client_id'). Не храните секреты в файлах конфигурации, которые попадают в VCS — используйте .settings_extra.php или переменные окружения.

OAuth-токен кэшируется в \Bitrix\Main\Data\Cache с ключом, привязанным к client_id. При ошибке 401 (токен истёк) провайдер должен автоматически запросить новый токен и повторить отправку — один раз, без рекурсии.

Интеграция с CRM и Sale

После регистрации провайдера SMS через МТС становятся доступны в нескольких точках:

  • Модуль sale — уведомления о смене статуса заказа. Шаблоны задаются в Магазин → Настройки → Статусы заказов → SMS-уведомления. Переменные #ORDER_ID#, #ORDER_STATUS#, #TRACKING_NUMBER# подставляются автоматически.
  • CRM Битрикс24 — если используется коробочный Битрикс24, провайдер появляется в настройках SMS-рассылок и роботах бизнес-процессов. Робот CRM: Отправить SMS позволяет выбрать провайдера МТС.
  • Двухфакторная авторизация — модуль security может использовать SMS для подтверждения входа. Провайдер подключается в настройках OTP.

Что делать при ошибке авторизации OAuth?

При получении HTTP 401 необходимо вызвать \Bitrix\Main\Data\Cache::clean('mts_token') и запросить новый токен. Если ошибка повторяется — проверьте учётные данные в кабинете МТС или срок действия приложения. Рекомендуем настроить уведомление администратору через \CAdminNotify::Add().

Обработка ошибок и мониторинг

МТС API возвращает HTTP 200 даже при частичных ошибках — статус отдельного сообщения нужно проверять в теле ответа. Типичные коды ошибок:

Код Причина Действие
1 Неверный формат номера Валидация на стороне Битрикс перед отправкой
5 Превышен лимит Очередь с повторной отправкой через агент
10 Sender name не зарегистрирован Проверить настройки в кабинете МТС
20 Недостаточно средств Алерт администратору через \CAdminNotify::Add()

Для мониторинга реализуйте агент, который раз в час проверяет статус отправленных сообщений через GET /sms/v1/messages/{id}/status и обновляет записи в b_messageservice_message. Такой агент мониторинга позволяет своевременно выявлять проблемы и автоматически повторять отправку.

Что входит в работу

  • Аудит текущей конфигурации Битрикс и МТС
  • Разработка кастомного провайдера с поддержкой кэширования и повторных попыток
  • Настройка шаблонов SMS для модулей sale и CRM
  • Интеграция с 1С (при необходимости, через CommerceML)
  • Нагрузочное тестирование и оптимизация
  • Документация и обучение
  • Гарантийная поддержка 1 месяц

Типичная экономия времени на разработку составляет до 40%, что снижает затраты на интеграцию. Средняя стоимость поддержки сокращается на 20% после внедрения.

Сроки внедрения

Масштаб Срок Что входит
Только Sale-уведомления 3–4 дня Провайдер, шаблоны статусов, тестирование
Sale + CRM-роботы 5–7 дней + настройка бизнес-процессов, маппинг статусов
Полная интеграция + мониторинг 1–2 недели + агент статусов, алерты, логирование, нагрузочное тестирование

При подключении учитывайте, что МТС Беларусь тарифицирует отдельно транзакционные и рекламные SMS. Рекламные требуют согласия абонента (opt-in) — Битрикс должен проверять флаг UF_SMS_CONSENT в профиле пользователя перед отправкой маркетинговых сообщений. Наша интеграция включает такую проверку по умолчанию.

Свяжитесь с нами для консультации — мы предложим оптимальный вариант под ключ. Закажите интеграцию и получите готовое решение с гарантией качества.