For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/web/billing.md (or send Accept: text/markdown).
Платежи и подписки
Stripe checkout, управление планами и граница энтайтлментов.
Выберите и протестируйте свой платежный сервис
Биллинг обрабатывает платежи. Разрешения на доступ хранятся отдельно как права. Завершите настройку постоянной учетной записи, затем откройте /billing в работающем веб-приложении, чтобы увидеть интерфейс плана. С BILLING_PROVIDER=local вы изучаете поведение местных жителей, а не собираете реальные деньги.
Выберите одного поддерживаемого поставщика платежей, следуйте его руководству по настройке, создайте свой собственный тестовый продукт и цену и скопируйте настройки именованного сервера в apps/web/.env.local.. Сохраните и перезапустите веб-сервер. Выполните одну проверку, используя инструкции песочницы этого поставщика, а затем проверьте состояние доступа к рабочей области после прибытия веб-перехватчика поставщика. Вебхук — это подписанное сообщение провайдера на ваш сервер о платежном событии.
Страница успеха сама по себе не разблокирует функции. Если проверка завершена, но доступ остается неактивным, проверьте доставку вебхука провайдера и обработку событий вашего сервера, прежде чем повторять платеж. Отмена теста и просроченный доступ тоже. Для покупок по телефону используется отдельная настройка RevenueCat/магазин, а не эта онлайн-оформление заказа.
Веб-биллинг
Веб-приложение поддерживает поставщика счетов, выбранного вами с помощью BILLING_PROVIDER; Полоса — один из вариантов. Откройте /billing для веб-планов и управления подписками. Следуйте инструкциям выбранного поставщика, чтобы установить его учетные данные только для сервера, идентификаторы продуктов или цен и параметры проверки веб-перехватчика в соответствующей тестовой или реальной среде.
Авторизуйте через права доступа
Редирект на оплату — не доказательство активного доступа. Серверное право доступа решает, может ли воркспейс использовать платную возможность. Проверяйте это право на границе действия, даже когда интерфейс уже скрывает действие.
Проверяйте жизненный цикл
Используйте события sandbox для проверки активации, обновлений, отмены и обработки вебхуков. Держите повторные события безопасными и обеспечьте, что неактивное право блокирует платные операции. Нативные мобильные покупки остаются отдельной границей интеграции RevenueCat.
Настройка и конфигурация
Каталог планов живёт в src/product-plans.ts и управляет поверхностью /billing и шагом онбординга /choose-plan. Биллинг настраивается на сервере: BILLING_PROVIDER=stripe, STRIPE_SECRET_KEY, price id для каждого плана и интервала, STRIPE_WEBHOOK_SECRET. Lemon Squeezy доступен как альтернативный адаптер.
Тарифы с оплатой за места используют редактируемые счетчики мест (src/seat-count.ts): количество передается вместе с сессией оплаты, чтобы оплаченные места соответствовали рабочему пространству. Тарифы также могут объявлять meteredUsage в src/product-plans.ts, чтобы ежечасная задача billing.usage-report отправляла дельты usage_counter в счетчики биллинга Stripe, а владельцы рабочего пространства задают месячные бюджеты ИИ и жесткие лимиты по каждому счетчику в разделе Настройки → Использование (USAGE_METERS в src/usage-meters.ts).
Checkout: POST /api/billing/checkout
Portal: POST /api/billing/portal
Webhook: POST /api/billing/webhook (signature-verified)Рабочий процесс внедрения
Редирект checkout — лишь отложенное намерение: доступ меняется, когда приходит подписанный webhook и обновляется серверный энтайтлмент. Ограничивайте платные действия проверкой энтайтлмента на серверной границе (entitlement-gate.tsx / entitlement-check.ts), даже если интерфейс их уже скрывает.
Клиентский портал управляет сменой плана, отменой и платёжными методами. Держите состояние подписки читаемым для участников пространства, а нативные мобильные покупки — за отдельной границей RevenueCat.