@fantastic.dev/better-stripe

中文文档
0.111.0发布于 2026/11/01MITTypeScriptES Module构建来源已验证

凸组件用于Stripe Accounts v2,订阅,计量计费和连接市场,与React工作流。

中文使用文档
文档目录10 节
  1. 包和应用程序职责
  2. 安装
  3. 快速启动
  4. 步骤1:注册组件
  5. 步骤2:创建BetterStripe实例
  6. 步骤3:注册webhook路由
  7. 文档
  8. 计量使用
  9. 贡献
  10. 许可证

better-stripe

一、 凸组件 对于Stripe Accounts v2, 计费和连接市场。它提供结帐,订阅,webhook 与React同步,市场费用和分割,支付,退款和争议 钩子和无头UI组件。

版本: 0.111.0 (pre - 1.0)。在1.0之前,API可能会在小版本之间发生变化。

连接平台使用默认的GA API版本。非联网商户使用 仅限客户的帐户v2需要预览访问权限和显式预览版本。 读了 Accounts v2安装指南 在集成之前。

包和应用程序职责

BetterStripe拥有可重复使用的支付协议、财务记录、持久执行、 和无样式的React工作流。示例应用程序演示了这些公共api 凸绑定和样式渲染器。消费者不需要复制其付款方式 或UI控制器来使用包。

您的应用程序验证呼叫者,授权原始帐户或付款, 选择产品和业务策略,并决定付费购买解锁的内容。 一次性购买使用付款结账;订阅使用订阅签出。 数字下载、访问授权、许可密钥、运输和履行属于 消费应用程序。一个成功的结帐页面本身并不是付款的证明。 使用经过验证的支付状态并使履行幂等。

看到 示例边界审计 获取具体的所有权规则和其余的应用程序适配器。

安装

npm install @fantastic.dev/better-stripe

需要Node.js 20+,凸 ^1.46.0,以及React/React DOM ^18.3.1 或者 ^19.0.0. 条带sdk作为依赖项包含。

快速启动

集 STRIPE_SECRET_KEY 在您的Convex部署中,然后连接组件、客户端、 而webhook路由如下。看到 配置 对所有 环境变量和TypeScript设置。

步骤1:注册组件

// convex/convex.config.ts
import betterStripe from "@fantastic.dev/better-stripe/convex.config";
import { defineApp } from "convex/server";
import { v } from "convex/values";

// betterStripe requires STRIPE_SECRET_KEY; declare it at the app level and pass
// it to the component by reference.
const app = defineApp({
  env: { STRIPE_SECRET_KEY: v.string() },
});
app.use(betterStripe, {
  env: { STRIPE_SECRET_KEY: app.env.STRIPE_SECRET_KEY },
});

export default app;

步骤2:创建BetterStripe实例

// convex/stripe.ts
import { BetterStripe } from "@fantastic.dev/better-stripe";

import { components } from "./_generated/api";

export const stripe = new BetterStripe(components.betterStripe, {
  STRIPE_SECRET_KEY: process.env.STRIPE_SECRET_KEY,
  triggers: {
    checkoutSession: {
      onCompleted: async (ctx, session) => {
        // App-specific transactional logic (same DB transaction)
      },
    },
  },
});

// Export the webhook handler pair; http.ts passes their refs to registerRoutes.
// `syncWebhook` runs your sync triggers in the same transaction as the component
// upsert; `asyncWebhook` runs your async hooks after commit.
export const { syncWebhook, asyncWebhook } = stripe.webhookHandlers();

步骤3:注册webhook路由

// convex/http.ts
import { registerRoutes } from "@fantastic.dev/better-stripe";
import { httpRouter } from "convex/server";

import { components, internal } from "./_generated/api";

const http = httpRouter();

registerRoutes(http, components.betterStripe, {
  webhookPath: "/stripe/webhook",
  stripeSecretKey: process.env.STRIPE_SECRET_KEY,
  webhookSecret: process.env.STRIPE_WEBHOOK_SECRET,
  webhookSecretV2: process.env.STRIPE_WEBHOOK_SECRET_V2,
  webhooks: internal.stripe,
});

export default http;

通过 webhooks: internal.stripe 在同一事务中运行同步触发器 作为组件写入。异步钩子在提交后运行。看到 webhook和触发器 用于事件目的地、签名秘密和钩子示例。

创建指向的单独的V1快照和V2瘦事件目的地 https://<your-deployment>.convex.site/stripe/webhook. 存储他们的签名秘密 作为 STRIPE_WEBHOOK_SECRET 和 STRIPE_WEBHOOK_SECRET_V2 在您的凸部署中。 遵循 webhook设置 配置两个目的地。

文档

这个 文档索引 列出所有指南。开始:

这个 示例应用程序 演示客户、卖家、联盟和管理流程,包括几个结帐 集成风格。

计量使用

使用本地的Stripe账单,即付即付,包括每月单位的超额费用。 以及预付信用卡。开发商选择单位、精度、费率和政策; BetterStripe拥有持久的使用/交付,津贴和信用会计, 更正,原始支付结算和可重用的React工作流。你的应用 拥有身份验证、计费活动和授权。

从……开始 为开发人员和AI代理设置,然后是 可复制的三模式食谱 和 可运行的例子. 使用现有的条纹沙盒和 凸凭证。节拍器是可选的,从来不是先决条件。

看到 反应的观点 和 配置界面 表格,确切的使用,津贴,预付余额和分页历史。 验证矩阵 记录本地付费来源 证明,包装消费者和帐户/时钟限制。现有的应用程序应该跟进 选择采用、模型转换和回滚.

贡献

看到 开发指南 对于本地设置和代码生成, 测试工具 对于固定装置,和 发布指南 出版。运行 pnpm run check:all 在提交更改之前。

许可证

麻省理工学院

版本与发布记录

@fantastic.dev/better-stripe 共发布 147 个版本,首次发布于 2026/09/26;过去 12 个月发布了 147 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.111.0latest2026/11/012 天前
0.110.02026/11/012 天前
0.109.12026/11/012 天前
0.109.02026/11/012 天前
0.108.02026/11/012 天前
0.107.02026/11/012 天前

其他发布通道:bootstrap → 0.4.0-bootstrap.0。

关于 @fantastic.dev/better-stripe 的常见问题

@fantastic.dev/better-stripe 是什么?

凸组件用于Stripe Accounts v2,订阅,计量计费和连接市场,与React工作流。

如何安装 @fantastic.dev/better-stripe?

在项目目录运行 npm install @fantastic.dev/better-stripe,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.3.1 || ^19.0.0)、convex(^1.46.0)、react-dom(^18.3.1 || ^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fantastic.dev/better-stripe 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fantastic.dev/better-stripe 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fantastic.dev/better-stripe 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@fantastic.dev/better-stripe 可以商用吗?

@fantastic.dev/better-stripe 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fantastic.dev/better-stripe 还在维护吗?

最新版本 0.111.0 发布于 2026/11/01(2 天前);至今共发布 147 个版本,其中过去 12 个月发布了 147 个;首次发布于 2026/09/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。