跳轉到內容
supastack
瀏覽檔案
WebNext.js

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 /zh-tw/docs/web/billing.md (or send Accept: text/markdown).

支付與訂閱

Stripe 結賬、套餐管理與 entitlement 邊界。

詢問本指南
開啟方式

選擇並測試您的支付服務

計費處理付款。訪問許可權作為權利單獨儲存。完成持久帳戶設定,然後在正在執行的 Web 應用程式中開啟 /billing 以檢視計劃介面。通過 BILLING_PROVIDER=local,您正在探索當地行為而不是收集真金白銀。

選擇一個受支援的支付提供商,按照其設定指南進行操作,建立您自己的測試產品和價格,並將指定的伺服器設定複製到 apps/web/.env.local. 中,儲存並重新啟動 Web 伺服器。使用該提供商的沙箱指令完成一項簽出,然後在提供商的 Webhook 到達後檢查工作區的訪問狀態。 Webhook 是提供商向您的伺服器傳送的有關付款事件的簽名訊息。

僅成功頁面並不能解鎖功能。如果結帳完成但訪問仍處於非活動狀態,請在重複付款之前檢查提供商的 Webhook 傳送和伺服器的事件處理。測試取消和過期訪問也是如此。手機購買使用單獨的 RevenueCat/商店設定,而不是此 Web 結帳。

Web 計費

Web應用程式支援您使用BILLING_PROVIDER選擇的計費提供商;條紋是一種選擇。開啟/計費網路計劃和訂閱管理。按照所選提供商的指南,在匹配的測試或即時環境中設定其僅伺服器憑據、產品或價格 ID 以及 Webhook 驗證設定。

通過許可權授權

結賬跳轉不是訪問已啟用的證據。服務端持有的許可權決定工作區能否使用付費能力。即使介面已經隱藏了該動作,也要在動作邊界檢查這個許可權。

驗證生命週期

用沙箱事件驗證啟用、更新、取消與 webhook 處理。保證重複事件安全,並確保失效的許可權會阻止付費操作。原生移動購買仍是單獨的 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),席位數量會隨結賬會話一起傳遞,使計費席位數與工作區保持一致。套餐還可以在 src/product-plans.ts 中宣告 meteredUsage,由每小時執行的 billing.usage-report 任務將 usage_counter 增量上報至 Stripe 計費計量器;同時工作區所有者可在“設定 → 用量”(src/usage-meters.ts 中的 USAGE_METERS)中設定每月 AI 預算與各計量器的硬性上限。

Checkout: POST /api/billing/checkout
Portal:   POST /api/billing/portal
Webhook:  POST /api/billing/webhook  (signature-verified)

實現流程

結賬重定向只是一個待定的意圖 —— 當簽名的 webhook 到達並且伺服器擁有的 entitlement 更新時,訪問許可權才會改變。即使介面已經隱藏了付費操作,也要用伺服器邊界的 entitlement 檢查(entitlement-gate.tsx / entitlement-check.ts)對其進行門禁。

客戶門戶管理套餐變更、取消和支付方式。讓訂閱狀態對工作區成員可讀,並將原生移動端購買放在單獨的 RevenueCat 邊界之後。

常見問題

14 個問題

supastack 是什麼?

supastack 是用於構建 AI 驅動 SaaS 產品的模組化基礎。它把通用基礎設施整合在一起,讓你專注於產品專屬的功能。

它支援 Web 和移動端嗎?

支援。supastack 包含 Next.js 與 Expo 應用,作為 Web 與移動端體驗的起點。

包含哪些認證方式?

Better Auth 覆蓋郵箱/密碼、OTP 與社交登入。個人工作區隨賬戶一起開通,產品記錄從第一天起就有邊界。

AI 是如何支援的?

supastack 包含可配置的多供應商 AI、用量追蹤、預算,以及加密的自帶金鑰(BYOK)支援。

訂閱如何處理?

對於基於該套件構建的產品,Stripe 計費、訂閱與許可權構成付費訪問的基礎。供應商金鑰僅存於服務端。

我的產品專屬程式碼放在哪裡?

產品專屬功能保留在獨立的程式碼庫中,產品通過配置接入 supastack 的基礎模組。

supastack 如何定價?

套件為一次性購買、終身更新:單棧 249 美元(Next.js(Web)、Expo(iOS 與 Android)、Tauri(macOS 與 Windows 桌面)倉庫任選其一),雙棧 398 美元(任選兩個倉庫),或完整套裝 399 美元(全部三個倉庫與完整 monorepo),每個額外開發者席位 75 美元。套件本身沒有訂閱。本站結賬後通過郵件傳送許可證金鑰,倉庫訪問通過 GitHub 邀請授予。

工作區如何界定我的資料?

使用者記錄按 workspaceId 劃定邊界。身份、許可權、AI 用量、計費事件與審計條目都留在個人工作區邊界內。

後臺任務如何工作?

Trigger.dev 是明確的任務執行時。JobRunner 契約只承諾 enqueue、status 與 cancel——工作流語義保持 Trigger.dev 專有且顯式。

郵件與營銷觸達有何不同?

事務性郵件覆蓋產品工作流,如任務完成通知。冷觸達與營銷活動屬於產品自身的範疇,不在本套件的郵件模組內。

移動端購買如何運作?

移動端已支援 RevenueCat 原生購買和恢復購買,訪問許可權由服務端驗證。釋出前需配置商店賬戶並完成裝置測試。Web 計費保持獨立。

AI 供應商金鑰存放在哪裡?

自帶金鑰憑證經過加密且僅存於服務端。金鑰在日誌中被脫敏;用量與預算在工作區級別保持可見。

結賬支援哪些付款方式?

Stripe 託管結賬接受銀行卡,在 Stripe 賬戶啟用後還可提供支付寶與微信支付——方便中國買家。錢包授權為非同步確認,付款完成後許可證頁面會立即更新。

我能申請退款嗎?

獲得程式碼倉庫訪問許可權後,supastack 將永久歸你所有,因此無法退款。但請放心,你將獲得包含終身更新的完整原始碼,可為你自己或客戶構建併發布無限數量的產品。你只需注意不能轉賣程式碼,也不能將倉庫作為啟動模板二次分發。唯一的例外是上線返現——上線一款用 supastack 打造的真實產品並公開分享,在購買後 60 天內達到 5,000 次自然瀏覽或 50 個自然按讚,即可退還已付款項的 50%;詳見條款。

TW
主題