Авторизация по номеру телефона

\BXmaker\AuthUserPhone\Service

\BXmaker\AuthUserPhone\Service

namespace BXmaker\AuthUserPhone;
class Service
{
    //...
}

Константы

ACTION_AUTH

Дефолтное значение для действия которое подтверждаем, по умолчанию авторизация

\BXmaker\AuthUserPhone\Service::ACTION_AUTH = 'AUTH'

Методы

calculateTimeout

Вернет оставшееся время на ожидание в секундах до следующей попытки

/**
 * @param $waitTimeout - таймаут между запросами
 * @param $dateTimeFrom - по умолчанию текущее
 * @return int
 */
public function calculateTimeout($waitTimeout, \Bitrix\Main\Type\DateTime $dateTimeFrom = null);

callback

Обработчик оповещений от сервисов, меняющий соответствующие отметки в истории подтверждений

public function callback();

checkBotCall

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

/**
 * @param $phone
 * @param $code
 * @return Result
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function checkBotCall($phone, $code);

checkSmsCode

Проверка валидности кода

/**
 * @param $phone
 * @param $code
 * @param null $siteId
 * @return Result
 * @throws \Bitrix\Main\ObjectException
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function checkSmsCode($phone, $code);

checkUserCall

Проверка был ли выполнен звонок пользователя в нашей базе данных, в которой результаты меняются в callback

/**
 * @param $phone - телефон пользователя
 * @param $callTo - номер на который нужно позвонить
 * @return Result
 * @throws \Bitrix\Main\IO\FileNotFoundException
 * @throws \Bitrix\Main\LoaderException
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function checkUserCall($phone, $callTo);

generateCode

Генерация кода

/**
 * @return string
 */
public function generateCode($len);

getAction

Вернет код действия

/**
 * @return mixed
 */
public function getAction();

getConfirmTypeName

Вернет название типа действия

/**
 * @param int $confirmType
 * @return mixed|string
 */
public function getConfirmTypeName($confirmType = \BXmaker\AuthUserPhone\Manager::CONFIRM_TYPE_SMS_CODE);

getHandlersClasses

Возвращает массив доступных сервисов, как собственных так и сторонних

/**
 * @return array
 * @throws \Bitrix\Main\IO\FileNotFoundException
 */
protected static function getHandlersClasses();

getHtmlSelect

Возвращает html select для вставки в форму

/**
 * @param $name
 * @param string $val
 * @param null $id
 * @return string
 * @throws \Bitrix\Main\LoaderException
 * @throws \Bitrix\Main\IO\FileNotFoundException
 */
public function getHtmlSelect($name, $val = '', $id = null);

getInstance

/**
 * @return \BXmaker\AuthUserPhone\Service
 */
public static final function getInstance();

getMessage

Вернет языкозависимое сообщение

/**
 * @param $name
 * @param array $arReplace
 * @return mixed|string
 */
public function getMessage($name, $arReplace = []);

getObjectById

Возвращает объект класса сервиса по его ID из списка сервисов (из базы)

/**
 * @param $serviceId
 * @return \BXmaker\AuthUserPhone\Service\Base|null
 * @throws \Bitrix\Main\IO\FileNotFoundException
 * @throws \Bitrix\Main\LoaderException
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function getObjectById($serviceId);

getObjectByItem

Вернет объект класса сервиса на основе записи из базы данных

/**
 * @param array $arItem
 * @return \BXmaker\AuthUserPhone\Service\Base|null
 * @throws \Bitrix\Main\LoaderException
 * @throws \Bitrix\Main\IO\FileNotFoundException
 */
public function getObjectByItem(array $arItem);

getServiceArray

Возвращает массив сервисов доступных

/**
 * @return array
 * @throws \Bitrix\Main\LoaderException
 * @throws \Bitrix\Main\IO\FileNotFoundException
 */
public function getServiceArray();

getServiceBotCall

Возвращает объект класса сервиса для звонка от бота

/**
 * @return \BXmaker\AuthUserPhone\Service\Base|null
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function getServiceBotCall();

getServiceList

Вернет список сервисов, [{id => name}]

/**
 * @return array
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function getServiceList();

getServiceSms

Возвращает объект сервиса для отправки смс либо false если не найден

/**
 * @return \BXmaker\AuthUserPhone\Service\Base|null
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function getServiceSms();

getServiceUserCall

Возвращает объект класса сервиса для приема звонка от пользователя

/**
 * @return \BXmaker\AuthUserPhone\Service\Base|null
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function getServiceUserCall();

history

Вернет объект класса для работы с историей проверок, проверять отправленные коды с полученными от пользователя и тп

/**
 * @return \BXmaker\AuthUserPhone\Service\History
 */
public function history();

importUserCallStatusesAgent

Проверка статусов звонков пользователя, при отсутствии callback пачками

public function importUserCallStatusesAgent();

manager

Вернет объект основного класса

/**
 * @return \BXmaker\AuthUserPhone\Manager
 */
public function manager();

resetAction

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

/**
 * @return $this
 */
public function resetAction();

sendSms

Отправка смс с текстом

/**
 * @param $phone - номер телефона пользователя
 * @param $code - код
 * @param null $textTemplate - Временный код - #CODE#
 * @return Result
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function sendSms($phone, $text);

setAction

Установка кода действия на операции

/**
 * @param string $action - код действия, по умолчанию AUTH
 * @return $this
 */
public function setAction($action);

startBotCall

Запрос звонка от бота

Вернет результат с доп. данными [HISTORY_ID:int, TIMEOUT:int, LENGTH:int, MSG:string]

/**
 * @param $phone - номер телефона пользователя
 * @return Result
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function startBotCall($phone);

startSmsCode

Старт подтверждения смс кодом - будет отправлен кода на указанный номер телефона через настроенный смс сервис в модуле. В случае отсутствия настроенного смс сервиса, будет произведена отправка кода через

  • модуль смс оповещений,
  • встроенный смс сервисы Битрикса
  • кастомный вариант отправки посредствам обработчика события

Вернет результат с доп данными [HISTORY_ID:int, TIMEOUT:int, LENGTH:init, MSG:string]

/**
 * @param $phone - подготовленный номер телефона
 * @return Result
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function startSmsCode($phone);

startUserCall

Запрос номера телефона на который должен позвонить пользователь для подтверждения действия

Вернет результат с доп. данными [HISTORY_ID:int, TIMEOUT:int, CALL_TO:string, MSG:string]

/**
 * @param $phone - номер телефона пользователя
 * @return Result
 * @throws \Bitrix\Main\ObjectPropertyException
 * @throws \Bitrix\Main\SystemException
 * @throws \Bitrix\Main\ArgumentException
 */
public function startUserCall($phone);

table

Вернет объект для работы с таблицей сервисов, через которые происходит подтверждение телефона - смс код, звонок от робота и тп

/**
 * @return ServiceTable
 */
public function table();