add legn vars in template
This commit is contained in:
parent
7a4fac7f8e
commit
6ffc090692
12 changed files with 246 additions and 153 deletions
|
@ -3020,8 +3020,21 @@ class ApiClient
|
|||
public function activateLoyaltyAccount(int $loyaltyId): ApiResponse
|
||||
{
|
||||
return $this->client->makeRequest(
|
||||
"/api/v5/loyalty/account/".$loyaltyId."/activate",
|
||||
"/loyalty/account/".$loyaltyId."/activate",
|
||||
Client::METHOD_POST
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $request
|
||||
* @return \RetailCrm\Response\ApiResponse
|
||||
*/
|
||||
public function sendVerificationCode(array $request): ApiResponse
|
||||
{
|
||||
return $this->client->makeRequest(
|
||||
"/verification/sms/confirm",
|
||||
Client::METHOD_POST,
|
||||
$request
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
<?
|
||||
$MESS ['USER_PROPERTY_NAME'] = "User properties section title";
|
||||
?>
|
|
@ -1,63 +0,0 @@
|
|||
<?
|
||||
$MESS['AUTH_NONSECURE_NOTE'] = "The password will be sent in open form. Enable JavaScript in your web browser to enable password encryption.";
|
||||
$MESS['AUTH_REGISTER'] = "Registration";
|
||||
$MESS['AUTH_REQ'] = "Required fields.";
|
||||
$MESS['AUTH_SECURE_NOTE'] = "The password will be encrypted before it is sent. This will prevent the password from appearing in open form over data transmission channels.";
|
||||
$MESS['MAIN_REGISTER_AUTH'] = "You have been registered and authorized successfully.";
|
||||
$MESS['REGISTER_CAPTCHA_PROMT'] = "CAPTCHA image characters";
|
||||
$MESS['REGISTER_CAPTCHA_TITLE'] = "Spam bot protection (CAPTCHA)";
|
||||
$MESS['REGISTER_EMAIL_WILL_BE_SENT'] = "A registration confirmation request will be sent to the specified e-mail address.";
|
||||
$MESS['REGISTER_FIELD_AUTO_TIME_ZONE'] = "Time Zone";
|
||||
$MESS['REGISTER_FIELD_CONFIRM_PASSWORD'] = "Password confirmation";
|
||||
$MESS['REGISTER_FIELD_EMAIL'] = "E-mail";
|
||||
$MESS['REGISTER_FIELD_LAST_NAME'] = "Last Name";
|
||||
$MESS['REGISTER_FIELD_LOGIN'] = "Login (min. 3 characters)";
|
||||
$MESS['REGISTER_FIELD_NAME'] = "Name";
|
||||
$MESS['REGISTER_FIELD_PASSWORD'] = "Password";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_BIRTHDAY'] = "Birthday";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_CITY'] = "City";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_COUNTRY'] = "Country";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_FAX'] = "Fax";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_GENDER'] = "Gender";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_ICQ'] = "ICQ";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_MAILBOX'] = "Mailbox";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_MOBILE'] = "Mobile";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_NOTES'] = "Notes";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PAGER'] = "Pager";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PHONE'] = "Phone";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PHOTO'] = "Photo";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_PROFESSION'] = "Job Title";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_STATE'] = "State";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_STREET'] = "Address";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_WWW'] = "Web page";
|
||||
$MESS['REGISTER_FIELD_PERSONAL_ZIP'] = "Zip code";
|
||||
$MESS['REGISTER_FIELD_PHONE_NUMBER'] = "Phone number";
|
||||
$MESS['REGISTER_FIELD_SECOND_NAME'] = "Middle Name";
|
||||
$MESS['REGISTER_FIELD_TITLE'] = "Salutation";
|
||||
$MESS['REGISTER_FIELD_WORK_CITY'] = "City";
|
||||
$MESS['REGISTER_FIELD_WORK_COMPANY'] = "Company";
|
||||
$MESS['REGISTER_FIELD_WORK_COUNTRY'] = "Country";
|
||||
$MESS['REGISTER_FIELD_WORK_DEPARTMENT'] = "Department";
|
||||
$MESS['REGISTER_FIELD_WORK_FAX'] = "Fax";
|
||||
$MESS['REGISTER_FIELD_WORK_LOGO'] = "Company logo";
|
||||
$MESS['REGISTER_FIELD_WORK_MAILBOX'] = "Mailbox";
|
||||
$MESS['REGISTER_FIELD_WORK_NOTES'] = "Notes";
|
||||
$MESS['REGISTER_FIELD_WORK_PAGER'] = "Pager";
|
||||
$MESS['REGISTER_FIELD_WORK_PHONE'] = "Phone";
|
||||
$MESS['REGISTER_FIELD_WORK_POSITION'] = "Position";
|
||||
$MESS['REGISTER_FIELD_WORK_PROFILE'] = "Profile";
|
||||
$MESS['REGISTER_FIELD_WORK_STATE'] = "State";
|
||||
$MESS['REGISTER_FIELD_WORK_STREET'] = "Address";
|
||||
$MESS['REGISTER_FIELD_WORK_WWW'] = "Web page";
|
||||
$MESS['REGISTER_FIELD_WORK_ZIP'] = "Zip code";
|
||||
$MESS['USER_DONT_KNOW'] = "(unknown)";
|
||||
$MESS['USER_FEMALE'] = "Female";
|
||||
$MESS['USER_MALE'] = "Male";
|
||||
$MESS['main_profile_time_zones_auto'] = "Auto Time Zone:";
|
||||
$MESS['main_profile_time_zones_auto_def'] = "(default)";
|
||||
$MESS['main_profile_time_zones_auto_no'] = "No, select from list";
|
||||
$MESS['main_profile_time_zones_auto_yes'] = "Yes, use browser settings";
|
||||
$MESS['main_profile_time_zones_zones'] = "Time Zone:";
|
||||
$MESS['main_register_sms'] = "SMS confirmation code:";
|
||||
$MESS['main_register_sms_send'] = "Submit";
|
||||
?>
|
|
@ -64,3 +64,8 @@ $MESS["UF_REG_IN_PL_INTARO"] = "Зарегистрироваться в прог
|
|||
$MESS["UF_AGREE_PL_INTARO"] = "программы лояльности:";
|
||||
$MESS["I_AM_AGREE"] = "Я согласен с условиями";
|
||||
$MESS["UF_PD_PROC_PL_INTARO"] = "обработки персональных данных:";
|
||||
$MESS["LP_CARD_NUMBER"] = "Номер карты программы лояльности";
|
||||
$MESS["SEND"] = "Отправить";
|
||||
$MESS["VERIFICATION_CODE"] = "Код подтверждения";
|
||||
$MESS["SEND_VERIFICATION_CODE"] = "Отправьте код подтверждения";
|
||||
$MESS["REG_LP_MESSAGE"] = "Для завершения регистрации в программе лояльности введите номер телефона и номер карты программы лояльности";
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
function addTelNumber(customerId) {
|
||||
const phone = $('#loyaltyRegPhone').val();
|
||||
const card = $('#loyaltyRegCard').val();
|
||||
console.log(phone);
|
||||
console.log(card);
|
||||
|
||||
BX.ajax.runAction('intaro:retailcrm.api.loyalty.register.accountCreate',
|
||||
{
|
||||
|
@ -16,7 +14,40 @@ console.log(card);
|
|||
}
|
||||
}
|
||||
).then(
|
||||
function(data) {
|
||||
function(response) {
|
||||
if (response.data.status === 'error' && response.data.errorMsg !== undefined) {
|
||||
const errorMsg = 'Ошибка. ' + response.data.errorMsg;
|
||||
$('#errorMsg').text(errorMsg);
|
||||
}
|
||||
|
||||
if (response.data.status === 'activate') {
|
||||
|
||||
}
|
||||
|
||||
if (response.data.status === 'smsVerification') {
|
||||
$('#verificationCodeBlock').show();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
).then(
|
||||
function(response) {
|
||||
|
||||
}
|
||||
)
|
||||
}
|
|
@ -78,7 +78,6 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
});
|
||||
</script>
|
||||
|
||||
|
||||
<div class="bx-auth-reg">
|
||||
|
||||
<?if($USER->IsAuthorized()):?>
|
||||
|
@ -97,14 +96,18 @@ if (
|
|||
&& (int)$arUser['UF_PD_PROC_PL_INTARO'] === 1
|
||||
) { ?>
|
||||
<div id="regbody">
|
||||
<b>Для завершения регистрации в программе лояльности введите номер телефона и номер карты</b><br>
|
||||
<b><?= GetMessage('REG_LP_MESSAGE')?></b><br>
|
||||
<input type="tel" id="loyaltyRegPhone" placeholder="+7 (900) 000-00-00">
|
||||
<br>
|
||||
<input type="text" id="loyaltyRegCard" placeholder="Номер карты">
|
||||
<input type="button" onclick="addTelNumber(<?=$USER->GetID()?>)" value="Отправить"/>
|
||||
<input type="text" id="loyaltyRegCard" placeholder="<?= GetMessage('LP_CARD_NUMBER')?>">
|
||||
<input type="button" onclick="addTelNumber(<?=$USER->GetID()?>)" value="<?= GetMessage('SEND')?>"/>
|
||||
<br>
|
||||
<div id="confirmationCode" style="display: none;">
|
||||
<div id="verificationCodeBlock" style="display: none;">
|
||||
<b><?= GetMessage('SEND_VERIFICATION_CODE')?></b><br>
|
||||
<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>
|
||||
<?php } ?>
|
||||
<?else:?>
|
||||
|
|
|
@ -1320,20 +1320,27 @@ class intaro_retailcrm extends CModule
|
|||
false
|
||||
);
|
||||
|
||||
$lpTemplatePath = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/local/templates/.default/components/bitrix/sale.order.ajax/intaro.retailcrm';
|
||||
$lpTemplateNames = [
|
||||
'sale.order.ajax',
|
||||
'main.register',
|
||||
];
|
||||
|
||||
if (!file_exists($lpTemplatePath)) {
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/bitrix/modules/intaro.retailcrm/install/export/local/components/intaro/sale.order.ajax/templates/.default';
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom,
|
||||
$lpTemplatePath,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
foreach ($lpTemplateNames as $lpTemplateName){
|
||||
$lpTemplatePath = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/local/templates/.default/components/bitrix/' . $lpTemplateName . '/intaro.retailcrm';
|
||||
|
||||
if (!file_exists($lpTemplatePath)) {
|
||||
$pathFrom = $_SERVER['DOCUMENT_ROOT']
|
||||
. '/bitrix/modules/intaro.retailcrm/install/export/local/components/intaro/' . $lpTemplateName . '/templates/.default';
|
||||
|
||||
CopyDirFiles(
|
||||
$pathFrom,
|
||||
$lpTemplatePath,
|
||||
true,
|
||||
true,
|
||||
false
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1514,31 +1521,55 @@ class intaro_retailcrm extends CModule
|
|||
{
|
||||
$this->addCustomUserFields(
|
||||
[
|
||||
"UF_REG_IN_PL_INTARO",
|
||||
"UF_AGREE_PL_INTARO",
|
||||
"UF_PD_PROC_PL_INTARO",
|
||||
"UF_EXT_REG_PL_INTARO",
|
||||
[
|
||||
'name' => "UF_CARD_NUM_INTARO",
|
||||
'title' => GetMessage('UF_CARD_NUMBER_INTARO_TITLE'),
|
||||
],
|
||||
],
|
||||
'string'
|
||||
);
|
||||
|
||||
$this->addCustomUserFields(
|
||||
[
|
||||
[
|
||||
'name' => "UF_REG_IN_PL_INTARO",
|
||||
'title' => GetMessage('UF_REG_IN_PL_INTARO_TITLE'),
|
||||
],
|
||||
[
|
||||
'name' => "UF_AGREE_PL_INTARO",
|
||||
'title' => GetMessage('UF_AGREE_PL_INTARO_TITLE'),
|
||||
],
|
||||
[
|
||||
'name' => "UF_PD_PROC_PL_INTARO",
|
||||
'title' => GetMessage('UF_PD_PROC_PL_INTARO_TITLE'),
|
||||
],
|
||||
[
|
||||
'name' => "UF_EXT_REG_PL_INTARO",
|
||||
'title' => GetMessage('UF_EXT_REG_PL_INTARO_TITLE'),
|
||||
],
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $fieldNames
|
||||
* @param $fields
|
||||
* @param string $filedType
|
||||
*/
|
||||
public function addCustomUserFields($fieldNames, $filedType = 'boolean'): void
|
||||
public function addCustomUserFields($fields, $filedType = 'boolean'): void
|
||||
{
|
||||
foreach ($fieldNames as $filedName) {
|
||||
$arProps = [
|
||||
"ENTITY_ID" => 'USER',
|
||||
"FIELD_NAME" => $filedName,
|
||||
"USER_TYPE_ID" => $filedType,
|
||||
"MULTIPLE" => "N",
|
||||
"MANDATORY" => "N"
|
||||
foreach ($fields as $filed) {
|
||||
$arProps = [
|
||||
"ENTITY_ID" => 'USER',
|
||||
"FIELD_NAME" => $filed['name'],
|
||||
"USER_TYPE_ID" => $filedType,
|
||||
"MULTIPLE" => "N",
|
||||
"MANDATORY" => "N",
|
||||
"EDIT_FORM_LABEL" => ["ru" => $filed['title']],
|
||||
|
||||
];
|
||||
$obUserField = new CUserTypeEntity;
|
||||
$dbRes = CUserTypeEntity::GetList([], ["FIELD_NAME" => $filedName])->fetch();
|
||||
|
||||
$dbRes = CUserTypeEntity::GetList([], ["FIELD_NAME" => $filed['name']])->fetch();
|
||||
|
||||
if (!$dbRes['ID']) {
|
||||
$obUserField->Add($arProps);
|
||||
}
|
||||
|
|
|
@ -19,6 +19,12 @@ $MESS ['AGREEMENT_PERSONAL_DATA_TEXT'] = 'Вставить текст согла
|
|||
|
||||
$MESS ['AGREEMENT_LOYALTY_PROGRAM_TITLE'] = 'Условия программы лояльности retailCRM';
|
||||
$MESS ['AGREEMENT_PERSONAL_DATA_TITLE'] = 'Согласие на обработку персональных данных retailCRM';
|
||||
|
||||
$MESS ['UF_REG_IN_PL_INTARO_TITLE'] = 'Зарегистрироваться в программе лояльности';
|
||||
$MESS ['UF_AGREE_PL_INTARO_TITLE'] = 'Я согласен с условиями программы лояльности';
|
||||
$MESS ['UF_PD_PROC_PL_INTARO_TITLE'] = 'Согласие на обработку персональных данных';
|
||||
$MESS ['UF_EXT_REG_PL_INTARO_TITLE'] = 'Поле, с меткой регистрации пользователя в ПЛ';
|
||||
$MESS ['UF_CARD_NUMBER_INTARO_TITLE'] = 'Номер карты программы лояльности';
|
||||
/*
|
||||
$MESS ['ORDER_PROPS'] = 'Настройки соответствия полей заказа retailCRM свойствам заказа 1С-Битрикс';
|
||||
$MESS ['FIO'] = 'Ф.И.О.';
|
||||
|
|
|
@ -103,4 +103,16 @@ trait LoyaltyTrait
|
|||
|
||||
return Deserializer::deserializeArray($response->getResponseBody(), LoyaltyAccountActivateResponse::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Intaro\RetailCrm\Model\Api\Request\SmsVerification\SmsVerificationConfirmRequest $request
|
||||
* @return \Intaro\RetailCrm\Model\Api\Response\Loyalty\Account\LoyaltyAccountActivateResponse|null
|
||||
*/
|
||||
public function sendVerificationCode(SmsVerificationConfirmRequest $request): ?SmsVerificationConfirmResponse
|
||||
{
|
||||
$serialized = Serializer::serializeArray($request);
|
||||
$response = $this->client->sendVerificationCode($serialized);
|
||||
|
||||
return Deserializer::deserializeArray($response->getResponseBody(), SmsVerificationConfirmResponse::class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,58 +9,140 @@ use Intaro\RetailCrm\Component\Constants;
|
|||
use Intaro\RetailCrm\Component\Factory\ClientFactory;
|
||||
use Intaro\RetailCrm\Model\Api\Request\Loyalty\Account\LoyaltyAccountActivateRequest;
|
||||
use Intaro\RetailCrm\Model\Api\Request\Loyalty\Account\LoyaltyAccountCreateRequest;
|
||||
use Intaro\RetailCrm\Model\Api\Request\SmsVerification\SmsVerificationConfirmRequest;
|
||||
use Intaro\RetailCrm\Model\Api\Response\SmsVerification\SmsVerificationStatusRequest;
|
||||
use Intaro\RetailCrm\Model\Api\SerializedCreateLoyaltyAccount;
|
||||
use Intaro\RetailCrm\Model\Api\SmsVerificationConfirm;
|
||||
use Intaro\RetailCrm\Model\Bitrix\User;
|
||||
|
||||
class Register extends Controller
|
||||
{
|
||||
public function configureActions(): array
|
||||
{
|
||||
return [
|
||||
'accountCreate' => [
|
||||
'-prefilters' => [
|
||||
Authentication::class,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
public const MIN_CODE_LENGTH = 3;
|
||||
public const MAX_CODE_LENGTH = 11;
|
||||
|
||||
/**
|
||||
* @return string[]
|
||||
* @param array $loyaltyAccount
|
||||
* @return array|string[]
|
||||
*/
|
||||
public function accountCreateAction($loyaltyAccount): array
|
||||
public function accountCreateAction(array $loyaltyAccount): array
|
||||
{
|
||||
$phoneNumber = preg_replace('/\s|\+|-|\(|\)/', '', $loyaltyAccount['phone']);
|
||||
|
||||
if (!is_numeric($phoneNumber)) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'Некорректный номер телефона',
|
||||
];
|
||||
}
|
||||
|
||||
$user = User::getEntityByPrimary($loyaltyAccount['customerId']);
|
||||
|
||||
global $USER_FIELD_MANAGER;
|
||||
|
||||
$USER_FIELD_MANAGER->Update('USER', $loyaltyAccount['customerId'], [
|
||||
'UF_CARD_NUM_INTARO' => $loyaltyAccount['card'],
|
||||
]);
|
||||
|
||||
if (empty($user->getPersonalPhone())) {
|
||||
$user->setPersonalPhone($loyaltyAccount['phone']);
|
||||
$user->save();
|
||||
}
|
||||
|
||||
//TODO когда станет известен формат карты ПЛ, то добавить валидацию ввода
|
||||
|
||||
/** @var \Intaro\RetailCrm\Component\ApiClient\ClientAdapter $client */
|
||||
$client = ClientFactory::createClientAdapter();
|
||||
$credentials = $client->getCredentials();
|
||||
|
||||
|
||||
$createRequest = new LoyaltyAccountCreateRequest();
|
||||
$createRequest->site = $credentials->sitesAvailable[0];
|
||||
$createRequest->loyaltyAccount = new SerializedCreateLoyaltyAccount();
|
||||
$createRequest->loyaltyAccount->phoneNumber = $loyaltyAccount->phone;
|
||||
$createRequest->loyaltyAccount->cardNumber = $loyaltyAccount->card;
|
||||
$createRequest->loyaltyAccount->customerId = $loyaltyAccount->customerId;
|
||||
$createRequest->loyaltyAccount->customFields = $loyaltyAccount->customFields;
|
||||
|
||||
$createResponse = $client->createLoyaltyAccount($createRequest);
|
||||
$createRequest->loyaltyAccount->phoneNumber = $loyaltyAccount['phone'] ?? '';
|
||||
$createRequest->loyaltyAccount->cardNumber = $loyaltyAccount['card'] ?? '';
|
||||
$createRequest->loyaltyAccount->customerId = $loyaltyAccount['customerId'];
|
||||
$createRequest->loyaltyAccount->customFields = $loyaltyAccount['customFields'] ?? [];
|
||||
|
||||
$createResponse = $client->createLoyaltyAccount($createRequest);
|
||||
//TODO добавить провеку на кастомные поля, когда будет готов метод запроса
|
||||
if ($createResponse !== null) {
|
||||
|
||||
if ($createResponse->success === false) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => $createResponse->errorMsg,
|
||||
];
|
||||
}
|
||||
|
||||
//если участник ПЛ создан и активирован
|
||||
if ($createResponse->loyaltyAccount->active) {
|
||||
return ['status' => 'activate'];
|
||||
}
|
||||
|
||||
$activateRequest = new LoyaltyAccountActivateRequest();
|
||||
$activateRequest = new LoyaltyAccountActivateRequest();
|
||||
$activateRequest->loyaltyId = $createResponse->loyaltyAccount->id;
|
||||
$activateResponse = $client->activateLoyaltyAccount($activateRequest);
|
||||
$activateResponse = $client->activateLoyaltyAccount($activateRequest);
|
||||
|
||||
if (isset($activateResponse->verification)) {
|
||||
return ['status' => 'smsVerification'];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'Ошибка запроса',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $code
|
||||
* @return array
|
||||
*/
|
||||
public function sendVerificationCodeAction(string $code): array
|
||||
{
|
||||
$code = trim($code);
|
||||
$lengthCode = strlen($code);
|
||||
|
||||
return ['newStatus' => $newStatus];
|
||||
if (empty($code) && $lengthCode > self::MIN_CODE_LENGTH && $lengthCode < self::MAX_CODE_LENGTH) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'Код не введен',
|
||||
];
|
||||
}
|
||||
|
||||
$smsVerification = new SmsVerificationConfirmRequest();
|
||||
$smsVerification->verification = new SmsVerificationConfirm();
|
||||
$smsVerification->verification->code = $code;
|
||||
|
||||
/** @var \Intaro\RetailCrm\Component\ApiClient\ClientAdapter $client */
|
||||
$client = ClientFactory::createClientAdapter();
|
||||
$verificationResult = $client->sendVerificationCode($smsVerification);
|
||||
|
||||
if ($verificationResult === null) {
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'ОШибка запроса на подтверждение',
|
||||
];
|
||||
}
|
||||
|
||||
if ($verificationResult->success === false) {
|
||||
$errMsg = $verificationResult->errorMsg ?? '';
|
||||
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'Ошибка. ' . $errMsg,
|
||||
];
|
||||
}
|
||||
|
||||
if ($verificationResult->success === true
|
||||
&& isset($verificationResult->verification->verifiedAt)
|
||||
&& !empty($verificationResult->verification->verifiedAt)) {
|
||||
|
||||
return [ 'status' => 'complete'];
|
||||
}
|
||||
|
||||
return [
|
||||
'status' => 'error',
|
||||
'errorMsg' => 'Ошибка.',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,16 +40,6 @@ class SerializedCreateLoyaltyAccount
|
|||
*/
|
||||
public $cardNumber;
|
||||
|
||||
/**
|
||||
* ID участия
|
||||
*
|
||||
* @var integer $loyaltyId
|
||||
*
|
||||
* @Mapping\Type("integer")
|
||||
* @Mapping\SerializedName("loyaltyId")
|
||||
*/
|
||||
public $loyaltyId;
|
||||
|
||||
/**
|
||||
* ID клиента
|
||||
*
|
||||
|
|
|
@ -27,7 +27,7 @@ class SmsVerificationConfirm extends AbstractApiModel
|
|||
* @Mapping\Type("string")
|
||||
* @Mapping\SerializedName("code")
|
||||
*/
|
||||
protected $code;
|
||||
public $code;
|
||||
|
||||
/**
|
||||
* Идентификатор проверки кода
|
||||
|
@ -37,21 +37,7 @@ class SmsVerificationConfirm extends AbstractApiModel
|
|||
* @Mapping\Type("string")
|
||||
* @Mapping\SerializedName("checkId")
|
||||
*/
|
||||
protected $checkId;
|
||||
public $checkId;
|
||||
|
||||
/**
|
||||
* @param string $code
|
||||
*/
|
||||
public function setCode(string $code): void
|
||||
{
|
||||
$this->code = $code;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $checkId
|
||||
*/
|
||||
public function setCheckId(string $checkId): void
|
||||
{
|
||||
$this->checkId = $checkId;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue