СМС оповещения

Классы и методы

В данной документации не приводится полный список методов для классов, а лишь основаня часть. Остальные же имеют пояснения в исходном коде классов модуля.

В модуле имеется ряд классов, для работы с модулем.

Список классов

Класс для работы с ошибками:

\Bxmaker\SmsNotice\Error

Класс используемый для возвращения результата выполнения операций

\Bxmaker\SmsNotice\Result

Основной класс для работы с модулем - отправка одиночных смс или по шаблону

\Bxmaker\SmsNotice\Manager

Работа с сообщениями отправленными, получение статуса отправки, сервиса через который отправлялось сообщение, его текст, номер телефона сайт

\Bxmaker\SmsNotice\ManagerTable

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

\Bxmaker\SmsNotice\Service

Сохранение добавление. удаление сервиса из базы данных, в которой хранятся данные для подключения к сервису и отправки смс

\Bxmaker\SmsNotice\ServiceTable

Добавление, удаление, редактирование шаблонов смс

\Bxmaker\SmsNotice\TemplateTable

Добавление, удаление, редактирование типа шаблона

\Bxmaker\SmsNotice\TypeTable

Добавление, удаление, редактирование привязки шаблона к сайту

\Bxmaker\SmsNotice\SiteTable

Агент для проверки статусов сообщений, удаление старых смс

\Bxmaker\SmsNotice\Agent

Обработчик для реагирования на заданные события

\Bxmaker\SmsNotice\Handler

Manager

Класс \Bxmaker\SmsNotice\Manager используется для отправки одиночных смс, отправки смс по шаблону, инициализации конкретного сервиса, для отправки смс через его шлюзы, получения баланса, проверки валидности номера и так далее, это основной класс для работы с модулем.

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

send

Метод send() используется для отправки одиночных смс, возвращает объек класса Result

Парамтеры:

  1. номер телефона, в произвольном формате
  2. текст смс
  3. идентификатор сайта (по умолчанию текущий сайт)
  4. имя отправителя (по умоляанию из настроек)
  5. Транслитерировать смс (по умолчнию нет)
$result = $oManager->send('79991112233', 'какой-то текст для теста отправки в смс');

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

sendTemplate

Метод sendTemplate отправляет все активные шаблоны смс заданного типа, возвращает объект класса Result

Парамтеры:

  1. Код типа шаблонов смс
  2. Массив автозамен
  3. Идентификатор сайта (по умолчанию текущий)
  4. Имя отправителя (по умолчанию из настроек)
$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

Для получения баланса существует метод getBalance(), который возвращает объект класса Result с информацией о балансе на аккаунте (подключенного в данный момент сервиса, подключается автоматически активный при инициализации) или ошибки возникшие.

$oResult = $oManager->getBalance();
if($oResult->isSuccess())
{
   echo 'Баланс: ' . $oResult->getResult();
}
else
{
   /* вывод сообщений об ошибке, ошибках */
   echo implode(', ', $result->getErrorMessages());
}

getPreparePhone

Метод getPreparePhone() используется для подготовки номера телефона для использования, убираются все символы кроме цифр, заменяются коды страны и тд.

/* выведет 79991112233 */
echo $oManager->getPreparePhone('8(999)111-22_33');

Result

Класс \Bxmaker\SmsNotice\Result используется для возвращения результата выполнения того или иного действия.

$oResult = new \Bxmaker\SmsNotice\Result('Здесь какой то результат, например статус отправки смс');

/* или в случае наличия ошибки, можно указать только текст ошибки, а можно и код ошибки, дополнительную информацию по ошибке */
$oResult = new \Bxmaker\SmsNotice\Result(new \Bxmaker\SmsNotice\Error('текст ошибки'));

setResult

В экземпляре объекта можно установить значение результирующее как сразу, при инициализации, так и после используя метод setResult()

$oResult->setResult('результат, например код статуса отправки смс');

setError

Также помимо установки результат, можно отметить в любой момент что появилась ошибка, используя метод setError()

$oResult->setError(new \Bxmaker\SmsNotice\Error('текст', 'код', array('больше' => 'информации')));

setMore

Также к результату можно добавить дополнительную информацию, используя метод setMore()

$oResult->setMore('ключ', 'значение');

isSuccess

Для проверки наличия ошибок используется метод isSuccess()

if($oResult->isSuccess())
{
   /* ошибок нет */
}
else
{
   /* ошибки есть */
}

getResult

Для получения результата используется метод getResult()

$oResult->getResult();

getMore

Для получения дополнительной информации - getMore(). По умолчанию возвращается весь масси допольнительных данных. Также можно получить сразу значени по ключу.

$oResult->getMore();
$oResult->getMore('phone');

getErrors

Для получения ошибок используется метод getErrors()

$arErrors = $oResult->getErrors();
foreach($arErrors as $error)
{
   $error->getMessage();
}

getErrorMessages

Также можно поучить сразу массив с сообщениями об ошибках - getErrorMessages()

echo implode(', <br> ', $oResult->getErrorMessages());

Error

Класс \Bxmaker\SmsNotice\Error используется для стандартизации вывода ошибок, в результате в качестве ошибки возвращается экземпляр класса имеющий всего 3 метода.

getMessage

Для получения текста ошибки существует метод getMessage()

echo $oError->getMessage();

getCode

Получение кода ошибки - getCode()

echo $oError->getCode();

getMore

Получение массива с дополнительной информацией getMore()

echo '<pre>';
print_r($oError->getMore());
echo '</pre>';