Show HN: Stripe-no-webhooks – 将你的 Stripe 数据同步到 Postgres 数据库
发布: (2026年2月11日 GMT+8 01:14)
4 分钟阅读
原文: Hacker News
Source: Hacker News
概览
stripe-no-webhooks 是一个开源库,用于将你的 Stripe 支付数据同步到你自己的 Postgres 数据库。
- 仓库:
- 演示视频:
为什么它有用
- 无需 webhook 搭建 – 该库会在 Stripe 中创建所需的 webhook 端点,并将所有事件存储在
stripe.*模式下,这样你就不必自行决定监听哪些 webhook 或编写监听器。 - 避免速率限制 – Stripe 的 API 每分钟限制 100 次请求。通过查询本地 Postgres,你可以绕过此限制,这对内部工具或频繁的订阅检查非常有帮助。
- 安全的 AI 访问 – 你可以授予 AI 代理只读访问
stripe.*模式的权限,以调试支付问题(失败的收费、退款等),而无需暴露 Stripe 仪表板。 - 自定义分析 – 将 Stripe 数据与你自己的表关联,用于 LTV 计算、自定义报表等。
工作原理
- 该库在你的 Stripe 账户中注册一个 webhook 端点。
- 进入的 Stripe 事件被转发到你的后端,监听器将数据写入 Postgres 中的新
stripe.*模式。 - 你在 TypeScript 中定义计划并运行同步命令。库随后创建相应的 Stripe 产品和价格,处理 webhook,并保持数据库同步。
- 已有的 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 个人资料联系。