Класс - Manager

Для чего нужен класс \Bxmaker\SmsNotice\Manager?

Класс используется для  отправки одиночных смс,  отправки смс по шаблону, инициализации конкретного сервиса, для отправки смс через его шлюзы, получения баланса, проверки валидности номера.$oManager = \BXmaker\SmsNotice\Manager::getInstance();

Методы для работы с классом

Отправка одиночного смс

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

3й параметр - идентификатор сайта (null -по умолчанию текущий)  настройки смс сервиса которого будут использоваться для отправки - s1 например
4й парамтер- имя отправителя (null - по умолчанию используется из настроек) - BXmaker  например
5й параметр - транслитерировать при отправке (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.

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

4й парамтер- имя отправителя (null - по умолчанию используется из настроек) - BXmaker  например

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

$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>';

    }
}

Получение баланса

Для получения баланса существует метод getBalance(), который возвращает экземпляр объект \Bxmaker\SmsNotice\Result с информацией о балансе на аккаунте (подключенного в данный момент сервиса, подключается автоматически активный при инициализации)  или ошибки возникшие.$oResult = $oManager->getBalance();
if($oResult->isSuccess())
{
   echo 'Баланс: ' . $oResult->getResult();
}
else
{
   /* вывод сообщений об ошибке, ошибках */
   echo implode(', ', $result->getErrorMessages());
}

Подготовка номера для использования

Метод getPreparePhone используется для подготовки номера телефона для использования, убираются все символы кроме цифр. Если номер не попадает ни под один шаблон с вариацией номера и начинается с 8, то  первая цифра будет заменена на 7./* вывод 79991112233 */
echo $oManager->getPreparePhone('8 999 111-22_33');