В маркетплейсе 1С-Битрикс доступно обновление модуля «SMS4B - СМС для бизнеса». Сегодня я расскажу вам о новом функционале в версии 1.8.2.
Кратко о новом функционале модуля:
Отправка SMS на агентах.
Отправка отложенных рассылок.
Загрузка статусов отправленных SMS.
Загрузка входящих SMS.
Компонент «Контакты по SMS».
События модуля:
загружен финальный статус — FinalStatus;
загружена входящая SMS — LoadIncoming;
до принятия SMS на отправку — BeforeSmsSend;
после принятия SMS на отправку — AfterSmsSend.
Изменения в отправке SMS
В модуле отправка SMS выполняется двумя способами:
на хите;
на агентах (рекомендуется).
Чтобы отправку SMS перевести на агенты в настройках модуля SMS4B необходимо:
Указать «Отправлять SMS на агентах». Если агенты работают на хитах, тогда необходимо перевести агенты на cron (инструкция).
Задать параметр «Количество передаваемых сообщений за один запуск агента». Параметр необходимо подбирать исходя из объема отправляемых SMS. Агент запускается каждые 5 минут.
Добавлена возможность отправлять отложенные SMS. Дата старта рассылки не ограничена.
Для дополнения функционала модуля используйте методы для отправки SMS доступные в классе Csms4b:
Список параметров arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона" => "текст"). sender - символьное имя, заказанное в личном кабинете на сайте www.sms4b.ru.
Ошибки В случае ошибки выбрасывает исключение Sms4bException.
Список параметров arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона"=>"текст"). sender - символьное имя, заказанное в личном кабинете на сайте www.sms4b.ru. dateStart - дата старта рассылки. dateActual - дата актуальности рассылки (момент прекращения попыток доставки).
Ошибки В случае ошибки выбрасывает исключение Sms4bException.
Пример
try {
$sms4b = new Csms4b();
$arPhonesMessages = [
'79781234567' => 'Текст первой СМС',
'79789876543' => 'Текст второй СМС',
];
$sender = 'SMS4B-Test';
$dateStart = new \DateTime('2019-08-20 10:00');
$dateFinish = new \DateTime('2019-08-20 18:00');
$sms4b->sendDelayedSms($arPhonesMessages, $sender, $dateStart, $dateFinish);
} catch (\Rarus\Sms4b\Exceptions\Sms4bException $e) {
//обработка ошибки
AddMessage2Log($e->getMessage());
}
Статусы отправленных SMS
Для отправленных SMS добавлены статусы. SMS может находится в статусе:
создана — SMS еще не передана на сервис;
отправляется — SMS передана на сервис;
доставлено — SMS доставлена абоненту;
не доставлено — SMS не доставлена абоненту;
отвергнуто — сервис не принял SMS, причина указывается в столбце результат отправки.
Загрузка входящих SMS
Для приема входящих SMS необходимо арендовать цифровой номер в личном кабинете. Поступившие на номер входящие SMS загружаются на сайт крон-скриптом каждые 15 минут.
Изменения в событиях модуля
Обработчики для событий OnBeforeSmsSend и OnAfterSmsSend будут выполнятся если в настройках модуля SMS4B указано «Обрабатывать старые события модуля».
В новой версии модуля добавлены события:
FinalStatus — загружен финальный статус SMS;
LoadIncoming — загружено входящее SMS;
BeforeSmsSend — до принятия SMS на отправку;
AfterSmsSend — после принятия SMS на отправку.
Событие FinalStatus
Модуль запускает обработчики события FinalStatus после изменения статуса SMS на «доставлено» или «не доставлено». Событие FinalStatus может быть использовано:
для уведомления менеджера о недоставленной SMS;
если SMS не доставлена, то отправить клиенту email.
Пример
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rarus.sms4b', 'FinalStatus', 'finalStatusHandler');
/**
* @param Rarus\Sms4b\Sendings\Messages\Message $message
* @param Rarus\Sms4b\Sendings\Messages\Status $status
*/
function finalStatusHandler($message, $status) {
if ($status->isNotDelivered()) {
//уведомление клиента по почте
}
Событие LoadIncoming
Обработчики события LoadIncoming запускаются после загрузки входящего SMS. Событие может быть использовано для информирования менеджеров о входящем SMS.
Обработчики события BeforeSmsSend запускаются до принятия SMS на отправку. Событие BeforeSmsSend может быть использовано для изменения параметров рассылки: номер телефона, текст SMS, отправитель.
Обработчик должен возвращать массив вида array("номер телефона" => "текст"). Если обработчик ничего не возвращает, то SMS не будет отправлена.
Компонент позволяет посетителю сайта отправить себе SMS с контактной информацией сайта, на котором он находится. Компонент можно разместить в разделе «Контакты». Посетитель вводит свой мобильный номер и нажимает кнопку «Получить контакты по SMS» и получает SMS с контактами. В результате клиент всегда может связаться с вами и поделится контактами с друзьями.
Чтобы настроить компонент перейдите в настройки модуля SMS4B и укажите:
текст SMS-сообщения;
ограничение количества отправок SMS на один номер. (для предотвращения СПАМа);
номера на которые не распространяется ограничение на количество отправок (опционально).
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».