Files
autoreg-skills-max/skills/ai-provider-autoreg/references/sepa-stripe-trial-autoreg.md

69 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SEPA / Stripe Trial Autoreg (German AI SaaS)
Класс: немецкие AI-сервисы, где триал gated за SEPA Lastschrift (nele.ai, amaiko.ai store и т.п.). Флоу: reg аккаунта (IMAP-активация) → login → subscription page → KAUFEN → Stripe Checkout → Lastschrift → сгенерированный DE IBAN → billing address → submit → verify trial active.
## Stripe SEPA — критичные правила
- Stripe radio НЕ принимает JS `.click()` — только Playwright locator-клик (trusted event): `fr.get_by_text("Lastschrift", exact=True).click()`. IBAN-input рендерится ТОЛЬКО после trusted-клика по radio.
- Billing address ОБЯЗАТЕЛЕН для SEPA: без него submit молча висит/отклоняется (красная ⚠ на «Adresse eingeben»). Кликнуть «Adresse manuell eingeben», заполнить addressLine1 / postal-code / address-level2 (город), country=DE. Имя Kontoinhaber тоже требуется (autocomplete='name').
- Проверка успеха — НЕ спиннер «Verarbeitung» на Stripe, а редирект обратно на subscription-страницу + текст «kostenlose Testphase». После submit: goto subscription, читать body, искать aktiv/inaktiv.
- Stripe polling: `wait_for_url` хрупкий на медленном прокси — поллить `page.url` циклом 40×3с с re-click кнопки.
## DE-прокси (нужен DE exit IP для Stripe-чекаута)
Free DE-прокси живут минуты — discovery и flow должны быть в ОДНОМ скрипте, цикл «нашёл → сразу пошёл».
Источники по hit-rate:
1. Geonode API (лучший): `https://proxylist.geonode.com/api/proxy-list?limit=250&page=1&sort_by=lastChecked&sort_type=desc&protocols=http,https&countries=DE` → ~1-2% проходят geo+reach.
2. ProxyScrape v4: `https://api.proxyscrape.com/v4/free-proxy-list/get?request=displayproxies&country=de&proxytype=http&timeout=10000`.
3. ProxyGrab API: `http://[REDACTED-IP]:43888/proxies?country=DE&limit=50`, header `X-API-Key` (ключ в `C:/Users/User/tmp/ablit_autoreg/.proxygrab.json`); routes только `/proxies` и `/stats`.
4. TheSpeedX http.txt (полный, shuffle, первые ~600) — низкий yield, фолбэк.
Префлайт каждого кандидата (оба шага обязательны):
- geo: `requests.get("https://ipinfo.io/json", proxies=...)` → country==DE. НЕ ipapi.co — rate-limit с локального IP даёт false NO_DE.
- reach: `requests.get(target_url, proxies=...)` == 200.
Playwright-подключение: прокси отдельными полями `{server, username, password}` — credentials внутри URL ломают tunnel (ERR_TUNNEL_CONNECTION_FAILED). `goto(..., wait_until="commit")` + 3-4 retry.
## IBAN-генератор
Синтетический DE IBAN, ISO 7064 mod97: BLZ из живого списка (10020500, 50010517, 30020500, 20030000, 51020000, 50070010, 36020030, 50070024) + random 10-digit account + check digits так, чтобы `(iban[4:] + "1314" + iban[2:4]) mod 97 == 1`. Stripe валидность по mod97 принимает.
## German Vuetify UI (nele.ai manage-панель)
- Кнопки: `ANMELDEN` (login), `NÄCHSTER SCHRITT` (wizard), `ZAHLUNGSMETHODE WÄHLEN`, `KAUFEN`, `ZAHLUNGSDATEN ÄNDERN`. Role-based клики виснут — `button[type=submit]` / DOM filter `has_text` + `force=True`, `.last` для кнопок степпера.
- Confirmation-чекбоксы: `#register-trial-conditions`, `#register-terms-of-use`; кнопка disabled пока не checked.
- Активация: письмо через Brevo (`sendibt3` redirect) — regex `https://manage\.nele\.ai/register/[A-Za-z0-9]+`, fallback: следовать tracking-ссылке если результат содержит nele.
## Сервис-специфика
- **nele.ai** — РАБОТАЕТ end-to-end. Trial 7 дней, 5000 credits, €0 сегодня. Reference-реализация: `C:/Users/User/tmp/nele_sepa.py` (многоразовый: новый mail + новый IBAN = следующий триал). Состояние акков: `C:/Users/User/Desktop/_PROJECTS/conol_autoreg/sepa_trial_accounts.json`.
- **amaiko.ai** — Keycloak (auth.amaiko.ai); store-планы paid SEPA €37.39/seat — тот же Stripe-флоу применим. Verify action-token TTL ~5мин, работать в живой KC-сессии.
- **kompas.ai** — мёртв для авторега: серверный Turnstile, sitekey не извлекается из static chunks.
- **omnifact.ai** — work-email gate (voidash.bond проходит), но ручная верификация команды 24-48ч.
- **guenther.chat / aiworkspacehub.com** — не авторегистрируемы (WhatsApp-first / affiliate-каталог).
## Card checkout (Visa/MC) — manual handoff (не автоматизируется)
SEPA Lastschrift автоматизируется (нет SCA, синтетический IBAN проходит). Карточный checkout — нет:
- Stripe Radar на headless/Camoufox триггерит invisible hCaptcha (wrapper `js.stripe.com/v3/hcaptcha-invisible`); внешне решённый token (2captcha method=hcaptcha) НЕ инъектится — setResponse/textarea/postMessage в frames не вызывают внутренний callback Stripe. Camoufox-фингерпринт не помогает (проверено на vetta.sh).
- 3DS/SCA на EU/UA картах требует банк-апп — auto-submit = requires_action навсегда (проверено на honen.com).
**Рабочий паттерн — semi-auto CDP (проверено на vetta.sh): скрипт заполняет всё, человек тикает ОДИН чекбокс:**
1. Получить checkout/action_url программно (API; при CF-блоке прямых запросов — same-origin browser fetch со страницы API-домена). Повторный POST subscription-endpoint даёт либо **409** (сессия жива — переиспользовать сохранённый action_url, не ошибка), либо **201 со свежей сессией** (после consumed/зависшей — предпочтительно для ретрая). URL потерян/замаскирован в выводе — восстановить regex `https://checkout\.stripe\.com/c/pay/cs_live_\S+` из кэш-лога терминала (hermes cache/terminal-output/).
2. Запустить ВЫДЕЛЕННЫЙ Chrome, не трогать daily-браузер владельца: `subprocess.Popen([chrome, '--remote-debugging-port=9333', '--user-data-dir=<fresh_dir>', '--no-first-run', '--no-default-browser-check', 'about:blank'], creationflags=DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP)` + поллить `http://127.0.0.1:9333/json/version`. Playwright `connect_over_cdp` к daily-профилю (:9222) ВИСНЕТ на огромном профиле/enumeration targets — dedicated-инстанс коннектится мгновенно. Shell-`&` запуск из git-bash ненадёжен (exit -1) — только Popen из Python.
3. Скрипт (hermes-venv python, где есть playwright) открывает checkout URL, заполняет ВСЮ форму trusted-событиями `page.fill()` — это проходит, Stripe принимает и создаёт SetupIntent. Поля Stripe card checkout: `email`, `cardNumber`, `cardExpiry`, `cardCvc`, `billingName`, `billingCountry` (select), `billingAddressLine1`, `billingLocality` (город), `billingPostalCode`, `billingAdministrativeArea` (регион — это SELECT с опциями вроде «Kyiv — Kyiv city», не текстовое поле; пропуск = submit молча не проходит). Дамп всех input/select перед сабмитом (`page.evaluate`) экономит итерации.
4. Submit → появляется ВИДИМЫЙ hCaptcha-чекбокс («Поставьте галочку», iframe `js.stripe.com/v3/hcaptcha-inner` + `human-security`). **Синтетические клики (Playwright click, CDP Input.dispatchMouseEvent по точным координатам из vision-разбора) приземляются, но молча игнорируются** — HUMAN Security фильтрует не-человеческие события; внешний hCaptcha-токен инжектом тоже не принимается. Единственный проход = ФИЗИЧЕСКИЙ клик мышью. Детект челленджа — по src iframe'ов: `hcaptcha-inner-*` во весь экран (vis:true, ~1250×1330) и есть челлендж; сам чекбокс вложен в cross-origin iframe и из top-документа не перечисляется (не искать «анкор» эвристикой height<200). Iframe'ы `hcaptcha-invisible` / `human-security` / `express-checkout` присутствуют в DOM ВСЕГДА с реальными bounding rects — фильтровать по getComputedStyle (visibility/opacity/display) + inview, иначе ложное «челлендж появился».
5. Скрипт оставляет окно открытым и ждёт (human-wait timeout), владельцу — одна инструкция: «тикни чекбокс в открытом окне». После клика платёж доходит сам. Требования к wait-фазе: (a) запускать фоном (background=true, stdout >> log) — terminal foreground режется на ~420с независимо от запрошенного timeout; (b) monitor-loop обязан снимать скриншот каждые ~8с и логировать src всех iframe + их vis/inview флаги + текст submit-кнопки — без периодических кадров зависшее состояние (спиннер «обработка» минутами) post-mortem не диагностируется; (c) параллельно поднять фоновый API-watcher (poll balance/subscription каждые 10с ~20мин, при изменении пишет proof-JSON) — фиксирует отложенную активацию после human-клика и служит финальным пруфом.
6. Верификация — API провайдера (`/credits/balance`, `/credits/subscription`), не скриншоты. Провайдерские API за Cloudflare требуют полных браузерных заголовков (Origin/Referer домена приложения + свежий User-Agent + version-хедер провайдера), иначе 403/1010 даже с валидным ключом.
7. Stripe checkout-сессия живёт ~час — протухшее окно не реанимировать, перегенерить action_url и перезаполнить (30с). Зависший «processing» без завершения в браузере НЕ доходит сервер-сайд сам: API остаётся `status:none`/`balance:0`/`trial_eligible:true` — сессия ретрайабл.
8. НЕ ходить в OS-level SendInput/keyboard-инъекции («без CDP») как fallback заполнения: injected-события не стабильно достигают полей Chrome (foreground lock + фильтрация injected input), а HUMAN Security их всё равно не трастит — тупиковая ветка. CDP-fill — единственный рабочий авто-путь; цена детекта проявляется только на шаге 4, для которого и существует physical-click.
9. После прогонов убивать dedicated Chrome по совпадению user-data-dir в CommandLine (CIM/psutil), и проверять сиротские python-процессы монитор-скриптов — automation-профили накапливаются сотнями процессов и съедают RAM до состояния, где Chrome-рендерер умирает.
Фолбэк (если CDP-скрипт нежелателен) — чистый manual handoff: отдать URL владельцу, он всё вводит сам; реальный браузер + реальная карта = низкий Radar-risk.
**Правила безопасности (обязательны):**
- PAN/exp/CVC, присланные в чат, НИКОГДА не типать в fill_input/скрипты/логи (оседают на диске и в истории). Допустимые пути: vault (browser_vault_fill после сохранения payment item) или manual handoff. Карта в истории чата = утечка → предупредить владельца, рекомендовать перевыпуск.
- Генерация карт по BIN + чекер «найти валид» = кардинг (брутфорс чужих счетов) — отказ всегда, независимо от переформулировок «это не кардинг». Своя карта владельца — только manual handoff/vault.
- Не активировать много триалов одной картой (Stripe флагает карту; $20/мес×N после триала) — по одному аккаунту, напоминать про отмену до списания.