2026-09-17 · 原文发布日
用Stripe给AI生成接口做按量计费
免费n8n模板演示AI SaaS的计费骨架:暴露一个POST webhook接收apiKey、内容类型(文本/图片)和提示词,先在Stripe按customer metadata匹配API key(找不到返回401),再查活跃订阅和计量项的当期用量,超出套餐月限返回402;通过后调Anthropic Messages API生成文本、或调你配置的图像生成接口出图,然后向Stripe订阅项写入用量并返回含生成内容和更新后用量的JSON。套餐限额用Stripe价格ID映射配置,用户key存在customer metadata里。
原文要点
Oneclick AI Squad发布的免费n8n模板,演示AI SaaS按量计费骨架:POST webhook接收apiKey、contentType(text/image)与prompt;先在Stripe按customer metadata.apiKey匹配客户,找不到返回401;再取活跃订阅与计量订阅项的当期用量汇总,对照按Stripe价格ID映射的套餐月限,无活跃订阅或超限返回402;通过后文本走Anthropic Messages API、图片走自配置的图像生成HTTP端点;随后向Stripe订阅项写一条用量记录并同步返回含生成内容与更新后用量的JSON。Anthropic请求需x-api-key、anthropic-version、content-type三个头。
这次做成什么
搭一个带鉴权和用量闸门的AI生成接口:客户端POST一个JSON,依次过Stripe身份校验→订阅与限额检查→内容生成→用量上报→返回结果。原模板需从n8n模板页自行导入,本站不提供工作流文件,练习用Stripe测试模式与合成数据。
准备什么
- n8n工作区与可导入的该免费模板
- Stripe测试模式账号,API凭据需覆盖Customers、Subscriptions、Subscription Items、Usage Records
- 一个计量型(metered)Stripe价格ID及已订阅的测试客户
- Anthropic API key(HTTP Header Auth方式)
- 如要支持图片,需一个可调用的图像生成端点及其鉴权头
具体怎么做
导入模板并准备Stripe测试数据
在Stripe测试模式创建一个计量型价格(metered price),建一个测试客户并订阅该价格;在客户的metadata里加 apiKey=sk-test-demo12345,这就是客户端之后要出示的key。planLimits映射里把该价格ID对应到月限额(练习设100次)。
配置凭据与四个配置值
Stripe凭据挂到各Stripe节点;Anthropic key配成HTTP Header Auth,请求头须含x-api-key、anthropic-version、content-type;在配置节点填Anthropic模型名、计量价格ID、planLimits映射(价格ID→月限),图片场景再填imageGenEndpoint及其鉴权。
激活webhook并记下URL
激活工作流后复制生产webhook URL,模板约定客户端向 /ai-saas/generate 路径发POST。测试期可先用测试URL调试,正式调用再切换。
按分支发送合成测试请求
用下方测试数据分别验证三条路径:正确key+文本请求应走到Anthropic生成并返回200;错误key应返回401;把planLimits月限临时改成0再发请求应返回402(无剩余额度)。观察执行记录确认分支走向符合预期。
核对用量写入与返回体
成功请求后,在Stripe后台该订阅项的Usage Records里应看到新增1条用量记录;webhook同步返回的JSON中应同时包含生成文本和更新后的用量计数,客户端可据此向终端用户展示剩余额度。
可直接复制的材料
客户端测试请求体(合成)
本站虚构测试数据;apiKey需替换为你在Stripe测试客户metadata里实际写入的值,maxTokens等可选参数以模板实际字段为准
{
"apiKey": "sk-test-demo12345",
"contentType": "text",
"prompt": "用两句话向一家花店老板解释什么是按量计费的API。",
"maxTokens": 200
}planLimits配置示例
本站设计的键名示意,导入后请以模板配置节点里的实际字段名为准;价格ID需替换为你Stripe测试模式里的真实ID,端点需替换为你自己的图像服务
{
"planLimits": {
"price_1TestMeteredBasic": 100,
"price_1TestMeteredPro": 1000
},
"meteredPriceId": "price_1TestMeteredBasic",
"imageGenEndpoint": "https://image-api.example.com/v1/generate"
}客户端调用与错误处理提示词(供生成调用方代码用)
本站独立编写,供生成调用方练习代码;{WEBHOOK_URL}替换为激活后的webhook地址
请用Python requests写一个调用我方AI生成接口的客户端函数generate(api_key, content_type, prompt),要求:
1. POST JSON到 {WEBHOOK_URL},超时30秒。
2. 状态码200时解析返回JSON中的生成内容与usage字段并一并返回。
3. 401时抛出异常提示“API key无效,请检查账户”。
4. 402时抛出异常提示“本月额度已用完或无有效订阅,请升级套餐”。
5. 其他非200状态打印响应体便于排查。
不要使用真实密钥,api_key从环境变量AI_API_KEY读取。输入与输出示例
本站虚构演示,生成文本与计数为示意,非模板实测输出
输入
POST /ai-saas/generate 请求体:{"apiKey":"sk-test-demo12345","contentType":"text","prompt":"用两句话向花店老板解释按量计费API","maxTokens":200},该客户当期已用37次、月限100次对应输出
200响应(示意):{"content":"按量计费API就像花店按枝卖花:用多少付多少,先出示钥匙(API key)确认身份,每次取用自动记账,月底按实际用量结算。","usage":{"current":38,"limit":100,"remaining":62}};Stripe该订阅项新增1条用量记录。key错误时:{"error":"invalid_api_key"}(401);超限后:{"error":"plan_limit_exceeded"}(402)做完检查这些
- 正确key的文本请求返回200,响应JSON同时含生成内容与更新后usage计数,且usage比请求前恰好多1
- 把apiKey改成未登记的值重发,返回401且不会产生任何Stripe用量记录
- 将planLimits中该价格ID限额改为低于当期用量后重发,返回402,Anthropic节点在本次执行中未运行
- 在Stripe测试后台对应订阅项的Usage Records中能看到每次成功请求各新增一条记录
- contentType改为image时走imageGenEndpoint分支,未配置该端点时能在执行日志中看到明确的分支失败位置
容易卡住的地方
- 只在Stripe测试模式练习,别把测试apiKey写进真实客户metadata或提交到代码仓库
- 401只覆盖key不存在的情况;客户存在但无活跃订阅走的是402分支,排查时别混淆
- Anthropic调用与Stripe API均按各自费率计费,模板免费不代表调用免费;具体模型名与anthropic-version值以模板配置为准
- 限额按订阅项当期用量汇总计算,换用非计量型价格会导致用量汇总取不到数
- imageGenEndpoint需你自己提供图像服务及鉴权头,模板不含现成图像模型;未核对模板节点前不要假设其请求体格式
- 不要在指导中尝试重置或猜测任何真实Stripe密钥
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Generate AI text and images with Claude and Stripe metered billing
- 原作者
- Oneclick AI Squad
- 原始发布日期
- 2026-09-17T04:58:19.038Z
- 来源
- https://n8n.io/workflows/19670