Если в списке поддерживаемых сервисов нет нужного, можете написать в тех поддержку для его добавления.
Если через сервис можно только отправить смс, то в этом случае добавлять сервис в модуль тех поддержка не будет. И вам нужно добавить его самостоятельно. Для этого необходимо написать обработчики событий для отправки смс. Ниже приведен пример реализации.
Код можно разместить в файле /bitrix/php_interface/init.php
// регистрируем обработчики событий
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
"bxmaker.authuserphone",
"onSendCode",
['CBXmakerTools', 'authUserPhoneonSendCode']
);
$eventManager->addEventHandler(
"bxmaker.authuserphone",
"onUserChangePassword",
['CBXmakerTools', 'authUserPhoneonUserChangePassword']
);
$eventManager->addEventHandler(
"bxmaker.authuserphone",
"onUserAdd",
['CBXmakerTools', 'authUserPhoneUserAdded']
);
class CBXmakerTools
{
private static $smsLogin = '**';
private static $smsPass = '****';
private static $smsSender = '***';
/**
* Отправка временного кода
* @param $arFields
*/
public static function authUserPhoneonSendCode(\Bitrix\Main\Event $event)
{
$arFields = (array) $event->getParameter('fields');
if (self::sendSms($arFields['PHONE'], 'Ваш временный код - ' . $arFields['CODE'])) {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
null,
);
} else {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Main\Error('Eroror send sms', 'ERROR_SMS_SEND')
);
}
}
/* после смены пароля */
public static function authUserPhoneonUserChangePassword(\Bitrix\Main\Event $event)
{
$arFields = (array) $event->getParameter('fields');
if (self::sendSms($arFields['PHONE'], 'Ваш новый пароль - ' . $arFields['PASSWORD'])) {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
null,
);
} else {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Main\Error('Eroror send sms', 'ERROR_SMS_SEND')
);
}
}
/* после регистрации */
public static function authUserPhoneUserAdded(\Bitrix\Main\Event $event)
{
$arFields = (array) $event->getParameter('fields');
if (self::sendSms($arFields['PHONE'], 'Вы успешно зарегистрированы на сайте, используйте для входа логин - ' . $arFields['PHONE'] . ' и пароль - ' . $arFields['PASSWORD'])) {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
null
);
} else {
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR,
new \Bitrix\Main\Error('Eroror send sms', 'ERROR_SMS_SEND')
);
}
}
public static function sendSms($phone, $text)
{
$arFields = [
'user' => self::$smsLogin,
'password' => self::$smsPass,
'recipient' => $phone,
'message' => \Bitrix\Main\Text\Encoding::convertEncoding($text, SITE_CHARSET, 'UTF-8')
];
if (self::$smsSender) {
$arFields['sender'] = self::$smsSender;
}
$oHttp = new \Bitrix\Main\Web\HttpClient();
$oHttp->post('https://example.com/api', $arFields); // вместо * - нужно указать адрес API смс сервиса на которые нужно отправлять запросы
return true;
}
}