- 现有 NestJS 项目
- Stripe 测试模式访问
- 支付界面需要 frontend
无需仓库权限。仅在你希望我们直接集成时才需要项目访问权限。
NestJS 附加组件
加入官方 stripe Node SDK、Payments 模块,以及在原始请求体上校验 Stripe-Signature 的 webhook 控制器。NestJS 是 API — 不挂载 Payment Element,也不是 Next.js Route Handlers。
起
$175
USD · NestJS
NestJS 的 Stripe 集成 · NestJS
Requirements
无需仓库权限。仅在你希望我们直接集成时才需要项目访问权限。
功能说明
Bacodo 将 Stripe 接入你已有的 NestJS 项目。交付后,模块、服务与控制器在你的仓库。Stripe 账户、API 密钥与手续费仍归你。NestJS 从不存储 PAN。
生产级 NestJS Stripe 路径需要官方 stripe SDK、在 provider 中创建 PaymentIntent,以及在未改动的请求缓冲上 constructEvent。若对 webhook 使用 @Body(),Nest 默认 JSON 解析会破坏签名校验。这是真实缺陷,不是口号。
我们加入 NestJS 模块(ConfigService 管理 STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRET)、创建 PaymentIntent 的服务,以及读取 rawBody 的 webhook 控制器。订单写入走你已有的仓库或 ORM — Prisma、TypeORM 或 MikroORM — 不是 Bacodo 专属存储。
团队跳过第一次生产级 NestJS Stripe 实现:Express 或 Fastify 上的 rawBody、幂等事件处理、支持 SCA 的 PaymentIntent,以及测试到正式密钥的交付说明。
已运行 NestJS、需要可维护支付 API 的后端工程师与代理商。若你要的是 Next.js App Router 或 React SPA,那是其他 Stripe 落地页。
主要功能
在 NestJS 服务里用 stripe Node 包创建 PaymentIntent。密钥来自 ConfigService / 环境变量 — 从不来自客户端 POST 的 DTO,也不来自前端包。
stripe.webhooks.constructEvent 需要 Stripe 签名的原始字节。我们在该路由启用 Nest rawBody(或 Fastify raw 解析器)。先解析 JSON 是 NestJS Stripe 在生产环境失败的常见原因。
履约在 constructEvent 成功后的 NestJS 处理器中运行,不是感谢页之后。我们更新你已有的订单或权益记录。
先用 Stripe 测试密钥与 webhook 密钥交付 NestJS。上线是有文档的环境变量与 Dashboard 端点切换,不是附加组件许可证。
Stripe 会重试。NestJS 处理器按 event.id(或 PaymentIntent id)去重,重复 POST 不会二次履约。
React、Next.js 或移动应用只从该 NestJS API 收到可发布密钥与短期 client_secret。本附加组件是 NestJS 服务端路径,不是在 Nest 里挂 Elements。
适用场景
你已在 NestJS 中创建订单,需要 API 创建 PaymentIntent 并从 webhook 标记已支付。
需要可维护的 NestJS Stripe 模块、源码在客户仓库,以及正式密钥切换清单,而不是把一次性 Express 脚本塞进 main.ts。
NestJS 创建首个 PaymentIntent 或绑定支付方式。周期性 Stripe Billing 与客户门户留在服务端。偏重 Billing 可能需要定制报价。
Next.js、React 或移动端已调用该 NestJS API。NestJS 的 Stripe 集成只是 API 一侧 — 若还需要前端 Stripe.js,那是另一个平台落地页。
Demo
预览 NestJS 服务端路径:创建 PaymentIntent、接收 POST /webhooks/stripe、在 rawBody 上 constructEvent、更新订单状态。对你 Stripe 账户的实时沙箱在兼容性检查后提供。本页不处理真实扣款,也不在 NestJS 中采集卡。
工作方式
标准 Bacodo 附加组件流程,并针对 Express 与 Fastify、rawBody、ConfigModule 以及服务已使用的 ORM 做检查。
01
确认 NestJS 的 Stripe 集成,并确认第一天是 PaymentIntent、Checkout Session,还是两者都在 NestJS API 上。
02
审查 NestJS / Node 版本、HTTP 适配器(默认 Express 或 Fastify)、现有订单持久化、鉴权守卫,以及是否已有 Stripe 账户。
03
加入 stripe 包、Payments 模块、创建 intent 的端点,以及在原始请求体上校验签名的 webhook 控制器。
04
通过环境变量接入 ConfigService:密钥、给客户端的可发布密钥、webhook 密钥,以及 Stripe 将调用的公开 HTTPS URL。
05
用 Stripe CLI 或 Dashboard 测试事件打 NestJS webhook,并跑创建 intent 与拒绝路径。确认已解析的 JSON 体会按预期校验失败。
06
交付 NestJS 源码、环境说明与正式密钥清单。NestJS 实现由你维护。
架构
NestJS 进程持有密钥。客户端请求 NestJS 控制器创建 PaymentIntent。Stripe 通过 webhook 通知 NestJS。NestJS 在 rawBody 上校验签名,然后写入订单状态。
支持的技术
stripe SDK 接受的 Node LTS 上的当前 NestJS。默认 HTTP 适配器是 Express。仅当你的 NestJS 应用已用 Fastify 启动并在兼容性检查中同意时才包含 Fastify。
PaymentIntents、Checkout Sessions 与 webhooks.constructEvent。除非你明确要求,我们不会把非官方 nestjs-stripe 包装器当成产品。
订单或权益更新留在 Prisma、TypeORM、MikroORM 或你已有的仓库。本附加组件不发明新数据库。
你的 Stripe 账户、NestJS 使用的测试与正式密钥、webhook 端点与 Dashboard 事件。手续费留在 Stripe。
能运行 Node 并接收 Stripe HTTPS POST 的主机。纯静态站点或仅 Next.js export 无法托管此 NestJS webhook 路径。
交付内容
Pricing
此价格仅针对 NestJS 平台。不使用 Next.js、Django、FastAPI、React 或 Flutter 附加组件定价。
NestJS 的 Stripe 集成
为现有 NestJS API 接入可上线的 Stripe PaymentIntent 与已签名 webhook,并保留全部源码。
要求
$175
一次性NestJS
需要 frontend?
安全结账由stripe
交付与安全
典型 NestJS Stripe 集成在 NestJS 兼容性检查后确定范围。时间线取决于 HTTP 适配器、鉴权守卫以及客户端如何调用 NestJS。
交付前在 NestJS 应用上跑测试 PaymentIntent、webhook 签名、重试与拒绝路径。
密钥与 webhook 签名密钥留在服务器环境变量。客户端只收到可发布密钥或短期 client_secret。
NestJS webhook 控制器在更新订单或权益状态前,在原始请求体上校验 Stripe 签名。
我们不声称 PCI 认证、零欺诈或保证通过率。NestJS 不存储 PAN。卡数据由客户端上的 Stripe Checkout 或 Elements 采集,不是我们持久化的自定义 NestJS 卡 DTO。
FAQ
NestJS 的 Stripe 集成包含官方 stripe Node SDK、NestJS Payments 模块、创建 PaymentIntent 的服务、在原始请求体上调用 constructEvent 的 webhook 控制器、对现有存储的订单状态更新、针对 Stripe 测试事件的测试以及交付说明。你在项目中收到 NestJS 源码。Stripe 手续费与账户是分开的。
会。NestJS 的 Stripe 集成面向你已有的 NestJS API。我们把模块、控制器与 ConfigService 环境变量装进当前 NestJS 应用,而不是把单独演示仓库当作交付物。
不会。NestJS 不得存储 PAN。客户端使用 Stripe Checkout 或 Elements。NestJS 的 Stripe 集成负责服务端 PaymentIntent、webhook 与订单写入。提交原始卡数据的自定义 NestJS DTO 不在默认范围内。
NestJS 的 Stripe 集成使用官方 stripe Node 库做 PaymentIntents、Checkout Sessions 与 webhooks.constructEvent。除非你明确要求,我们不会把非官方 nestjs-stripe 包装器当成产品。
stripe.webhooks.constructEvent 校验 Stripe 签名的原始字节。Nest 默认 JSON 解析器会改动该请求体。NestJS 的 Stripe 集成在 webhook 路由启用 rawBody(或 Fastify raw 解析器)。在那里用 @Body() 是 NestJS 生产环境签名失败的常见原因。
默认 NestJS 的 Stripe 集成假定 Nest 自带的 Express 适配器。仅当你的 NestJS 应用已用 FastifyAdapter 启动并在 NestJS 兼容性检查中同意原始请求体路径时才包含 Fastify。
NestJS 可以创建 PaymentIntent 或 Checkout Session 并存储 Stripe customer id。周期性 Stripe Billing 产品、客户门户与发票逻辑留在服务端。偏重订阅的 NestJS 工作可能需要定制报价。
NestJS 进程从 ConfigService / 环境变量使用密钥与 webhook 签名密钥。客户端只收到可发布密钥。NestJS 的 Stripe 集成不会把密钥放进 DTO 或前端包。
我们先用 Stripe 测试密钥与测试 webhook 事件实现 NestJS 的 Stripe 集成。上线是 Stripe Dashboard 与 NestJS 环境中有文档的密钥与端点切换,不是附加组件许可证激活。
NestJS 创建支持 SCA 的 PaymentIntent。客户端用 Stripe.js 或 Checkout 完成 3-D Secure。NestJS 只在 webhook 上的 payment_intent.succeeded 之后履约,不只凭浏览器重定向。
NestJS 创建的 PaymentIntent 或 Checkout Session 之后的履约需要。NestJS 返回给客户端的 201 不是事实来源。webhook 控制器校验签名后标记订单已付。
可以。NestJS 的 Stripe 集成通常在现有 NestJS 订单模型旁添加字段或薄支付记录,而不是替换 Prisma、TypeORM 或 MikroORM。
不包含。你创建并拥有 Stripe 账户、API 密钥与 Stripe 手续费。NestJS 附加组件价格是接入你的 NestJS 项目,不是 Bacodo 支付许可证。
不等于。NestJS 是独立的 Node API。Next.js App Router 与 Route Handlers 属于 Next.js 的 Stripe 集成。此 NestJS 附加组件价格内不会把 NestJS API 改写成 Next.js。
可以。PaymentIntent 或 Checkout Session 元数据、客户记录以及 webhook 确认后持久化的字段会在 NestJS 的 Stripe 集成期间对齐到现有 NestJS 订单模型。
NestJS 源码在你的仓库,团队可自行维护。包含的 30 天支持覆盖已交付的 NestJS Stripe 集成范围内的技术问题与缺陷,不含无关的 NestJS 功能开发。
在 30 天窗口内,我们协助因已文档化的 Stripe API 或 stripe 包变更导致的已交付 NestJS 集成故障。之后的 NestJS 升级由你维护,或购买延长技术支持。
我们说明如何阅读 PaymentIntent 状态、Stripe Dashboard 日志与 NestJS webhook 投递。30 天支持包括排查签名失败(通常是 rawBody)、重试与已交付 NestJS 流程的密钥配置错误。
我们会在集成时对照所固定的 stripe 版本确认你的 NestJS 与 Node LTS 版本。过旧或重度分叉的 NestJS 运行时可能需要额外范围。
交付后 30 天包含在已交付的 NestJS Stripe 路径内。延长技术支持可选,为本 NestJS 附加组件价格的 20%,再覆盖六个月对同一 NestJS 集成的技术帮助,不是新产品构建。
为现有 NestJS API 加入可上线的 Stripe 支付,保留源码,由服务端拥有履约。
$175