Отправка SMS через стандартный функционал Битрикс

Отправка SMS через стандартный функционал Битрикс

В 18й версии CMS 1С-Битрикс обновился модуль Служба сообщений и была добавлена возможность отправлять СМС на 2 типа событий: восстановление пароля через СМС и подтверждение номера телефона по СМС. Но что делать, если нам нужно отправить СМС на какое-то другое событие ? Разберем на примере отправку СМС менеджеру интернет магазина при оформлении заказа.

1. Добавляем тип почтового события по адресу Настройки - Настройки продукта - Почтовые и СМС события - Типы событий
Вид события - СМС событие. В Описание размещаем макросы подставляемых значений. Например нам нужно обязательно передать имя заказчика и его телефон.



2. В шаблоны СМС добавляем новый шаблон, указываем необходимые данные. В телефонные номера можно вводить как конкретный номер, так и размещать там макросы для автозамены.



3. Самое интересное. Событие само по себе не вызовется, т.к. система о нем ничего не знает. Поэтому тут есть 2 пути решения вопроса: разместить код вызова непосредственно возле исполняемого события, либо использовать систему обработчиков, и вызывать событие через него.

Приведем пример обработчика:
	 use Bitrix\Main; 
	 Main\EventManager::getInstance()->addEventHandler(
	     'sale',
	     'OnSaleOrderSaved',
	     'mySmsSendOrder'
	 ); 
function mySmsSendOrder(Main\Event $event) {     /** @var Order $order */     $order = $event->getParameter("ENTITY");     $oldValues = $event->getParameter("VALUES");     $isNew = $event->getParameter("IS_NEW");
    $sms = new Bitrix\Main\Sms\Event('SALE_NEW_ORDER_SMS', array(/*массив параметров, которые используем в подстановке*/));     $sms->setSite('s1');//айдишник сайта     $sms->send(array(         "EVENT_NAME" => "SALE_NEW_ORDER_SMS",         "LID" => "s1",         "C_FIELDS" => array(         ),     )); }

Ситуации, в которых нужно отправлять СМС может быть много, поэтому обработчик будет меняться на соответствующий. Либо код отправки СМС можно встраивать непосредственно в требуемое место, и передавать в него нужные параметры вызова.

  • 27.08.2019
Возврат к списку