Перейти к содержимому
supastack
Обзор документации
ДесктопTauri

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/modules/billing-configuration.md (or send Accept: text/markdown).

Конфигурация Stripe и вебхуки

Свяжите веб-подписки с серверными правами доступа.

Задать вопрос об этом руководстве
Открыть в

Настройка и конфигурация

Перед любым действием прочтите Перед началом работы и Основные сведения о терминале. В этих инструкциях предполагается, что вы открыли полный монорепозиторий supastack в VS Code; его корень package.json отмечает корень репозитория. В командах pnpm пакет рабочей области представляет собой папку приложения или общего кода; В продукте рабочее пространство — это контейнер данных и граница безопасности команды. corepack pnpm --filter ... выбирает один пакет из монорепозитория, пока команды выполняются из его корня. Если вы открыли только синхронизированную папку мобильного устройства или рабочего стола, она не содержит веб-серверной части, настройки Docker или корневых сценариев: запустите серверную часть из этого монорепозитория или доступного размещенного сервера и используйте собственные сценарии папки платформы. Переменная среды — это именованный параметр, хранящийся в локальном файле .env или на панели управления хостингом; перезапустите соответствующее приложение после его изменения и не допускайте попадания секретов сервера в значения NEXT_PUBLIC_ и EXPO_PUBLIC_.

1. Откройте apps/web/.env.local и сохраните BILLING_PROVIDER=local, изучая экран оформления заказа.

2. Для реальной интеграции создайте продукты тестового режима у одного поставщика, затем добавьте ключи его сервера и секрет веб-перехватчика в настройки частной среды веб-хоста. Вебхук — это подписанное сообщение, которое служба выставления счетов отправляет в ваше приложение после оформления заказа, продления или отмены; путь к конечной точке указан в примере кода этого руководства.

3. Запустите Интернет с помощью corepack pnpm --filter @supastack/web dev и протестируйте только песочницу. Ожидается: проверенный веб-перехватчик обновит права рабочей области, для которой выполнен вход; открытие страницы оформления заказа само по себе не дает доступа.

Используйте учетные данные песочницы/тестирования при интеграции. Настройте BILLING_PROVIDER плюс секреты только для сервера провайдера: Stripe → STRIPE_SECRET_KEY, STRIPE_PRICE_ID, STRIPE_WEBHOOK_SECRET; лимонный сок → LEMONSQUEEZY_API_KEY, LEMONSQUEEZY_STORE_ID, LEMONSQUEEZY_VARIANT_ID, LEMONSQUEEZY_WEBHOOK_SECRET; кремовый → CREEM_API_KEY, CREEM_PRODUCT_ID, CREEM_WEBHOOK_SECRET (CREEM_TEST_MODE=true для песочницы); полярные → POLAR_ACCESS_TOKEN, POLAR_PRODUCT_ID, POLAR_WEBHOOK_SECRET (POLAR_SERVER); упс → WHOP_API_KEY, WHOP_PLAN_ID, WHOP_WEBHOOK_SECRET; весло → PADDLE_API_KEY, PADDLE_PRICE_ID, PADDLE_WEBHOOK_SECRET (PADDLE_ENVIRONMENT); додо → DODO_PAYMENTS_API_KEY, DODO_PRODUCT_ID, DODO_PAYMENTS_WEBHOOK_KEY (DODO_PAYMENTS_ENVIRONMENT); PayPal → PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_PLAN_ID, PAYPAL_WEBHOOK_ID (PAYPAL_ENVIRONMENT). Цена/продукт должна соответствовать предполагаемой повторяющейся подписке.

Webhook endpoint: /api/billing/webhook (stripe), /api/billing/webhook/lemonsqueezy, /api/billing/webhook/creem, /api/billing/webhook/polar, /api/billing/webhook/whop, /api/billing/webhook/paddle, /api/billing/webhook/dodo, /api/billing/webhook/paypal
Checkout endpoint: /api/billing/checkout
Portal endpoint: /api/billing/portal

Команды для копирования

Следуйте комментариям, чтобы узнать, в какой папке запускается команда. Если помечены два терминала, откройте два окна терминала и продолжайте выполнять первую команду, пока используете вторую.

corepack pnpm --filter @supastack/web dev

Рабочий процесс внедрения

Следуйте списку событий жизненного цикла в docs/real-provider-smoke.md при настройке endpoint вебхука. Проверка подписи требует соответствующего секрета вебхука endpoint. Один лишь редирект на оплату никогда не должен давать доступ.

Право доступа на границе серверного действия решает, разрешена ли платная работа. Обрабатывайте повторные события безопасно и ограничивайте записи клиентов/подписок правильным воркспейсом. Веб-оплата остаётся отдельной от нативных покупок.

Ключ, который предоставляет план, — это словарь продукта, общий для всех поверхностей: ProductPlan.entitlement в src/product-plans.ts объявляет машинный ключ в нижнем регистре, записываемый в реестр, пока план оплачивается (комплект поставляется с «ai.reference-task» для pro и life; src/billing-runtime.ts передает его в BFF). Один и тот же ключ — это то, с чем сравниваются поле require_entitlement записи CMS и свойство entitlementKey компонента EntitlementKey, сравнивающее равенство — запись, закрытая на «ai.reference-task», разблокируется для любого рабочего пространства, содержащего этот грант, в то время как ключ, который не предоставляет ни один план, остается заблокированным для всех.

Проверка и устранение неполадок

Если веб-перехватчик отклонен, сравните точную песочницу URL и секрет подписи на панели мониторинга поставщика с настройками сервера и проверьте, требует ли этот поставщик переадресации запросов на localhost. Если проверка работает, но доступ остается заблокированным, проверьте результат веб-перехватчика и ключ доступа в плане. Никогда не тестируйте данные с реальными платежными данными, следуя этому местному руководству.

Тестируйте активацию, обновления, отмену, неверные подписи и повторные события в sandbox. Инспектируйте сохранённое состояние доступа после обработки. Создание неиспользованной сессии оплаты доказывает только связность, а не выполнение жизненного цикла.

Часто задаваемые вопросы

14 вопросов

Что такое supastack?

supastack — модульная основа для создания SaaS-продуктов с AI. Она объединяет общую инфраструктуру, чтобы вы могли сосредоточиться на продуктовых функциях.

Поддерживает ли он web и mobile?

Да. supastack включает приложения Next.js и Expo как отправные точки для web- и мобильных интерфейсов.

Какая аутентификация включена?

Better Auth покрывает e-mail/пароль, OTP и социальный вход. Личные воркспейсы провижинируются вместе с аккаунтом, чтобы продуктовые записи были ограничены с первого дня.

Как он поддерживает AI?

supastack включает настраиваемый мультипровайдерный AI, учёт использования, бюджеты и зашифрованную поддержку bring-your-own-key.

Как обрабатываются подписки?

Для продуктов на ките Stripe-биллинг, подписки и права доступа образуют основу платного доступа. Секреты провайдеров остаются только на сервере.

Где живёт мой продуктовый код?

Продуктовые функции остаются в отдельном коде, а продукт настраивает и интегрирует модули основы supastack.

Как устроены цены supastack?

Кит — разовая покупка с пожизненными обновлениями: один фреймворк за $249 (временная стартовая цена — скидка $100 от стандартной цены $349) или все фреймворки (Next.js, iOS, Android) за $499 (временная стартовая цена — скидка $100 от стандартной цены $599), плюс $75 за каждое дополнительное место разработчика. Без подписки на кит. Оплата на этом сайте доставляет лицензионный ключ по e-mail, доступ к репозиторию — через приглашение GitHub.

Как воркспейсы ограничивают мои данные?

Записи пользователей ограничены по workspaceId. Идентичность, права доступа, AI-использование, события биллинга и записи аудита остаются внутри границы личного воркспейса.

Как работают фоновые задачи?

Trigger.dev — явный рантайм задач. Контракт JobRunner обещает только enqueue, status и cancel — семантика workflow остаётся специфичной для Trigger.dev и явной.

Чем почта отличается от рассылок?

Транзакционная почта покрывает продуктовые сценарии вроде уведомлений о завершении. Холодные рассылки и кампании — забота продукта, вне почтового модуля этого кита.

Как работают покупки в мобильном приложении?

Мобильное приложение поддерживает нативные покупки и восстановление через RevenueCat, а сервер проверяет доступ. Настройте аккаунты магазинов и завершите тестирование на устройствах перед публикацией. Веб-оплата остается отдельной.

Где хранятся ключи AI-провайдеров?

Bring-your-own-key креденшелы зашифрованы и остаются только на сервере. Ключи удаляются из логов; использование и бюджеты видны на уровне воркспейса.

Какие способы оплаты принимает оформление заказа?

Оформление заказа на Stripe принимает карты, а после включения кошельков в аккаунте Stripe может также предлагать Alipay и WeChat Pay — удобно для покупателей из Китая. Авторизации кошельков подтверждаются асинхронно, поэтому страница лицензии обновляется, как только платёж завершается.

Могу ли я получить возврат средств?

После получения доступа к репозиторию supastack остается вашим навсегда, поэтому возврат средств невозможен. Но будьте уверены: вы получаете полный исходный код с пожизненными обновлениями для создания и запуска неограниченного числа продуктов для себя или клиентов. Вы лишь не можете перепродавать код или распространять репозиторий как стартовый набор или шаблон.

RU
Тема