Show HN: Stripe-no-webhooks – 将你的 Stripe 数据同步到 Postgres 数据库

发布: (2026年2月11日 GMT+8 01:14)
4 分钟阅读

Source: Hacker News

概览

stripe-no-webhooks 是一个开源库,用于将你的 Stripe 支付数据同步到你自己的 Postgres 数据库。

  • 仓库:
  • 演示视频:

为什么它有用

  1. 无需 webhook 搭建 – 该库会在 Stripe 中创建所需的 webhook 端点,并将所有事件存储在 stripe.* 模式下,这样你就不必自行决定监听哪些 webhook 或编写监听器。
  2. 避免速率限制 – Stripe 的 API 每分钟限制 100 次请求。通过查询本地 Postgres,你可以绕过此限制,这对内部工具或频繁的订阅检查非常有帮助。
  3. 安全的 AI 访问 – 你可以授予 AI 代理只读访问 stripe.* 模式的权限,以调试支付问题(失败的收费、退款等),而无需暴露 Stripe 仪表板。
  4. 自定义分析 – 将 Stripe 数据与你自己的表关联,用于 LTV 计算、自定义报表等。

工作原理

  1. 该库在你的 Stripe 账户中注册一个 webhook 端点。
  2. 进入的 Stripe 事件被转发到你的后端,监听器将数据写入 Postgres 中的新 stripe.* 模式。
  3. 你在 TypeScript 中定义计划并运行同步命令。库随后创建相应的 Stripe 产品和价格,处理 webhook,并保持数据库同步。
  4. 已有的 Stripe 数据可以为已经存在的账户进行回填。

特性

  • 预付使用额度、账户钱包和基于使用量的计费
  • 自动生成、可自定义的价格表组件
  • 简单的 API 用于访问计费信息
// Example API calls
billing.subscriptions.get({ userId });
billing.credits.consume({ userId, key: "api_calls", amount: 1 });
billing.usage.record({ userId, key: "ai_model_tokens_input", amount: 4726 });

计划定义(TypeScript)

{
  name: "Pro",
  description: "Cursor Pro plan",
  price: [{ amount: 2000, currency: "usd", interval: "month" }],
  features: {
    api_completion: {
      pricePerCredit: 1,          // 1 cent per unit
      trackUsage: true,          // Enable usage billing
      credits: { allocation: 500 },
      displayName: "API Completions",
    },
    tab_completion: {
      credits: { allocation: 2000 },
      displayName: "Tab Completions",
    },
  },
}

消耗额度

await billing.credits.consume({
  userId: user.id,
  key: "api_completion",
  amount: 1,
});

await billing.credits.topUp({
  userId: user.id,
  key: "api_completion",
  amount: 500, // buy 500 credits, charges $5.00
});

其他功能

  • 座位级别的额度和货币钱包(微分精度)
  • 自动充值、强大的失败恢复、税收收取、发票
  • 开箱即用的价格表 UI

演示应用

提供了一个玩具应用用于测试:

  • 应用: (无验证;可随意使用虚拟邮箱注册)
  • 测试卡号: 4242 4242 4242 4242,任意未来有效期,任意 3 位 CVV
  • 截图:

欢迎尝试!如果你使用了该库,请在仓库中报告任何 bug。需要帮助或讨论时,可通过你的 HN 个人资料联系。

0 浏览
Back to Blog

相关文章

阅读更多 »

MinIO 仓库不再维护

注意:此仓库不再维护。 替代方案: - AIStor Free https://min.io/download — 完整功能的独立版,供社区使用。