Интеграция с MODX

Наши партнеры разработали компонент MODX для отправки смс и валидации номера телефона

Основные настройки

В личном кабинете активируем API 3.0.

Настройка компонента

  • ID переадресации — используется при валидации номера по SMS, если не 0 – то после успешного завершения пользователь будет переадресован на ID этой страницы.
  • Длина кода – длина кодового слова в SMS сообщении при валидации
  • Символы SMS кода – JSON массив c указанием требуемых символов, которые могут использоваться в коде.
  • Время жизни СМС-кода — время действия СМС кода, указывает через какой интервал будет сгенерирован новый проверочный код для пользователя.
  • Таймаут отправки СМС – время между двумя возможными отправками SMS.
  • От кого СМС – буквенное имя отправителя. Спецсимволы лучше не использовать.
  • Приватный ключ – копируем из ЛК ePochta
  • Публичный ключ – копируем из ЛК ePochta
  • Время жизни СМС — рекомендуем оставить по умолчанию
  • Режим тестирования — при тестировании сообщения будут уходить на сервер ePochta и не отправляться клиенту, если выставить НЕТ – то будет боевой режим и СМС будут отсылаться.
  • URL сервиса — лучше оставить по умолчанию.

Принцип работы:

Компонент позволяет делать простую отправку СМС на определенный номер, для этого достаточно сделать вызов

$ePochta->sendSMS_now($phone, $message, 0))

где $phone - номер телефона в международном формате, $message - текст сообщения, 0 - отправить немедленно

Отправка СМС:

<?php  $message = 'Тест';  $phone=7922; //номер в международном формате, например 79657008900    $ePochta = $modx->getService('epochta', 'ePochta', $modx->getOption('epochta_core_path', null, $modx->getOption('core_path') . 'components/epochta/') . 'model/epochta/', $scriptProperties);  $ePochta->initialize();  if (!($ePochta instanceof ePochta)) exit('Could not initialize ePochta!');    if (!$ePochta->sendSMS_now($phone, $message, 0)) {      //вернется false если сообщение не отправилось      echo "ERROR!";  }

В случае неудачи функция вернет FALSE, а в лог выдастся подробная ошибка с набором данных:

[2014-03-11 22:36:53] (ERROR @ /index.php) [ePochta] Error send sms to [7922], text [Тест] user_id [2]  [2014-03-11 22:36:53] (ERROR @ /index.php) Array  (  [error] => no_good_recipients  [code] => 303  [result] => 464322  )

Сниппет epValidate

Параметры:

  • tplCheck - чанк с формой для валидации номера телефона.
  • tplExists - чанк для вывода формы, когда у пользователя уже есть привязанный номер телефона (Mobile Phone).

Принцип работы:

Все зависит от авторизации пользователя.Если он авторизирован – делается проверка на наличие mobilephone в его профиле.Если такое поле пустое – то тогда будет выведена форма с подтверждением сотового телефона, если нет – то будет выведен чанк tplExists.

Если номера нет, то может выдастся как первая часть формы (с вводом номера) так и вторая – с полем для ввода кода. Все зависит от параметра таймаута отправки SMS сообщений. Именно исходя из этого параметра и рассчитывается таймер обратного отсчета для повторной отправки кода или смены номера.

Сниппет использует процессоры, а процессор в ходе своей работы вызывает 4 разных событий:

  • OnBeforeCodeValidate - событие до валидации кода
  • OnAfterCodeValidate - событие после успешной валидации кода
  • OnBeforePhoneCheck - соответственно событие до валидации номера
  • OnAfterPhoneCheck - событие после успешного ввода номера

В стандартной поставке идёт плагин, который проверяет уникальность номера телефона, а так же отправляет смс и, в случае успешного подтверждения, меняет номер в профиле.

Заказать плагин

По запросу предоставляется необходимое количество дополнительных смс для тестирования сервиса массовых смс-уведомлений ePochta SMS.

Есть вопрос?

  • 8 (800) 555-09-63
  • Бесплатно по России

Александр



skype: alexandr.romanow26
sales@epochta.ru

Алексей



skype: aleksey.klochko1
sales@epochta.ru