SMS с сайта в 1С-Битрикс - провайдеры, шаблоны, доставка
SMS - подтема на 35 вопросов из собранных. Спрашивают о двух вещах: как отправить сообщение из кода и почему оно не дошло.
Что общего у этих задач
У отправки два уровня. Высокий работает как почтовые события: код создаёт событие с данными, а текст живёт в шаблоне и правится администратором. Низкий - прямой вызов провайдера с готовым текстом, без шаблонов и подстановок.
Сообщение по умолчанию уходит в очередь, а не сразу. Оно отправляется после завершения запроса, и это сбивает при проверке: код отработал, а сообщения нет ещё несколько секунд.
Провайдеры - это классы с идентификаторами, а не настройки. Список активных отдаёт менеджер службы сообщений, а свой провайдер добавляют наследником базового класса и регистрируют событием.
Доставку сообщения подтверждает провайдер, а не сайт. Успешная отправка из кода означает лишь то, что провайдер принял сообщение в работу. Дальше его судьбу показывает только статус на стороне провайдера или его отчёт.
С чего начать
Начинают с провайдера и его настроек: ключ, имя отправителя, баланс. Проверяют отправку на свой номер прямым вызовом, без шаблонов и событий. Если сообщение дошло, дальше разбирают уже сторону сайта.
Затем выбирают уровень работы. Шаблоны событий подходят там, где текст правит администратор, а прямой вызов - там, где сообщение собирается кодом по сложным правилам.
Отдельно продумывают согласие получателя и время отправки. Ночное сообщение о статусе заказа раздражает сильнее, чем его отсутствие, и жалобы приходят владельцу сайта, а не провайдеру.
Решения подтемы
- Свой провайдер SMS: класс, регистрация, отправка и статусы - наследник базового класса, регистрация событием, отправка и статусы.
- SMS не доходят до получателя: разбор причин - провайдер, очередь, шаблон, формат номера, отказ оператора.
- Подтверждение телефона кодом из SMS: отправка, срок жизни, попытки - генерация кода, хранилище со сроком жизни, привязка к сеансу, лимит попыток.
Частые вопросы
Чем шаблон отличается от прямой отправки?
Шаблон хранит текст и подставляет данные по имени события, а прямая отправка передаёт готовую строку. Текст в шаблоне правит администратор, без правки кода.
Почему сообщение не ушло сразу?
По умолчанию оно попадает в очередь и отправляется после завершения запроса. Для проверки берут прямую отправку без очереди.
Нужен ли договор с оператором связи?
Да, отправка идёт через провайдера, с которым заключают договор и оплачивают сообщения. Платформа только передаёт ему текст и номер.
Можно ли подключить своего провайдера?
Да, наследником базового класса провайдера с регистрацией на событии службы сообщений. После регистрации он появляется в общем списке.
Связанные темы
- СМС из кода: событие и шаблон, прямая отправка, свой провайдер - отправка сообщений из кода целиком
- SMS и очереди сообщений - устройство канала сообщений
- Уведомления покупателю: письма и SMS по статусам заказа - типовой сценарий отправки
- REST и вебхуки - вызовы внешних служб из кода
- Раздел Интеграции