Документация: этапы по фазам, решения D-026…D-033
- Новый порядок этапов (D-026): фаза 1 — концепт на dev без внешних сервисов (1b сайт, 1c вход, 1d ключи, 1e счёт и демо-оплата, 1f демо-выдача, 1g продления, 1h рефералы); фаза 2 — Telegram; фаза 3 — ALTCHA, ЮKassa, почта, Twenty, Chatwoot, Umami, выдача через API и публичный запуск; фаза 4 — звёзды и эквайринги. - Решения: демо-оплата по списку IP (D-027), выдача ключей через адаптер manual/demo/api (D-028), страницы сайта из блоков Payload (D-029), пересборка через revalidatePath (D-030), RU-адрес у mass (D-031), счётчик свободных серверов (D-032), переводы на 5 языков в каждом этапе (D-033). - Тексты описывают работающий продукт; Вейликс — выделенный IP на общем сервере; Telegram поддержки — @veilix_support; сроки ответа не обещаем; VPN-серверы не ведут журналов. - Ссылки на этапы во всех документах, Q-12 решён (ЮKassa для RUB), R-19 (библиотеки для headless Chromium) сделано. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0cad9bae18
commit
515acfb69d
53 files changed
+778
-348
No files matched your search
+4
-4
@@ -12,7 +12,7 @@
|
||||
|
||||
### 2.1 Запрос кода
|
||||
|
||||
1. Пользователь вводит email и проходит ALTCHA.
|
||||
1. Пользователь вводит email и проходит ALTCHA (с этапа 3a).
|
||||
2. Сервер нормализует email (обрезает пробелы, переводит в нижний регистр) и проверяет лимиты:
|
||||
a. по email — не чаще раза в 60 секунд и не больше 5 кодов в час;
|
||||
b. по IP — не больше 20 запросов в час.
|
||||
@@ -51,14 +51,14 @@
|
||||
|
||||
Шаг «Почта» на странице заказа — тот же вход по коду. После подтверждения пользователь остаётся на шаге «Оплата».
|
||||
|
||||
## 6. Telegram (этап 3)
|
||||
## 6. Telegram (этапы 2a–2c)
|
||||
|
||||
### 6.1 Вход из MiniApp
|
||||
|
||||
1. MiniApp передаёт серверу `initData` от Telegram.
|
||||
2. Сервер проверяет подпись: HMAC-SHA256 с ключом `HMAC_SHA256("WebAppData", токен основного бота)`, `auth_date` не старше суток.
|
||||
3. Ищем пользователя (сайт, telegramId). Нет — создаём: `registeredVia = telegram`, язык — из `language_code` Telegram (если он среди включённых), валюта — по умолчанию домена.
|
||||
4. Сессия `kind = miniapp`. Как её хранить (cookie внутри WebView Telegram или токен в памяти) — решаем на этапе 3.
|
||||
4. Сессия `kind = miniapp`. Как её хранить (cookie внутри WebView Telegram или токен в памяти) — решаем на этапе 2a.
|
||||
|
||||
### 6.2 Привязка почты из Telegram
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
| `vx_ref` | хост кабинета | 60 дней | реферальный код |
|
||||
| `NEXT_LOCALE` | каждый хост | 1 год | выбранный язык |
|
||||
| `vx_currency` | хост сайта и кабинета | 1 год | выбранная валюта (у вошедшего — валюта аккаунта) |
|
||||
| `vx_consent` | хост сайта и кабинета | 1 год | согласие на cookies (этап 1h) |
|
||||
| `vx_consent` | хост сайта и кабинета | 1 год | согласие на cookies (этап 3f) |
|
||||
| `payload-token` | хост админки | сессия админки | вход администратора |
|
||||
|
||||
Тема (светлая, тёмная, как в системе) хранится в localStorage, как в макете, и применяется скриптом до отрисовки, без мигания.
|
||||
Reference in new issue
Block a user