BacodoBACODO

NestJS 插件

NestJS 的 Stripe 集成

新增官方 Stripe Node SDK、支付模組和用於驗證原始主體上的 Stripe-Signature 的 Webhook 控制器。 NestJS 是 API — 它不會掛載 Payment Element,也不是 Next.js 路由處理程序。

  • 包含完整原始碼並永久屬於您
  • 無需附加許可證密鑰或循環許可證
  • 生產就緒並經過測試
  • 整合到您現有的 NestJS 專案和堆疊中
  • 包括移交後 30 天的技術支持
  • 可選 6 個月延長技術支持,價格為附加價格的 20%

$175

USD · NestJS

查看示範

NestJS 的 Stripe 集成 · NestJS

完整原始碼無許可證密鑰生產就緒經過測試的集成30 天支持

Requirements

What NestJS 的 Stripe 集成 needs

  • 現有 NestJS 專案
  • Stripe 測試模式存取
  • 付款介面需要 frontend

無需倉庫權限。僅在你希望我們直接整合時才需要專案存取權限。

功能說明

NestJS API 上的 Stripe — 控制器不是卡片形式

Bacodo 將 Stripe 整合到您已有的 NestJS 專案中。移交後,模組、服務和控制器位於您的儲存庫中。您仍然擁有 Stripe 帳戶、API 密鑰和 Stripe 費用。 NestJS 從不儲存 PAN。

它解決的問題

生產 NestJS Stripe 路徑需要官方的 stripe SDK、在提供者中建立 PaymentIntent,以及在未修改的請求緩衝區上建構事件。如果您@Body() webhook,Nest 的預設 JSON 解析器會破壞簽章驗證。這是一個真正的錯誤,而不是一個口號。

如何落地專案

我們新增一個 NestJS 模組(STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET 的 ConfigService)、一個建立 PaymentIntents 的服務以及一個讀取 rawBody 的 Webhook 控制器。訂單寫入會通過您已使用的儲存庫或 ORM(Prisma、TypeORM 或 MikroORM),而不是僅限 Bacodo 的儲存。

為什麼它可以節省開發時間

您的團隊跳過第一個生產 NestJS Stripe 實作:Express 或 Fastify 上的 rawBody、冪等事件處理、SCA 感知的 PaymentIntents 以及記錄測試到上線金鑰的移交。

它是為誰而設

已經運行 NestJS 並需要可維護的支付 API 的後端工程師和機構。如果您想要 Next.js App Router 或 React SPA,那麼這些是不同的 Stripe 著陸點。

主要功能

NestJS 的 Stripe 集成 包含什麼

NestJS 提供者中的官方 stripe SDK

使用 NestJS 服務內的 stripe Node 套件建立 PaymentIntents。金鑰來自 ConfigService / env — 絕不來自客戶端發布的 DTO,也絕不來自前端套件。

Webhook 控制器使用 rawBody,而不是 @Body()

stripe.webhooks.constructEvent 需要 Stripe 簽章的確切位元組。我們在該路由上啟用 Nest rawBody(或 Fastify 原始解析器)。首先解析 JSON 是 NestJS Stripe 整合在生產中失敗的原因。

payment_intent.succeeded後的NestJS訂單狀態

ConstructEvent 成功後(而不是感謝頁面後),Fulfillment 在 NestJS 處理程序中運作。我們更新您現有的訂單或權利記錄,以便您已經公開的 API 反映付費狀態。

NestJS 測試模式然後是即時 Stripe 鍵

首先使用 Stripe 測試金鑰和 webhook 金鑰發送 NestJS。上線是記錄的環境和儀表板端點切換,而不是附加許可證。

冪等 NestJS Webhook 處理

條紋重試。 NestJS 處理程序關閉 event.id(或 PaymentIntent id),因此重複的 POST 不會雙重履行。

您的 NestJS 客戶始終是客戶

React、Next.js 或行動應用程式僅從此 NestJS API 接收可發布金鑰和短暫的 client_secret。此附加元件是 NestJS 伺服器路徑,而不是 Nest 內的 Elements。

適用場景

何時適合使用 NestJS 的 Stripe 集成

現有的 NestJS 商務或預訂 API

您已經在 NestJS 中建立了訂單,並且需要 API 來建立 PaymentIntents 並標記那些透過 Webhooks 支付的訂單。

代理商將 NestJS 用戶端 API 交付生產

您需要 NestJS 中的可維護 Stripe 模組、客戶端儲存庫中的原始程式碼以及記錄的即時金鑰切換,而不是放入 main.ts 中的一次性 Express 腳本。

透過 NestJS API 計費的 SaaS

NestJS 建立第一個 PaymentIntent 或附加付款方式。定期條紋計費和客戶入口網站保留在伺服器上。繁重的計費工作可能需要自訂報價。

NestJS 位於單獨的前端後面

Next.js、React 或 mobile 已經呼叫此 NestJS API。 NestJS 的 Stripe 整合僅是 API 端——如果您也需要的話,前端 Stripe.js 是不同的平台。

Demo

NestJS Stripe webhook 路徑預覽

預覽 NestJS 伺服器路徑:建立 PaymentIntent、接收 POST /webhooks/stripe、在 rawBody 上建構事件、更新訂單狀態。相容性檢查後,您的 Stripe 帳戶的即時沙箱即可使用。本頁面不處理真實收費,也不在NestJS收卡。

運作方式

NestJS 的 Stripe 整合是如何交付的

標準 Bacodo 附加工作流程,針對 Express 與 Fastify、rawBody、ConfigModule 以及您的服務已使用的 ORM 進行特定於 NestJS 的檢查。

  1. 01

    選擇 NestJS Stripe

    確認 NestJS 的 Stripe 集成,以及第一天是否是 NestJS API 上的 PaymentIntents、結帳會話或兩者。

  2. 02

    NestJS 相容性檢查

    查看 NestJS / Node 版本、HTTP 適配器(Express 預設或 Fastify)、現有訂單持久性、身份驗證防護以及您是否已經擁有 Stripe 帳戶。

  3. 03

    整合到 NestJS 中

    新增條帶包、付款模組、建立意圖端點和用於驗證原始正文上的簽名的 Webhook 控制器。

  4. 04

    配置 NestJS 應用程式

    從 env 連線 ConfigService:金鑰、客戶端的可發佈金鑰、webhook 金鑰以及將呼叫的公共 HTTPS URL Stripe。

  5. 05

    測試NestJS支付路徑

    針對 NestJS Webhook 執行 Stripe CLI 或儀表板測試事件,以及建立意圖和拒絕路徑。確認已解析的 JSON 正文未如預期簽名。

  6. 06

    移交NestJS源碼

    提供 NestJS 原始碼、環境註解和即時金鑰清單。 NestJS 實作由您負責維護。

架構

Stripe 如何連接 NestJS 項目

NestJS 進程持有金鑰。客戶端要求 NestJS 控制器建立 PaymentIntent。 Stripe 透過 webhook 通知 NestJS。 NestJS 驗證 rawBody 上的簽名,然後寫入訂單狀態。

客戶端應用程式NestJS 控制器條帶節點SDKStripe 支付意圖Webhook → NestJS rawBody您的 ORM/儲存庫

支援的技術

NestJS 的 Stripe 集成 實際使用的技術

Node.js 上的 NestJS

Stripe SDK 接受的 Node LTS 上的目前 NestJS。預設 HTTP 適配器是 Express。只有當 NestJS 應用程式啟動方式已如此且我們在相容性檢查中同意時,才會包含 Fastify。

官方條帶節點庫

PaymentIntents、結帳會話和 webhooks.constructEvent。除非您明確要求,否則我們不會為產品製作非官方的 Nestjs-stripe 包裝器。

你對 NestJS 的堅持

訂單或權利更新保留在 Prisma、TypeORM、MikroORM 或您已有的儲存庫上。該附加元件不會發明新的資料庫。

NestJS API 的 Stripe 帳戶

您的 Stripe 帳戶、NestJS 使用的測試和即時金鑰、webhook 端點和儀表板事件。 Stripe 處理費由 Stripe 負擔。

需要 NestJS 託管

可以執行 Node 並從 Stripe 接收 HTTPS POST 的主機。僅靜態網站或僅 Next.js 匯出無法託管此 NestJS Webhook 路徑。

交付內容

NestJS 的 Stripe 整合包括哪些內容

  • 整合到現有的 NestJS 專案中
  • 儲存庫中的完整原始程式碼
  • ConfigModule env、支付模組和 webhook 控制器
  • PaymentIntent 或 Checkout Session 建立此 API 所需的路徑
  • rawBody/adapter註解所以constructEvent實際上驗證
  • 在移交前測試了 NestJS webhook 和意圖流
  • 測試到上線切換的移交說明
  • 移交後30天技術支持

不包含在附加價格中

  • Stripe 帳戶、API 金鑰和 Stripe 處理費 — 您擁有這些
  • 新的店面或 Stripe.js UI — NestJS 是 API
  • 從 NestJS 重寫為 Next.js 路由處理程序
  • Marketplace Connect、自訂計費產品或應用程式內購買替換,除非屬於自訂工作

Pricing

NestJS 定價的 Stripe 集成

此價格僅適用於 NestJS 平台。它不使用 Next.js、Django、FastAPI、React 或 Flutter 附加定價。

NestJS 的 Stripe 集成

將生產就緒的 Stripe PaymentIntents 和簽署的 Webhooks 新增至現有的 NestJS API 並保留原始程式碼。

需求

  • 現有 NestJS 專案
  • Stripe 測試模式存取
  • 付款介面需要 frontend

$175

一次性

NestJS

需要 frontend?

  • 完整原始碼
  • 無授權費
  • 30 天支援
  • 完整整合

安全結帳由stripe

交付與安全

NestJS 交付與安全實踐

預計 NestJS 交付量

典型的 NestJS Stripe 整合的範圍是在 NestJS 相容性檢查之後。時間軸取決於您的 HTTP 適配器、驗證防護以及用戶端呼叫 NestJS 的方式。

移交前在 NestJS 上進行測試

在我們移交之前,會針對 NestJS 應用程式執行測試模式 PaymentIntents、Webhook 簽章、重試和拒絕路徑。

Stripe 秘密保留在 NestJS ConfigService 中

金鑰和 Webhook 簽章金鑰保留在伺服器環境中。客戶端僅收到可發佈的金鑰或短期的 client_secret。

NestJS 寫入之前的 Webhook 驗證

NestJS webhook 控制器在更新訂單或權利狀態之前驗證原始主體上的 Stripe 簽章。

沒有無法驗證的 NestJS 安全性聲明

我們不主張 PCI 認證、零欺詐或保證批准率。 NestJS 不儲存 PAN。卡資料是由客戶端上的 Stripe Checkout 或 Elements 收集的,而不是我們保留的自訂 NestJS 卡 DTO。

FAQ

常見問題

NestJS 的 Stripe 整合包含哪些內容?

Stripe Integration for NestJS 包括官方 stripe Node SDK、NestJS Payments 模組、create-PaymentIntent 服務、在原始主體上調用 constructEvent 的 Webhook 控制器、現有商店的訂單狀態更新、針對 Stripe 測試事件的測試以及移交註釋。您會在專案中收到 NestJS 原始碼。 Stripe 費用和您的 Stripe 帳戶是分開的。

您會將 Stripe 整合到我們現有的 NestJS 專案中嗎?

是的。 Stripe Integration for NestJS 是為您已有的 NestJS API 建置的。我們將模組、控制器和 ConfigService env 放入您目前的 NestJS 應用程式中,而不是將單獨的演示儲存庫作為可交付成果提供。

Stripe Integration for NestJS 會收集 NestJS 中的卡號?

不可以。 NestJS 不得存放 PAN。客戶使用 Stripe Checkout 或 Elements。 Stripe Integration for NestJS 擁有伺服器端 PaymentIntents、webhooks 和訂單寫入。發布原始卡片資料的自訂 NestJS DTO 超出了預設範圍。

Stripe Integration for NestJS 使用哪個 Stripe 套件?

NestJS 的 Stripe Integration 使用官方的 stripe Node 函式庫來實作 PaymentIntents、Checkout Sessions 和 webhooks.constructEvent。除非您明確要求,否則我們不會為產品製作非官方的 Nestjs-stripe 包裝器。

為什麼Stripe Integration for NestJS 堅持使用rawBody?

stripe.webhooks.constructEvent 驗證 Stripe 簽章的確切位元組。 Nest 的預設 JSON 解析器會改變該主體。 Stripe Integration for NestJS 在 webhook 路由上啟用 rawBody(或 Fastify 原始解析器)。使用 @Body() 會導致 NestJS 簽名檢查在生產中失敗。

Fastify 是否包含在 NestJS 的 Stripe 整合中?

NestJS 的預設 Stripe 整合假定 Nest 附帶 Express 適配器。只有當您的 NestJS 應用程式已使用 FastifyAdapter 啟動並且我們在 NestJS 相容性檢查期間同意原始主體路徑時,才會包含 Fastify。

Stripe Integration for NestJS 可以收取訂閱付款嗎?

NestJS 可以建立 PaymentIntent 或 Checkout Session 並儲存 Stripe 客戶 ID。定期 Stripe Billing 產品、客戶入口網站和發票邏輯保留在伺服器上。訂閱量大的 NestJS 工作可能需要自訂報價。

Stripe 可發布密鑰和秘密密鑰位於 NestJS 應用程式中的什麼位置?

NestJS 程序使用 ConfigService/環境變數中的金鑰和 Webhook 簽章金鑰。客戶端僅收到可發布的金鑰。 NestJS 的 Stripe Integration 不會將金鑰放入 DTO 或前端包中。

NestJS 中的 Stripe 測試模式和即時模式如何運作?

我們首先針對 Stripe 測試鍵實作 Stripe Integration for NestJS 並測試 Webhook 事件。上線是 Stripe Dashboard 和 NestJS env 中記錄的金鑰和端點切換,而不是附加授權啟動。

Stripe Integration for NestJS 如何處理 3-D Secure / SCA?

NestJS 建立支援 SCA 的 PaymentIntents。客戶端使用 Stripe.js 或 Checkout 完成 3-D Secure。 NestJS 僅在 webhook 上的 payment_intent.succeeded 之後完成,而不是僅在瀏覽器重定向之後完成。

NestJS 結帳是否需要 Stripe webhook?

是,用於在 NestJS 建立的 PaymentIntent 或結帳會話之後實作。 NestJS 201 對客戶端的回應並不是事實的來源。 Webhook 控制器驗證簽名,然後將訂單標記為已付款。

我們可以保留 Prisma 或 TypeORM 與 NestJS 的 Stripe 整合嗎?

是的。 Stripe Integration for NestJS 通常會在現有 NestJS 訂單模型旁邊新增欄位或精簡付款記錄,而不是取代 Prisma、TypeORM 或 MikroORM。

Stripe Integration for NestJS 價格是否包含 Stripe 帳戶或費用?

不需要。您建立並擁有 Stripe 帳戶、API 金鑰和 Stripe 處理費。 NestJS 附加價格是在您的 NestJS 專案中實施的價格,而不是 Bacodo 支付授權的價格。

NestJS 的 Stripe 整合與 Next.js 路由處理程序相同嗎?

不。 NestJS 是一個獨立的 Node API。 Next.js 應用程式路由器和路由處理程序是 Next.js 的 Stripe 整合。我們不會將 NestJS API 重寫到此 NestJS 附加價格中的 Next.js 中。

我們可以在 NestJS 中自訂 Stripe 收據和元資料嗎?

是的。 PaymentIntent 或 Checkout 會話元資料、客戶記錄以及 Webhook 確認後保留的欄位在 Stripe Integration for NestJS 期間與您現有的 NestJS 訂單模型保持一致。

Stripe 移交後包含哪些 NestJS 支援?

NestJS 原始碼位於您的儲存庫中,因此您的團隊可以維護它。包含的 30 天支援涵蓋了已交付的 Stripe Integration for NestJS 範圍中的技術問題和缺陷,而不是不相關的 NestJS 功能工作。

整合後如何處理 stripe 或 NestJS 更新?

在 30 天的時間內,我們協助解決因記錄的 Stripe API 或 stripe 包變更而導致的已交付 NestJS 整合的損壞。此後持續的 NestJS 升級是您的維護,或者是擴展技術支援(如果您購買)。

如果在生產 NestJS 應用程式中 Stripe 付款失敗怎麼辦?

我們記錄如何讀取 PaymentIntent 狀態、Stripe 儀表板日誌和 NestJS webhook 交付。 30 天支援包括對簽章失敗(通常是 rawBody)、重試以及交付的 NestJS 流的金鑰配置錯誤進行故障排除。

哪些 NestJS 版本與 Stripe Integration for NestJS 相容?

我們根據我們在整合時固定的條帶版本來確認您的 NestJS 和 Node LTS 版本。較舊或嚴重分叉的 NestJS 運行時可能需要額外的範圍。

NestJS Stripe 整合的 30 天支援與 6 個月擴展技術支援分別是什麼?

交付的 NestJS Stripe 路徑包含移交後 30 天。擴展技術支援是可選的,費用為 NestJS 附加價格的 20%,涵蓋針對同一 NestJS 整合(而不是新產品構建)的六個月以上的技術幫助。

NestJS 的 Stripe 集成

將生產就緒的 Stripe 付款添加到現有的 NestJS API,保留原始程式碼,並讓伺服器自行實現。

$175