Communitygithub.com

timerise-ai/stripe-connect-subscriptions

AI Agent 技能:在 Next.js App Router 中建置 Stripe Connect 市集結算與平台訂閱計費 — 包含分離收付款轉帳、關聯帳戶入門、託管及滾動準備金、等冪 Webhook、轉帳重試與沖銷、離線催收、帳務調節。

stripe-connect-subscriptions 是什麼?

這個技能提供了一個完整的伺服器端架構,用於處理 Stripe Connect 市集的資金結算與平台訂閱計費。核心洞察在於,買方的付款與賣方的收款在帳務上是獨立失敗的,因此結算流程需確保轉帳失敗不會導致請款失敗,並且可以事後重試。技能支援在 Next.js App Router 中實作分離收付款轉帳(separate charges and transfers)、關聯帳戶入門、託管及滾動準備金、等冪 Webhook 處理、轉帳重試與沖銷,以及離線訂閱計費和催收。它明確區分了何時該使用此技能(當要將一筆付款分給多個賣家,且平台會抽成),以及何時不該使用(如單純的單一賣家結帳)。此技能完全在伺服器端運作,不包含前端 UI,並提供清晰的適配合約,讓開發者可以將領域實體、授權、資料存取等層面替換為自己的實作。參考文檔涵蓋金流模型、資料模型、Stripe 適配器、帳戶入門、Webhook、結算、調節和訂閱等主題。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add timerise-ai/stripe-connect-subscriptions

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Stripe Connect 與訂閱計費

同一 Stripe 帳戶上的兩種金流。一個市集向買方收單一次,再將款項分配給多位賣家(Connect,分離收付款轉帳)。一個平台訂閱則離線向那些賣家收取週期性費用(Billing)。兩者共用一個客戶端、一組 Webhook 和一種貨幣型別。

決定一切的核心洞察:**買方的請款與賣家的付款是獨立失敗的。**到結算流程執行時,資金早已流動,因此被拒絕的轉帳絕不能導致請款或 Webhook 失敗,並且必須能在日後重新觸發,而不會重複付款。

何時使用

  • 一筆付款需拆分給多位賣家,平台從中抽成。
  • 賣家需入門 Connect,並於延遲後付款(託管、準備金、KYC)。
  • 平台使用賣家儲存的卡片定期向其收取訂閱費用。
  • 關聯帳戶看起來正常,但從未實際收款。

何時不該使用

非此情況請改用
單一賣家結帳,無拆分直接使用 Stripe Checkout / Payment Element
PayPal 市集入門 + 付款PayPal 技能;僅共享對接部分
卡片 UI、Payment Element 樣式您的設計系統;此技能為伺服器端

架構

買方 ──請款(平台帳戶,transfer_group = orderId)──▶ 平台餘額
                │  結算分配(Webhook 或讀取同步;租約式聲明)
   ┌────────────┴──┬────────────────────────┬────────────────┐
   ▼               ▼                        ▼                ▼
轉帳:賣家         轉帳:合作夥伴           託管保留         滾動準備金
(source_transaction = 該筆請款)             (釋放時間)    (% 扣留)
   │                                        │  釋放託管定時任務
   ▼                                        ▼
關聯帳戶餘額 ◀── 轉帳重試                  應付餘額 ──▶ 付款(受 KYC/風險控管)
                      (未入帳部分)

平台 ──(off_session)PaymentIntent(客戶 + 已儲存付款方式)──▶ 訂閱發票
             催收:3 次嘗試,每次間隔 3 天,逾期則暫停

關鍵事實

  1. **分離收付款轉帳,絕不使用目的地扣款。**一筆請款只能有一個 destination;多賣家購物車需要一個 transfer_group 下的多次轉帳,因此 application_fee_amount 無法使用。
  2. 沒有 source_transaction 的轉帳會從可用餘額扣除,在請款尚未結算時會被拒絕;對於新平台帳戶來說,每一次轉帳都會如此。這個標誌正是讓資金能在請款結算前順利分配的原因。
  3. **Stripe 的跨境轉帳僅限於美/加/加/歐盟/瑞士/英國內。**其他地區的平台只能向本國關聯帳戶付款。Stripe 會在轉帳時(而非入門時)強制執行此規則,因此範本會在入門階段套用地區限制。
  4. **Connect 事件的簽章金鑰與平台事件不同。**需要兩個端點、兩個密鑰,但同一個 URL — 需同時驗證兩者。
  5. 關聯帳戶的國家/地區不可變更 — 國家錯誤意味著需要重新入門,而非修補。
  6. 金錢絕不使用浮點數 — 全程使用 numeric(19,4) 字串、bigint 運算,僅在 SDK 邊界使用最小單位。

硬性規則

**絕不讓失敗的轉帳導致結算失敗。**將該筆記錄為未入帳並繼續處理。請款已成功,因此 Webhook 也必須成功;重試定時任務稍後會補上該筆款項。

**絕不將重複的 Webhook 插入視為「已處理」。**插入操作是一個聲明;若處理途中崩潰而重試,則每個事件都必須完整執行一次。

**絕不在未向 Stripe 確認某轉帳是否已存在的情況下重新發送。**若因回應遺失而記錄為未入帳,一旦 Stripe 的 24 小時等冪窗口到期,就會重複付款。

**絕不依賴在結尾寫入的狀態標誌來獲得結算獨佔性。**兩個呼叫者常同時到達結算;原子性的租約式聲明才能確保庫存和轉帳只執行一次。

**絕不沖銷超過轉帳剩餘額度的資金。**累積的沖銷(先付閘道費,再退款)若超過原始金額,將會被拒絕。

快速入門

  1. 建立金錢模型 — money.md、data-model.md、store.md。
  2. 客戶端、雙 Webhook 密鑰、環境變數 — stripe-adapter.md。
  3. 入門帳戶;先檢查地區規則 — connect-accounts.md。
  4. 等冪接收事件 — webhooks.md。
  5. 結算:聲明、分配、託管、準備金 — settlement.md。
  6. 收斂:重試未入帳部分、調節費用 — reconciliation.md。
  7. 向租戶計費 — subscriptions.md;使用 operations.md 執行。

根據 adaptation.md 將其適配到您的應用;審計記錄在 provenance.md 中。

適配合約

介面技能提供宿主提供
領域實體Tenant(賣家組織)、Order、VendorOrder、Partner自己的詞彙
租戶範圍一個伺服器派生的 tenantId組織 / 工作區 / 賣家
授權守衛每個路由的適配器函數簽名Clerk、NextAuth、Supabase、自訂
資料存取PaymentsStore 合約 + SQL自己的 ORM 或 SDK
審計與通知呼叫點、事件名稱、負載形狀自己的審計表 / outbox
背景任務4 個定時任務及其頻率自己的排程器
驗證每個路由主體的 schema 形狀zod / valibot / yup
UI無 — 此技能為伺服器端全部 UI

參考文檔目錄

場景觸發關鍵字參考文檔
為何採用此金錢模型分離收付款轉帳、目的地扣款、application_fee_amount、transfer_group、帳簿architecture.md
資料表、欄位、RLSschema、遷移、payment_intents、transfers、escrow_holds、webhook_eventsdata-model.md
資料存取合約store、repository、原子聲明、條件更新、ORMstore.md
金額與四捨五入numeric、bigint、最小單位、分配、最大餘數、分money.md
客戶端與適配器程式碼stripeClient、apiVersion、constructEvent、whsec_、PaymentIntent、refund、payoutstripe-adapter.md
入門、帳戶狀態Express、Accounts v2、account.updated、charges_enabled、acct_、country、regionconnect-accounts.md
安全接收事件等冪、重複、重播、原始請求主體、簽章、invalid_signaturewebhooks.md
分割已付款訂單結算、分配、source_transaction、託管、準備金、單次飛行settlement.md
修復未入帳部分重試、未入帳、退避、採用、閘道費、收回、沖銷、額度reconciliation.md
週期性平台費用SetupIntent、off_session、已儲存卡片、催收、發票、past_due、暫停subscriptions.md
設定、環境變數、定時任務、除錯STRIPE_SECRET_KEY、webhook 端點、stripe listen、cron、「賣家從未收到款項」operations.md
適配到此應用adapt、host probe、rename、ORM、auth guard、portadaptation.md
審計記錄provenance、deviation、kept、added、unverifiedprovenance.md

相關技能