Вход через мессенджеры, уведомления о заказах через Message API, подтверждение e-mail в личном кабинете. OpenCart 3.0.x.
PHP 7.4+ с openssl, исходящий HTTPS к Auth Cloud
1. Войдите в кабинет Auth Cloud и создайте приложение.
2. Подключите хотя бы одного бота (Telegram, WhatsApp или MAX) в настройках приложения.
3. Вкладка приложения «Сообщения»: скопируйте токен API отправки (POST /api/v1/message/send) — понадобится в настройках модуля OpenCart.
4. Добавьте origin витрины (схема + хост, например https://shop.example.com) в разрешённые домены.
5. Скопируйте _id приложения — Application ID в админке OpenCart.
1. Скачайте antirius-auth-cloud-opencart.zip по кнопке выше.
2. Админка OpenCart: Расширения → Установка расширений → загрузите zip или распакуйте каталог upload/ в корень магазина.
3. Расширения → Расширения → Модули → Antirius Auth Cloud → Установить.
4. Изменить: Base URL, Application ID, токен отправки, режим уведомлений о заказах, привязка телефона админа, «Проверить отправку», затем включите и сохраните.
5. При обновлении со старой версии: переустановите модуль один раз (или добавьте события истории заказа и таблицу antirius_customer_meta вручную).
| Параметр | Описание |
|---|---|
| Статус | Включить замену стандартного входа покупателя. |
| Base URL | URL инстанса Auth Cloud (например https://id.antirius.com). |
| Application ID | _id приложения из кабинета. |
| URL скрипта виджета | Необязательно; по умолчанию {base_url}/widget.js. |
| Автосоздание покупателя | Создать нового покупателя, если совпадение не найдено. |
| Группа покупателей | Группа для новых учётных записей. |
| Сопоставление | Только телефон: customer.telephone совпадает с номером из Auth Cloud. |
| Токен API отправки сообщений | Кабинет → приложение → «Сообщения». Уведомления о заказах и тестовая отправка. Пустое поле при сохранении не затирает уже сохранённый токен. |
| Уведомления о статусе заказа | При «Уведомить покупателя» в заказе: только e-mail, только мессенджер, оба или на выбор покупателя (при подтверждённых телефоне и почте). Канал доставки в мессенджерах выбирает Auth Cloud. |
| Проверить отправку (админ) | Тестовое сообщение на привязанный телефон администратора. |
| Скрыть резервный вход на экране мессенджера | Нет (по умолчанию) — ссылка account/login?abc_bypass=1 на экране. Да — скрыть только ссылку. |
При добавлении истории заказа с галочкой «Уведомить покупателя» расширение при необходимости вызывает POST /api/v1/message/send. Письмо OpenCart уходит, если в режиме есть e-mail. Магазин не выбирает Telegram или MAX — доставку выполняет Auth Cloud по настройкам приложения.
Только e-mail — Как в стандартном OpenCart.
Только мессенджер — Без письма OpenCart; текст на телефон покупателя (+…).
Оба — Письмо и мессенджер.
На выбор покупателя — При подтверждённых телефоне и реальном e-mail покупатель выбирает канал в «Редактирование учётной записи». Иначе: мессенджер при заглушке почты, e-mail при обычном адресе.
1. Телефон только для чтения; смена — «Перепривязать» через мессенджер.
2. Блок «Уведомления» (если задан токен): «Проверить отправку» — покупатель проверяет доставку и решает, оставлять канал или нет.
3. Подтверждение e-mail: реальный адрес, код в мессенджер на привязанный телефон, затем подтверждение. Заменяет @antirius.local.
4. Канал уведомлений: e-mail / мессенджер — при режиме «на выбор покупателя» и подтверждённых телефоне и почте.
1. Покупатель открывает Аккаунт → Вход (маршрут account/login).
2. Расширение перенаправляет на extension/module/antirius_auth_cloud/login с виджетом и CSRF-токеном в сессии.
3. После подтверждения в мессенджере браузер отправляет POST session_id на extension/module/antirius_auth_cloud/callback.
4. Сервер магазина вызывает GET /api/v1/auth/session/{session_id}?type=full один раз, получает JWT, проверяет RS256 через /.well-known/jwks.json.
5. Расширение находит или создаёт покупателя, вызывает $this->customer->login(), редирект в личный кабинет или на исходный redirect.
Ссылка на стандартную форму входа OpenCart на экране мессенджера включена по умолчанию. Можно открыть напрямую (cookie сохраняет режим обхода после POST):
index.php?route=account/login&abc_bypass=1Чтобы скрыть только ссылку на экране, в настройках модуля выберите «Скрыть резервный вход на экране мессенджера» → Да. Прямой URL по-прежнему работает.
Callback принимает только POST и сверяет CSRF-токен из сессии OpenCart (abc_auth_token). JWT проверяется публичным ключом JWKS; app_id в токене должен совпадать с Application ID в настройках. Поля профиля берутся из мессенджера в момент входа и на Auth Cloud долго не хранятся.