首頁 >web前端 >js教程 >Node.js 中的 Stripe 訂閱整合 [終極指南]

Node.js 中的 Stripe 訂閱整合 [終極指南]

Barbara Streisand
Barbara Streisand原創
2024-11-22 15:57:37702瀏覽

Stripe Subscription Integration in Node.js [ltimate Guide]

讓Stripe 訂閱與後端服務配合使用可能會很棘手,並且常常會導致開發人員所說的可怕的「大腦分裂」——同步管理Stripe 的邏輯和您自己的後端數據。

在 Vratix,我們在建立開源 Stripe 訂閱 API 模組時正面解決了這個問題。以下是我們如何在 Node.js 中處理 Stripe 訂閱計費,以保持事情簡單、可擴展且對開發人員友好。

核心原則:讓 Stripe 成為真理之源

關鍵是將盡可能多的邏輯轉移到Stripe,同時保持資料庫最小化。我們只儲存:

  • 客戶 ID
  • 訂閱ID
  • 計畫

這樣,我們就可以避免:

  • 過於複雜的後端邏輯
  • 用於同步儀表板變更的容易出錯的 Webhook 實作
  • 資料冗餘

透過這種方法,您仍然擁有功能齊全的訂閱計費系統,同時依賴 Stripe 作為唯一的事實來源

我們實施的特點

在本指南結束時,您將擁有一個基於訂閱的應用程序,支援:

  • 用戶訂閱方案
  • 結帳會議
  • 訂閱追加銷售
  • 可用方案清單

技術堆疊

  • PostgreSQL
  • Node.js Express.js
  • 打字稿

第 1 步:資料庫設計

我們先設計一個乾淨、最小的資料庫表:

重點:

  • user_id:引用您的內部使用者表
  • plan:追蹤訂閱方案
  • subscription_id:Stripe 訂閱 ID
  • is_owner:標記主要訂閱持有者

第 2 步:控制器

我們使用工廠函數來保持業務邏輯模組化和可測試。這是我們的 Stripe 訂閱控制器的片段:

主要亮點:

  • 自訂訂閱金鑰:源自產品名稱或用於清理計畫檢查的lookup_key(user.plan === 'pro_plan')。
  • Stripe-first 方法:我們直接從 Stripe 取得訂閱數據,避免了「腦裂」。

步驟 3: 簡化 Stripe 結帳

我們的 createCheckout 函數設定訂閱結帳會話:

想跳過這一切嗎?

我們已將所有內容打包到現成的開源模組中。 不到 30 秒,您可以設定:

  • 條紋整合
  • 身份驗證
  • 資料庫配置
  • 預建路由與 SQL 查詢

運行這個:

查看我們的 Stripe 訂閱模組文件以了解更多詳細資訊。

完整程式碼可在我們的 GitHub 儲存庫中取得。

在此處觀看示範視頻,以了解如何使用工作 UI 完成所有這些操作。

我很想聽聽您的想法 - 這是否會讓建立訂閱 API 變得更容易?讓我們知道您接下來想看到哪些功能!

以上是Node.js 中的 Stripe 訂閱整合 [終極指南]的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn