Блог

2 мин чтенияtutorial

Платежи и секреты в приложениях из быстрого ИИ-прототипа

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 и платежный путь

  1. Проверка подписи webhook и raw body (не «доверяй JSON с клиента»).
  2. Idempotency keys - повтор доставки не создаёт двойное начисление/двойной доступ.
  3. Сверка underpay / overpay: сумма и product id только с сервера, не из формы.
  4. Статусы заказа обновляет сервер после подтверждённого события, не UI «успех».

См. также: публичные webhook и риски недоплаты.

Админка и промокоды

Лимиты частоты, блокировки после серии неудач, audit log. Сборки в ИИ-чате часто пропускают это: остаётся brute force паролей и промо. Подробнее: лимиты для admin и promo.

Злоупотребление ботами

CAPTCHA или аналог на дорогих публичных эндпоинтах (регистрация, checkout, генерация, отправка писем). Иначе один скрипт сожжёт бюджет API и создаст фейковые заказы.

Как вписывается Dali

Укрепление платёжного пути: спасение vibe-кода.

FAQ

  • Разные ключи и разные webhook endpoints. Никогда не мешать. Live-ключ в dev - почти гарантированная авария.