1
0
Fork 0
mirror of synced 2025-04-20 01:21:01 +00:00

add after user register handler

This commit is contained in:
Sergey Chazov 2020-10-19 08:58:14 +03:00
parent 6ffc090692
commit a95d86744d
5 changed files with 75 additions and 30 deletions

View file

@ -15,39 +15,46 @@ function addTelNumber(customerId) {
}
).then(
function(response) {
if (response.data.status === 'error' && response.data.errorMsg !== undefined) {
const errorMsg = 'Ошибка. ' + response.data.errorMsg;
$('#errorMsg').text(errorMsg);
if (response.data.status === 'error' && response.data.msg !== undefined) {
const msgBlock = $('#msg');
msgBlock.text(response.data.msg);
msgBlock.css('color', response.data.msgColor);
}
if (response.data.status === 'activate') {
const msgBlock = $('#regbody');
msgBlock.text(response.data.msg);
msgBlock.css('color', response.data.msgColor);
}
if (response.data.status === 'smsVerification') {
$('#verificationCodeBlock').show();
}
});
}
function sendVerificationCode(){
const verificationCode = $('#verificationCode').val();
function sendVerificationCode() {
const verificationCode = $('#verificationCode').val();
BX.ajax.runAction('intaro:retailcrm.api.loyalty.register.sendVerificationCode',
{
data: {
sessid: BX.bitrix_sessid(),
loyaltyAccount: {
phone: phone,
card: card,
customerId: customerId
}
sessid: BX.bitrix_sessid(),
code: verificationCode
}
}
).then(
function(response) {
if (response.data.status === 'error' && response.data.msg !== undefined) {
const msg = response.data.msg;
$('#msg').text(msg);
}
if (response.data.status === 'activate') {
const msgBlock = $('#regbody');
msgBlock.text(response.data.msg);
msgBlock.css('color', response.data.msgColor);
}
}
)
}

View file

@ -107,7 +107,7 @@ if (
<input type="text" id="verificationCode" placeholder="<?= GetMessage('VERIFICATION_CODE')?>">
<input type="button" onclick="sendVerificationCode()" value="<?= GetMessage('SEND')?>"/>
</div>
<div id="errorMsg" style="color: brown"></div>
<div id="msg"></div>
</div>
<?php } ?>
<?else:?>

View file

@ -57,6 +57,7 @@ class intaro_retailcrm extends CModule
['EVENT_NAME' => 'OnSaleOrderDeleted', 'FROM_MODULE' => 'sale'],
['EVENT_NAME' => 'OnSaleComponentOrderOneStepProcess', 'FROM_MODULE' => 'sale'],
['EVENT_NAME' => 'OnSaleComponentOrderResultPrepared', 'FROM_MODULE' => 'sale'],
['EVENT_NAME' => 'OnAfterUserRegister', 'FROM_MODULE' => 'main'],
];
public const V5 = 'v5';
@ -1647,13 +1648,17 @@ class intaro_retailcrm extends CModule
*/
private function addBonusPaySystem(): void
{
$arrPaySystemAction = PaySystemActionTable::query()
->setSelect(['ID'])
->where([
['ACTION_FILE', '=', self::BONUS_PAY_SYSTEM_CODE],
])
->fetchCollection();
try {
$arrPaySystemAction = PaySystemActionTable::query()
->setSelect(['ID'])
->where([
['ACTION_FILE', '=', self::BONUS_PAY_SYSTEM_CODE],
])
->fetchCollection();
} catch (ObjectPropertyException | ArgumentException | SystemException $exception) {
AddMessage2Log($exception->getMessage());
}
if (count($arrPaySystemAction) === 0) {
$result = PaySystemActionTable::add(
[

View file

@ -26,6 +26,9 @@ use Exception;
use Intaro\RetailCrm\Component\ConfigProvider;
use Intaro\RetailCrm\Repository\PaySystemActionRepository;
use Intaro\RetailCrm\Service\LoyaltyService;
use RetailCrm\ApiClient;
use RetailcrmConfigProvider;
use RetailCrmUser;
/**
* Class EventsHandlers
@ -201,4 +204,19 @@ class EventsHandlers
}
}
}
/**
* @param $arFields
* @return mixed
*/
public function OnAfterUserRegisterHandler($arFields)
{
if (isset($arFields['USER_ID']) && $arFields['USER_ID'] > 0) {
$arFields['ID'] = $arFields['USER_ID'];
$optionsSitesList = RetailcrmConfigProvider::getSitesList();
$api = new ApiClient(RetailcrmConfigProvider::getApiUrl(), RetailcrmConfigProvider::getApiKey());
RetailCrmUser::customerSend($arFields, $api, 'individual', true, $optionsSitesList);
}
}
}

View file

@ -31,7 +31,8 @@ class Register extends Controller
if (!is_numeric($phoneNumber)) {
return [
'status' => 'error',
'errorMsg' => 'Некорректный номер телефона',
'msg' => 'Некорректный номер телефона',
'msgColor' => 'brown'
];
}
@ -69,13 +70,18 @@ class Register extends Controller
if ($createResponse->success === false) {
return [
'status' => 'error',
'errorMsg' => $createResponse->errorMsg,
'msg' => $createResponse->errorMsg,
'msgColor' => 'brown'
];
}
//если участник ПЛ создан и активирован
if ($createResponse->loyaltyAccount->active) {
return ['status' => 'activate'];
return [
'status' => 'activate',
'msg' => 'Регистрация в программе лояльности успешно завершена',
'msgColor' => 'green'
];
}
$activateRequest = new LoyaltyAccountActivateRequest();
@ -89,7 +95,8 @@ class Register extends Controller
return [
'status' => 'error',
'errorMsg' => 'Ошибка запроса',
'msg' => 'Ошибка запроса',
'msgColor' => 'brown'
];
}
@ -105,7 +112,8 @@ class Register extends Controller
if (empty($code) && $lengthCode > self::MIN_CODE_LENGTH && $lengthCode < self::MAX_CODE_LENGTH) {
return [
'status' => 'error',
'errorMsg' => 'Код не введен',
'msg' => 'Код не введен',
'msgColor' => 'brown'
];
}
@ -120,7 +128,8 @@ class Register extends Controller
if ($verificationResult === null) {
return [
'status' => 'error',
'errorMsg' => 'ОШибка запроса на подтверждение',
'msg' => 'ОШибка запроса на подтверждение',
'msgColor' => 'brown'
];
}
@ -129,7 +138,8 @@ class Register extends Controller
return [
'status' => 'error',
'errorMsg' => 'Ошибка. ' . $errMsg,
'msg' => 'Ошибка. ' . $errMsg,
'msgColor' => 'brown'
];
}
@ -137,12 +147,17 @@ class Register extends Controller
&& isset($verificationResult->verification->verifiedAt)
&& !empty($verificationResult->verification->verifiedAt)) {
return [ 'status' => 'complete'];
return [
'status' => 'activate',
'msg' => 'Регистрация в программе лояльности успешно завершена',
'msgColor' => 'green'
];
}
return [
'status' => 'error',
'errorMsg' => 'Ошибка.',
'msg' => 'Ошибка.',
'msgColor' => 'brown'
];
}
}