меня на путь, если возможно: есть страница оформления заказа. нет регистрации на сайте. Но заказчик хочет авторегистрацию с отправкой пароля на телефон. Поэтому все, что ниже у меня в OnSaleOrderBeforeSaved.
Что у меня уже есть: в init.php - если заказ новый, и если пользователь авторизован - понятно. Если не авторизован, я проверяю существование логина через CUser::GetList и если пользователя нет, то создаю его. А вот если есть пользователь я что-то затупила. Именно с логикой процесса, не с кодом. Форма авторизации не предусмотрена. Только поле для ввода кода(пароля) с телефона. Хорошо, я скрою это поле скриптом и буду отображать если value поля телефон == логин из CUser::GetList а дальше? как мне его авторизовать-то? У меня же не форма регистрации? Тупым образом скрыть форму через скрипт и подставлять значения скриптом? Совсем какой-то ахтунг получается. Что-то я адски накрутила и не могу теперь размотать...
sale.order.ajax самостоятельно регистрирует пользователя, если нет авторизации, если установлены соответствующие параметры компонента, чтобы разрешать оформление заказа без авторизации.
у меня кастомный компонент вот этот: https://verstaem.com/bitrix/opensource-order/ Верстка очень сложная, дефолтный не смогла натянуть
именно про этот компонент не скажу. не понимаю в чем именно сложность. в событии после оформления заказа, вы проверяете - является ли пользователь, который привязан к заказу новым ? если да, то генерируете пароль, изменяете пароль этого пользователя - и отправляете по смс.
а формы-то нет? куда вводить? как авторизовать? по условию, что в кастомное поле введен пароль? бред же?
"Поэтому все, что ниже у меня в OnSaleOrderBeforeSaved" - чой-та? нажал юзер "Оформить заказ" - вот в первую очередь все и проверяйте. "Если не авторизован, я проверяю существование логина через CUser::GetList и если пользователя нет, то создаю его. А вот если есть пользователь я что-то затупила. Именно с логикой процесса, не с кодом" я по вашему описанию вижу хорошую возможность подломать магазин или за ddos-ить (перебором номеров) вы не можете при таком ТЗ авторизовывать без кода подтверждения на телефон иначе я за Васю Петрова, номер которого знаю, столько заказов наделаю...
Таки да. Не могу. И я об этом же. То есть мало того, что я его должна авторизовать без перезагрузки страницы, плюс отправить код без перезагрузки, получитьего из поля без перезагрузки... Не. Не реально. Наверное надо так - после "оформить" как сказал voiciano отправлять на страницу с полем кода, а потом уже оформлять. Но все-равно придется переписать все.
"То есть мало того, что я его должна авторизовать без перезагрузки страницы, плюс отправить код без перезагрузки, получитьего из поля без перезагрузки..." не вижу препятствий 1. ajax-запрос на сервак (авторизован или нет), на ответ вешается обработчик 2. в ответе либо "зарегали, вот данные", либо "код успешно подтвержден", либо "авторизуй" (при этом с сервака ушла смска клиенту), либо "не тот код подтверждения" - eсли зарегали или успешно подтвердили (на серваке он уже авторизовано должон быть)- ajax-запрос со следующим шагом либо вообще сабмит формы - если авторизуй - показываете всплываху "введи код подтверждения" и ждете - если "не тот код" - "чувак, что-то не то, давай через минуту-другую еще раз покажу кнопку Отправить код снова" 3. ввел код - ajax на сервак с кодом и идем на п.1 вот и все
ААААААА1 ajax! упс! Спасибо! я про него забыла напрочь)
про check_bitrix_sessid и передачу токена не забудьте тогда уж
Обсуждают сегодня