Платежи и секреты в приложениях из быстрого ИИ-прототипа
Stripe webhooks, недоплата, идемпотентность и как не выпустить API-ключи в браузер на продуктах, собранных в ИИ-чате.
Dali
Dali - студия AI agent systems. Давид ведёт engineering и продукт, Лиана - operations и fit процессов. Делаем production-агентов в tools, которыми команда уже пользуется.
David Hakobyan · Dali
Прямой ответ
Пока не доказано обратное, считайте, что приложение из быстрого ИИ-прототипа (vibe coding) утечёт ключом или криво обработает webhook. Держите ключи и секреты на сервере, проверяйте подписи webhook, делайте идемпотентную обработку платежей и ограничивайте частоту чувствительных эндпоинтов.
«Работает в превью» - не равно «можно принимать деньги».
Ключи и секреты
- Никаких service keys во frontend-сборке, публичных репозиториях и клиентском JS.
- Всё, что хоть раз светилось - ротация немедленно.
- Отдельные ключи на test и live; никогда не смешивать.
- Секреты - в env / secret manager, не в
.env, залитом в git «на пять минут».
Stripe и платежный путь
- Проверка подписи webhook и raw body (не «доверяй JSON с клиента»).
- Idempotency keys - повтор доставки не создаёт двойное начисление/двойной доступ.
- Сверка underpay / overpay: сумма и product id только с сервера, не из формы.
- Статусы заказа обновляет сервер после подтверждённого события, не UI «успех».
См. также: публичные webhook и риски недоплаты.
Админка и промокоды
Лимиты частоты, блокировки после серии неудач, audit log. Сборки в ИИ-чате часто пропускают это: остаётся brute force паролей и промо. Подробнее: лимиты для admin и promo.
Злоупотребление ботами
CAPTCHA или аналог на дорогих публичных эндпоинтах (регистрация, checkout, генерация, отправка писем). Иначе один скрипт сожжёт бюджет API и создаст фейковые заказы.
Как вписывается Dali
Укрепление платёжного пути: спасение vibe-кода.
FAQ
Разные ключи и разные webhook endpoints. Никогда не мешать. Live-ключ в dev - почти гарантированная авария.