- _finalize_submit держит большой файл (awaiting_payment) без активной подписки;
account из cookie-сессии (Yandex/VK) или tg user_id
- Оплата purpose=file (снимает задание с холда) / sub (+30 дней, снимает холд)
- Фронт: карточка пейволла (99₽/подписка), обработка возврата, single+batch
- Старый auth-баннер больших файлов заменён пейволлом
- Включается флагом PAYWALL_ENABLED (в .env)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- /api/auth/vk/{start,callback}: PKCE (code_verifier в cookie), обмен на
id.vk.com/oauth2/auth + user_info, аккаунт vk:<id> + cookie-сессия
- Кнопка VK в меню входа, i18n
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- OAuth Yandex ID: /api/auth/yandex/{start,callback}, cookie-сессии, /api/me, logout
- Меню входа Telegram/Яндекс в шапке, определение сессии
- Бэкенд пейволла (WEB_ACCOUNTS/подписка, purpose file/sub) — под флагом
PAYWALL_ENABLED (по умолчанию 0: прежний порог авторизации, ничего не ломается)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Бэкенд: /api/pay/create, /api/yookassa/webhook (перепроверка через API),
/api/pay/status (активный фоллбэк без вебхука), таблица WEB_PAYMENTS,
колонка WEB_API_KEYS.paid_until, активация plan=business на 30 дней
- Сайт: оплата картой в блоке поддержки (сумма + email для чека 54-ФЗ)
- /developers: оплата тарифа Business, i18n оплаты (7 языков)
- Ключи только из env (YOOKASSA_SHOP_ID/SECRET)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>