Всем привет!
В маркетплейсе 1С-Битрикс доступно обновление модуля «». Сегодня я расскажу вам о новом функционале в версии 1.8.2.
Кратко о новом функционале модуля:
В модуле отправка SMS выполняется двумя способами:
Добавлена возможность отправлять отложенные SMS. Дата старта рассылки не ограничена.
Для дополнения функционала модуля используйте методы для отправки SMS доступные в классе Csms4b:
Отправить одиночную SMS
sendSingleSms(string $message, string $to, string $sender): void
Список параметров
message - текст SMS.
to - номер телефона получателя.
sender - символьное имя, заказанное в личном кабинете на сайте .
Ошибки
В случае ошибки выбрасывает исключение Sms4bException.
Пример
Отправить массовую рассылку
sendMultiSms(array $arPhonesMessages, string $sender): void
Список параметров
arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона" => "текст").
sender - символьное имя, заказанное в личном кабинете на сайте .
Ошибки
В случае ошибки выбрасывает исключение Sms4bException.
Пример
Отправить отложенную рассылку
sendDelayedSms(array $arPhonesMessages, string $sender, DateTime $dateStart, DateTime $dateActual): void
Список параметров
arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона"=>"текст").
sender - символьное имя, заказанное в личном кабинете на сайте .
dateStart - дата старта рассылки.
dateActual - дата актуальности рассылки (момент прекращения попыток доставки).
Ошибки
В случае ошибки выбрасывает исключение Sms4bException.
Пример
Статусы отправленных SMS
Для отправленных SMS добавлены статусы. SMS может находится в статусе:
Загрузка входящих SMS
Для приема входящих SMS необходимо арендовать цифровой номер в . Поступившие на номер входящие SMS загружаются на сайт крон-скриптом каждые 15 минут.
Изменения в событиях модуля
Обработчики для событий OnBeforeSmsSend и OnAfterSmsSend будут выполнятся если в настройках модуля SMS4B указано «Обрабатывать старые события модуля».
В новой версии модуля добавлены события:
Модуль запускает обработчики события FinalStatus после изменения статуса SMS на «доставлено» или «не доставлено». Событие FinalStatus может быть использовано:
Событие LoadIncoming
Обработчики события LoadIncoming запускаются после загрузки входящего SMS. Событие может быть использовано для информирования менеджеров о входящем SMS.
Пример
Событие BeforeSmsSend
Обработчики события BeforeSmsSend запускаются до принятия SMS на отправку. Событие BeforeSmsSend может быть использовано для изменения параметров рассылки: номер телефона, текст SMS, отправитель.
Обработчик должен возвращать массив вида array("номер телефона" => "текст"). Если обработчик ничего не возвращает, то SMS не будет отправлена.
Пример
Событие AfterSmsSend
Событие вызывается после того как рассылка принята на отправку. Событие AfterSmsSend может быть использовано для проверки параметров принятой SMS.
Пример
Компонент «Контакты по SMS»
Компонент позволяет посетителю сайта отправить себе SMS с контактной информацией сайта, на котором он находится. Компонент можно разместить в разделе «Контакты». Посетитель вводит свой мобильный номер и нажимает кнопку «Получить контакты по SMS» и получает SMS с контактами. В результате клиент всегда может связаться с вами и поделится контактами с друзьями.
Чтобы настроить компонент перейдите в настройки модуля SMS4B и укажите:
В маркетплейсе 1С-Битрикс доступно обновление модуля «». Сегодня я расскажу вам о новом функционале в версии 1.8.2.
Кратко о новом функционале модуля:
- Отправка SMS на агентах.
- Отправка отложенных рассылок.
- Загрузка статусов отправленных SMS.
- Загрузка входящих SMS.
- Компонент «Контакты по SMS».
- События модуля:
- загружен финальный статус — FinalStatus;
- загружена входящая SMS — LoadIncoming;
- до принятия SMS на отправку — BeforeSmsSend;
- после принятия SMS на отправку — AfterSmsSend.
- загружен финальный статус — FinalStatus;
В модуле отправка SMS выполняется двумя способами:
- на хите;
- на агентах (рекомендуется).
- Указать «Отправлять SMS на агентах». Если агенты работают на хитах, тогда необходимо перевести агенты на cron ().
- Задать параметр «Количество передаваемых сообщений за один запуск агента». Параметр необходимо подбирать исходя из объема отправляемых SMS. Агент запускается каждые 5 минут.
Добавлена возможность отправлять отложенные SMS. Дата старта рассылки не ограничена.
Для дополнения функционала модуля используйте методы для отправки SMS доступные в классе Csms4b:
- отправить одиночную SMS - sendSingleSms;
- отправить массовую рассылку - sendMultiSms;
- отправить отложенную рассылку - sendDelayedSms.
Отправить одиночную SMS
sendSingleSms(string $message, string $to, string $sender): void
Список параметров
message - текст SMS.
to - номер телефона получателя.
sender - символьное имя, заказанное в личном кабинете на сайте .
Ошибки
В случае ошибки выбрасывает исключение Sms4bException.
Пример
try {
$sms4b = new Csms4b();
$message = 'Текст СМС';
$to = '79871234567';
$sender = 'SMS4B-Test';
$sms4b->sendSingleSms($message, $to, $sender);
} catch (\Rarus\Sms4b\Exceptions\Sms4bException $e) {
//обработка ошибки
AddMessage2Log($e->getMessage());
} |
Отправить массовую рассылку
sendMultiSms(array $arPhonesMessages, string $sender): void
Список параметров
arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона" => "текст").
sender - символьное имя, заказанное в личном кабинете на сайте .
Ошибки
В случае ошибки выбрасывает исключение Sms4bException.
Пример
try {
$sms4b = new Csms4b();
$arPhonesMessages = [
'79781234567' => 'Текст первой СМС',
'79789876543' => 'Текст второй СМС'
];
$sender = 'SMS4B-Test';
$sms4b->sendMultiSms($arPhonesMessages, $sender);
} catch (\Rarus\Sms4b\Exceptions\Sms4bException $e) {
//обработка ошибки
AddMessage2Log($e->getMessage());
} |
Отправить отложенную рассылку
sendDelayedSms(array $arPhonesMessages, string $sender, DateTime $dateStart, DateTime $dateActual): void
Список параметров
arPhonesMessages - массив c телефонами и текстами SMS вида array("номер телефона"=>"текст").
sender - символьное имя, заказанное в личном кабинете на сайте .
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 после изменения статуса 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.
Пример
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rarus.sms4b', 'LoadIncoming', 'loadIncomingHandler');
/**
* @param Rarus\Sms4b\Incoming\Incoming $incoming
*/
function loadIncomingHandler($incoming) {
/**
* код обработчика
*/
} |
Событие BeforeSmsSend
Обработчики события BeforeSmsSend запускаются до принятия SMS на отправку. Событие BeforeSmsSend может быть использовано для изменения параметров рассылки: номер телефона, текст SMS, отправитель.
Обработчик должен возвращать массив вида array("номер телефона" => "текст"). Если обработчик ничего не возвращает, то SMS не будет отправлена.
Пример
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rarus.sms4b', 'BeforeSmsSend', 'beforeSmsSendHandler');
/**
* @param array $arPhonesMessages
* @param string| null $sender
* @param string| null $mailEvent
* @param Rarus\Sms4b\Sendings\Source\Source $source
* @param int $entitiesId
*
* @return array
*/
function beforeSmsSendHandler($arPhonesMessages, &$sender, $mailEvent, $source, $entitiesId) {
/**
* код обработчика
*/
return $arPhonesMessages;
} |
Событие AfterSmsSend
Событие вызывается после того как рассылка принята на отправку. Событие AfterSmsSend может быть использовано для проверки параметров принятой SMS.
Пример
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('rarus.sms4b', 'AfterSmsSend', 'afterSmsSendHandler');
/**
* @param \Rarus\Sms4b\Sendings\Sending $sending
*/
function afterSmsSendHandler(Rarus\Sms4b\Sendings\Sending $sending) {
/**
* код обработчика
*/
} |
Компонент «Контакты по SMS»
Компонент позволяет посетителю сайта отправить себе SMS с контактной информацией сайта, на котором он находится. Компонент можно разместить в разделе «Контакты». Посетитель вводит свой мобильный номер и нажимает кнопку «Получить контакты по SMS» и получает SMS с контактами. В результате клиент всегда может связаться с вами и поделится контактами с друзьями.
Чтобы настроить компонент перейдите в настройки модуля SMS4B и укажите:
- текст SMS-сообщения;
- ограничение количества отправок SMS на один номер. (для предотвращения СПАМа);
- номера на которые не распространяется ограничение на количество отправок (опционально).
















