Подключение модуля СМС Оповещений

Как подключить модуль?

Подключение модуля осуществляется стандартными методами подключения API Битрикса:

\Bitrix\Main\Loader::includeModule('bxmaker.smsnotice');

$oManager = \Bxmaker\SmsNotice\Manager::getInstance();
 

Как отправить смс?

Чтобы отправить одиночное смс (sms) достаточно воспользоваться соответствующим методом, указав номер телефона и текст сообщения, при этому номер телефона может быть в произвольном формате, например: +7(999)111-22-33, 8 999 1112233 и тп.

// 4й парметр - идентификато сайта или null (будет использованы настрйоки текущего сайта)
// 5й параметр - имя отправителя или null (используется имя отправителя из настроек)
// 6й параметр - автотранслит false/true (по умолчанию false - не транслитерировать текст смс)
$result = $oManager->send('79991112233', 'какой-то текст для теста отправки в смс');

/* если  смс успешно отправлено */
if($result->isSuccess())
{
    /* Получение статуса отправки, подробнее в описании класса \Bxmaker\SmsNotic\Result */
    $statusCode = $result->getResult();
}
/* иначе, если есть ошибки */
else
{
    /* вывод сообщений об ошибке, ошибках */
   echo implode(', ', $result->getErrorMessages();
}

Как отправить смс используя шаблон?

Для отправки смс шаблонов,  используются соответствующие типы шаблонов. Например, при отправке смс сообщения о новом заказе, требуется отправить информацию как пользователю, так и оператору или администратору магазина, возможно с разным содержимым, но обязательно разные номера телефонов.

Поэтому существует один тип шаблона - Новый заказ (ORDER_NEW), и два шаблона, отличие у которых лишь в поле "Номер получателя". В смс для покупателя  необходимо указать #PHONE#, эта строчка автоматически будет заменена на номер указанный при отправке отправке шаблона, а нашем примере на 79991112233. В шаблоне же для оператора или администратора магазина необходимо указать номер телефона сразу, например 89994445566.

В итоге при выполнении кода, из примера, будет отправлено 1 смс покупателю и 1 смс оператору.

// 3й парметр - идентификато сайта или null (будет использованы настрйоки текущего сайта)
// 4й параметр - имя отправителя или null (используется имя отправителя из настроек)
$result = $oManager->sendTemplate('ORDER_NEW', array(
    'PHONE' => '79991112233',
    'ORDER_ID' => '10268',
    'PRICE' => '5 536'
));
/* результат отправки типа шаблонов всегда успешный, так как содержит детальную информацию по отправке каждого из шаблонов */
if($result->isSuccess())
{
    /* можно получить сразу полный массив подробной информации */
    $data = $result->getMore();

    /* либо по отделльности каждый из 3-х */

    /* всего найдено и обработано шаблонов */
    $count = $result->getMore('count');

    /* если ошибок нет, то $errors == null, иначе массив ошибок (объект \Bxmaker\SmsNotice\Error) полученных при отправке каждого шаблона */
    $errors = $result->getMore('errors');
    if(is_null($errors))
    {
        /* ошибок нет */
    }
    else
    {
       foreach($errors as $obError)
       {
           /* вывод ошибок */
           echo implode(', ', $obError->getErrorMessages()) . '<br>';
       }
    }

    /* и соответственно массив результатов (объект \Bxmaker\SmsNotice\Result)*/
    $results = $result->getMore('results');
    foreach($results as $obResult)
    {
       /* статус отправки */
       $statusCode = $obResult->getResult();

       /* больше информации */
       $arDataItem = $obResult->getMore();
    
       echo 'На номер: ' . $arDataItem['phone'] . ', было отправлено сообщение - ' . $arDataItem['text'] . '<br>';

    }
}

Список типов шаблонов находится на странице - Административный раздел битрикса → Настройки → СМС Оповещения → Список типов шаблонов СМС.

Список шаблонов находится на странице - Административный раздел битрикса→ Настройки → СМС Оповещения → Список шаблонов СМС.

Как отправить смс при наступлении почтового события?

При наступлении почтового события, например регистрация пользователя, оформление заказа, заполнение формы, модуль проверяет наличие смс шаблона. Такие шаблоны в настройках имеют галочку -  Автоматически отправлять при почтовом событии, там же выбирается тип почтового события. 

При наступелнии почтового события вызывается метод, обработка ответа такая же как при отправке обычного шаблона смс

// 3й парметр - идентификато сайта или null (будет использованы настрйоки текущего сайта)
// 4й параметр - имя отправителя или null (используется имя отправителя из настроек)

$result = $oManager->sendTemplateEmail('ORDER_NEW', array(
 'PHONE' => '79991112233',
 'NAME' => 'Евгений',
 'PRICE' => '2000'
 ));