Repository navigation
6.9.1 — чеки CloudPayments, управление ботом и Aurora
6.9.1 — чеки CloudPayments, управление ботом и доработки Aurora
В Aurora добавлены недостающие разделы и действия с подписками. Исправлены массовые операции с тикетами, обработка повторных платёжных уведомлений и ошибки при замене триала. Добавлены чеки CloudPayments, оплата по ссылке из бота и настройки его команд и кнопок. В админке расширено управление webhook Telegram-бота.
CloudPayments и управление ботом
- Добавлена отправка данных чека в CloudPayments для новых платежей, автоплатежей и возвратов через интеграцию. В админке можно включить чеки, выбрать систему налогообложения, НДС, способ и предмет расчёта, задать название позиции.
- Для чеков запрашивается email. Данные чека сохраняются с платёжным соглашением, чтобы последующее изменение настроек не меняло налоговые параметры ранее оформленной подписки.
- Добавлен режим оплаты по ссылке прямо из Telegram-бота, без промежуточной страницы кабинета. Режим включается администратором. Условия автоплатежа показываются в боте и требуют явного согласия; если включены чеки, бот также запрашивает email.
- Повторный запрос создания ссылки использует тот же заказ. При неизвестном результате создания счёта новый заказ автоматически не создаётся.
- В боте можно посмотреть автоплатежи и отменить их с подтверждением. При отмене пробного периода бот предупреждает о прекращении доступа. В админке добавлена отмена автоплатежей выбранного клиента.
- В админке настраиваются видимость, порядок и описания команд в меню Telegram. Скрытая команда исчезает из меню, но её можно вызвать вручную.
- Для кнопок платного пробного доступа и автоплатежей доступны текст, видимость, порядок, оформление и группировка. В тексте пробного предложения поддерживаются подстановки срока и цены.
- Доступность пробного предложения проверяется повторно. Создание неоплаченного счёта не расходует пробный период; использованное предложение больше не показывается. Покупка обычного тарифа сама по себе не считается использованием платного триала CloudPayments.
- Уточнено сообщение при попытке удалить клиента с историей CloudPayments: сначала нужно отменить автоплатежи; история платежей сохраняется.
Для отправки фискальных чеков требуется подключённая CloudKassir. Включение опции не добавляет чеки задним числом и не переносит старые автоплатежи на новые налоговые настройки. Подробности — в инструкции CloudPayments.
Кабинет Aurora
- Подключён собственный главный экран Aurora: список подписок, срок действия, трафик, устройства, подключение, копирование ссылки и QR-код.
- Добавлены продление, переименование, автосписание с баланса, перевыпуск ссылки и удаление дополнительных устройств.
- В оформлении Aurora доступны подарки, дополнительные опции, прокси, Sing-box/AmneziaWG, конструктор тарифа, помощь, подключение, история операций и вывод реферальных средств.
- В профиле доступны привязка Telegram и email, двухфакторная защита, язык, устройства и платежи. Привязка email учитывает режим работы без SMTP.
- Добавлен выбор доступных триалов. При покупке понятнее показывается, какая пробная подписка будет заменена.
- В тарифах доступны дополнительные устройства, покупка второй подписки и предварительный расчёт скидки по промокоду.
- Исправлены поля ввода в поддержке и промокодах, фокус при вводе, вложенные окна и навигация по профилю. Добавлена отдельная иконка рулетки.
- Расширены русские и английские переводы.
Оплата и подписки
- Повторные одновременные уведомления ЮKassa, CryptoPay, LAVA, Lava.top и RollyPay больше не должны повторно зачислять один и тот же платёж. Для пополнений смена статуса и зачисление выполняются в одной транзакции.
- В общем обработчике оплаты покупка через конструктор тарифа отделена от пополнения баланса.
- Возврат платежа на внутренний баланс защищён от одновременного повторного выполнения. Обновление статуса, зачисление и обработка реферальных начислений объединены в транзакцию.
- Уточнены проверки доступного баланса при автопродлении. Добавлена защита от перекрывающихся запусков планировщика в одном процессе.
- Для повторных списаний Lava.top используется постоянный идентификатор уведомления или платежа. Неоднозначные уведомления сохраняются в журнал webhook для разбора, без повторного зачисления или выдачи доступа.
- Создание заявки на вывод средств и списание баланса выполняются вместе. Повторное одобрение или отклонение не возвращает деньги второй раз.
- При замене триала старая подписка сохраняется до создания новой. Ошибка сохранения больше не приводит к удалению уже существующего VPN-профиля клиента.
- При одновременном погашении подарков повторно подбирается свободный индекс подписки.
- Исправлен перевыпуск ссылки у старых аккаунтов без отдельной записи основной подписки.
- Стоимость дополнительных устройств рассчитывается за оставшийся срок, в том числе когда осталось меньше месяца.
- Возврат со страницы платёжной системы больше не считается подтверждением оплаты: при наличии ID открывается экран ожидания результата.
- После успешной оплаты балансом окно оплаты закрывается.
- В Telegram Mini App исправлено открытие платёжных страниц во внешнем браузере. Автообновление PWA не перезагружает страницу возврата с оплаты.
- При недоступности Remnawave кабинет отмечает данные как сохранённые, а не объявляет подписку истёкшей только из-за ошибки запроса.
Тикеты
- Исправлено двойное переключение чекбокса при выборе тикета.
- После массового изменения обновляются и список, и открытая карточка тикета.
- Массовый ответ с включённым автозакрытием корректно обрабатывает JSON и multipart-запросы.
- Ответ без автозакрытия не открывает заново уже закрытые тикеты.
- Повторное закрытие сохраняет прежнюю дату закрытия и срок хранения. Сообщение об операции показывает фактическое число изменений.
Исправляет #256.
Telegram-бот: webhook и очередь
- В настройках различаются активный режим, несохранённые изменения и неподтверждённое состояние процесса.
- Добавлены генерация, показ и копирование секрета webhook, сброс черновика и подстановка адреса текущей панели.
- Проверка статуса показывает время проверки и количество ожидающих обновлений Telegram.
- Очередь можно очистить отдельной кнопкой или при переходе на Long Polling. Операция требует подтверждения внутри панели.
- Очистка учитывает фактический режим процесса бота. Если его нельзя определить, операция останавливается, не удаляя рабочий webhook.
- Ошибка Telegram при очистке возвращается в интерфейс. Флажок очистки сбрасывается после закрытия диалога.
Очистка удаляет ожидающие обновления Telegram; используйте её только если эти события больше не нужно обрабатывать.
Рулетка и письма
- Для ежедневного сброса рулетки часовой пояс по умолчанию —
Europe/Moscow. В админке добавлена кнопка «Москва» и проверка введённого пояса. - Уже сохранённый UTC или другой пояс не меняется автоматически. Для UTC показывается подсказка: сброс в 00:00 UTC соответствует 03:00 МСК.
- Ответы API рулетки запрещают кеширование, чтобы таймер не оставался устаревшим после полуночи.
- Исправлена устаревшая тема письма подтверждения email с незаполненным шаблоном кода.
Обновление
Перед обновлением создайте и скачайте резервную копию. Откройте Настройки → Обновления, проверьте наличие версии 6.9.1 и запустите обновление. Дождитесь сообщения об успешной установке, затем проверьте номер версии, вход в кабинет, подписки и /start в боте. Подробный порядок — в инструкции.
В этой версии добавлена миграция 20261101120000_cloudpayments_receipts: необязательное поле с данными чека в соглашениях CloudPayments. Штатное обновление применяет её автоматически; существующие соглашения сохраняются. Если установлена более ранняя версия, также применяются миграции предыдущих выпусков.
Проверены сборки API, бота и frontend, регрессионные тесты платежей и подписок, массовые операции тикетов на отдельной PostgreSQL и интерфейсы на мобильной и настольной ширине. Реальные списания у платёжных провайдеров не проводились.
Изменения: #257, #258, #259, #260, #261 и исправления по итогам проверки.