Repository navigation
6.9.0 — кабинет, админка, Mini App и CloudPayments
6.9.0 — кабинет, админка, Mini App и CloudPayments
Обновлены клиентский кабинет и админка. Новый кабинет доступен на сайте и в Telegram Mini App. Администратор может настроить его оформление и опубликовать изменения из редактора.
Клиентский кабинет
- Новая навигация: на компьютере меню сворачивается в иконки и раскрывается при наведении, на телефоне открывается кнопкой меню.
- Более компактные карточки подписок. В них собраны срок действия, трафик, устройства, продление, подключение, копирование ссылки и QR-код.
- Подпискам можно задавать собственные названия.
- Обновлены тарифы и оформление покупки. При смене срока цена меняется плавно.
- Переработаны баланс и история операций, профиль, рефералы и подарки. История доступна отдельным разделом.
- Обновлены список обращений, переписка с поддержкой и окно чата. Исправлены отступы, поля ввода и расположение кнопок.
- Приведены к общему виду вход, регистрация, восстановление пароля и первоначальная настройка аккаунта.
- Добавлены вход и регистрация через Telegram: переход в бота, ожидание подтверждения, отмена и повторный запуск после истечения ссылки. Сохраняются проверки блокировки аккаунта и двухфакторной защиты.
- Способ оплаты ЮKassa подписан «Карта/СБП (Юкасса)».
- Светлый, тёмный и системный режимы и цветовой акцент задаёт администратор. Старые личные настройки клиента больше не переопределяют оформление сервиса.
- Исправлены мобильная компоновка, выравнивание иконок с текстом и открытие настроек. Ошибка загрузки подписки отделена от состояния «подписок нет».
Telegram Mini App
- В настройках оформления появился вариант «Новый кабинет». Он использует тот же интерфейс и опубликованное оформление, что и обновлённый веб-кабинет.
- Сохранены варианты Stealth и Aurora. Выбранный вариант можно отдельно включить для обычного браузера.
- Старое значение Classic остаётся совместимым с обновлённым стандартным кабинетом. Обновление не сбрасывает выбранный администратором вариант.
Админка
- Новый интерфейс в стиле клиентского кабинета: боковое меню, заголовки, таблицы, формы и мобильная навигация.
- Прежнее оформление доступно в выборе темы как Old classic.
- Страницы загружаются по мере открытия. Сокращены лишние перерисовки и работа скрытых элементов.
- Браузерные подтверждения и запросы ввода заменены окнами внутри панели.
- Исправлены съехавшие кнопки и вкладки, расположение списков активности клиентов, текстов бота и email-шаблонов.
- Исправлены фон заголовков в настройках, недостающие иконки и окно глобального поиска.
- Поиск открывается по ⌘K на Mac и Ctrl+K на Windows/Linux. Подсказка учитывает устройство; сочетание работает и при русской раскладке.
Редактор оформления кабинета
- Шесть готовых пресетов, настройка цветов, шрифтов, размеров, отступов, скруглений, кнопок и карточек.
- Предпросмотр для компьютера и телефона, проверка контраста, импорт и экспорт настроек.
- Черновик сохраняется отдельно от опубликованного оформления. Изменения появляются у клиентов после публикации.
- История последних 12 публикаций с восстановлением предыдущего варианта через черновик.
- Защита от перезаписи изменений другого администратора. Публичный API не раскрывает черновики.
- Редактор доступен администратору. Он меняет оформление готовых компонентов; свободной перестановки и создания страниц в этой версии нет.
Telegram-бот
-
В главном меню появилась кнопка «Продлить подписку». Название, порядок и видимость настраиваются в админке. Если продлевать нечего, кнопка скрыта. (#250)
-
Одна подходящая подписка сразу открывает продление; несколько — выбор подписки. Истёкшие подписки остаются доступными для продления.
-
При отключённых мультиподписках бот больше не предлагает купить дополнительную подписку. Исправление применяется к тарифам с одним и несколькими сроками. (#249)
-
При продлении сохраняется ID выбранной подписки, проверка кулдауна и выбор сохранения или удаления дополнительных устройств.
-
При одной доступной подписке кнопка подключения сразу открывает её страницу. Истёкший триал больше не создаёт лишний экран выбора. При нескольких действующих подписках выбор сохраняется.
-
В настройках бота добавлено переключение между Long Polling и Webhook со статусом Telegram и процесса бота. Переключение сохраняет очередь сообщений. (#248)
-
Главному меню бота требуется меньше запросов к API: профиль, подписки и триалы загружаются вместе. Подписки запрашиваются параллельно; загруженные изображения кратковременно переиспользуются по Telegram file_id.
-
Запросы webhook проверяются по секрету. Ошибки доставки не маскируются успешным ответом; повторные доставки объединяются в работающем процессе. Порядок событий одного пользователя сохраняется.
Обновление интерфейса без ручной перезагрузки
- На безопасных страницах предложение обновления запускает отсчёт после 7 секунд бездействия. Перед перезагрузкой остаётся ещё 5 секунд. (#247)
- Незавершённый ввод, открытое окно, оформление оплаты и страницы настроек блокируют автоматическую перезагрузку. Проверка учитывает React-поля, чекбоксы, списки и текстовые редакторы даже после потери фокуса.
- При ручном обновлении с изменённой формой панель запрашивает подтверждение. Обновление можно отложить на 10 минут.
- Исправлено зависание обновления в WebView, когда браузер не сообщает о смене Service Worker.
CloudPayments
- Оплата картой в кабинете, Mini App и боте; отдельное согласие на регулярные списания для VPN-тарифов.
- Настраиваемый платный триал: первый платёж, число дней, тариф после триала и льготный срок при отказе карты. (#251)
- Автоматическое изменение суммы при смене цены тарифа и покупке дополнительных устройств. Доплата за устройство рассчитывается за оставшийся срок.
- Отмена через профиль и CloudPayments. Пробный доступ прекращается после отмены; обычный оплаченный срок сохраняется.
- Проверка подписей уведомлений, защита от повторного зачисления и выдачи, очередь обработки с восстановлением после сбоев VPN-сервера.
- Возврат на карту из админки, учёт полных и частичных возвратов, отмена денежных реферальных начислений. Выданный доступ после возврата проверяется отдельно.
- Настройки подключения и состояние обработки в админке. CloudPayments выключен по умолчанию; перед рабочими списаниями нужен тест своего терминала по инструкции.
Обновление
Перед обновлением создайте и скачайте резервную копию. Обновляйте API, бот и frontend вместе по инструкции. В релиз входят миграции для пользовательского названия подписки и учёта CloudPayments; существующие записи не удаляются. Перенос клиентов в другую базу не требуется.
После обновления проверьте вход, загрузку подписок, настройки оформления и меню бота. При подключении CloudPayments отдельно проверьте тестовую оплату, автосписание и отмену. Реальный эквайринг без реквизитов терминала не проверялся.
Webhook выключен по умолчанию. Порядок подключения и проверки — в инструкции.