Flexprice 是一个开源的计费和计量平台,专为开发者设计,支持使用量计费、订阅制和混合计费模式。用户可以将其部署在云端或自托管,代码完全透明,避免供应商锁定。平台通过实时处理使用数据,自动计算定价、应用信用额度、限制功能并生成发票,简化开发者的计费逻辑。它与现有支付网关、CRM 和会计工具无缝集成,适合需要灵活计费的业务。Flexprice 提供 Python、JavaScript 和 Go 语言的 SDK,方便开发者快速集成。官方文档和社区支持完善,适合初学者和专业开发者使用。
功能列表
- 实时用量计量:支持定义 API 调用、计算时间等自定义事件,实时跟踪并处理数百万事件。
- 信用管理:支持预付费和促销信用,设置自动充值阈值或信用过期规则。
- 灵活定价模型:支持使用量计费、订阅制、分层定价或混合模式,快速调整定价。
- 功能限制:基于用户计划设置功能开关或使用量限制,简化权限管理。
- 自动发票生成:根据实时用量和订阅生成清晰发票,支持账单周期和超额费用管理。
- SDK 集成:提供 Python、JavaScript 和 Go 的 SDK,快速集成到现有系统。
- 自托管选项:开源代码支持自托管,允许自定义存储、队列和密钥。
- 多工具集成:与 Stripe、Chargebee 等支付工具及 CRM 系统无缝连接。
使用帮助
安装流程
Flexprice 支持本地开发或从源码运行,需安装 Docker、Go 和 Make 工具。以下是详细的安装步骤,基于官方 GitHub 仓库说明:
- 克隆仓库:
git clone https://github.com/flexprice/flexprice cd flexprice
克隆 Flexprice 仓库到本地,并进入项目目录。
- 设置开发环境:
make dev-setup
此命令自动安装依赖并配置环境,包括 Postgres、Kafka、ClickHouse 和 Temporal。
- 启动基础设施:
docker compose up -d postgres kafka clickhouse temporal temporal-ui
启动必要的数据库和消息队列服务。
- 运行 Flexprice 服务:
go run cmd/server/main.go
启动 Flexprice 主服务,运行在本地环境。
- 其他常用命令:
- 重启 Flexprice 服务:
make restart-flexprice
- 停止所有服务:
make down
- 清理并重新启动:
make clean-start
- 单独构建镜像:
make build-image
- 重启 Flexprice 服务:
- 前端配置(可选):
如果需要前端界面,克隆前端仓库:git clone https://github.com/flexprice/flexprice-front cd flexprice-front cp .env.example .env
配置
.env.local
文件,设置以下变量:VITE_SUPABASE_URL=your-supabase-url VITE_SUPABASE_ANON_KEY=your-supabase-anon-key VITE_API_URL=http://localhost:8080/v1 VITE_ENVIRONMENT=development
启动前端开发服务器:
npm run dev
访问
http://localhost:3000
查看前端界面。
功能操作流程
实时用量计量
Flexprice 允许开发者定义自定义事件(如 API 调用、计算时间)。通过 SDK 发送事件数据到 Flexprice,系统实时聚合并存储数据。操作步骤:
- 使用 SDK(如 Python 或 JavaScript)发送事件:
from flexprice import FlexpriceClient client = FlexpriceClient(api_key="your-api-key") client.track_event(user_id="user123", event_type="api_call", value=1)
- 在 Flexprice 仪表盘查看实时用量数据,确保数据准确。
信用管理
支持预付费或促销信用。操作流程:
- 在仪表盘创建信用计划,设置信用额度、自动充值阈值或过期时间。
- 使用 API 分配信用:
const flexprice = new Flexprice({ apiKey: "your-api-key" }); flexprice.grantCredit({ userId: "user123", amount: 100, expires: "2025-12-31" });
- 系统自动跟踪信用使用情况,并在用户消费时扣减。
定价模型设置
Flexprice 支持灵活定价。操作流程:
- 登录仪表盘,创建定价计划(如按使用量计费或订阅制)。
- 定义计费规则,例如每 100 次 API 调用收费 1 美元。
- 通过 API 或仪表盘应用计划到用户账户,系统自动计算费用。
功能限制
开发者可为不同计划设置功能开关或限制。操作步骤:
- 在仪表盘定义功能(如 API 调用限制为每月 1000 次)。
- 在应用中检查权限:
if (flexprice.checkFeatureAccess("user123", "api_calls") < 1000) { // 允许访问 }
- 系统自动限制超额使用。
发票生成
Flexprice 自动生成发票,包含用量、订阅和信用明细。操作流程:
- 配置账单周期(月度或年度)。
- 系统根据实时用量生成发票,发送至用户或集成到支付工具(如 Stripe)。
- 在仪表盘查看发票详情,确保财务对账准确。
注意事项
- 自托管:确保 Postgres、Kafka 等依赖服务正常运行,否则可能影响用量计量。
- 安全性:使用环境变量存储 API 密钥,避免硬编码。
- 扩展性:可根据需求替换存储或队列,保持系统灵活性。
应用场景
- SaaS 平台计费
SaaS 公司可使用 Flexprice 实现使用量计费或订阅制,快速调整定价模型。例如,API 服务可按调用次数收费,仪表盘实时展示用户使用情况。 - AI 模型托管
AI 平台可通过 Flexprice 跟踪计算资源使用量(如 GPU 时间),自动生成发票并限制用户访问,确保成本控制。 - 电商平台促销
电商可利用信用管理功能发放促销信用,设置自动充值或过期规则,提升用户粘性。 - 开发工具订阅
开发工具提供商可结合订阅和使用量计费,限制高级功能仅对付费用户开放,简化权限管理。
QA
- Flexprice 是否完全免费?
Flexprice 是开源软件,可免费自托管,但部分功能需要商业许可证。云端版本可能涉及费用,具体请查看 https://flexprice.io。 - 如何与 Stripe 集成?
在仪表盘配置 Stripe API 密钥,Flexprice 会自动将发票数据推送至 Stripe 处理支付。 - 支持哪些编程语言?
提供 Python、JavaScript 和 Go 的 SDK,官方 GitHub 仓库有详细文档。 - 如何处理高并发用量?
Flexprice 使用 Kafka 和 ClickHouse 处理数百万事件,确保高并发场景下数据准确。 - 自托管需要哪些硬件要求?
建议至少 4 核 CPU、8GB 内存和 50GB 存储,具体取决于事件量和用户规模。