AI PLAY玩法更新持续收录
← 回到更新流

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方式)
  • 如要支持图片,需一个可调用的图像生成端点及其鉴权头

具体怎么做

  1. 导入模板并准备Stripe测试数据

    在Stripe测试模式创建一个计量型价格(metered price),建一个测试客户并订阅该价格;在客户的metadata里加 apiKey=sk-test-demo12345,这就是客户端之后要出示的key。planLimits映射里把该价格ID对应到月限额(练习设100次)。

  2. 配置凭据与四个配置值

    Stripe凭据挂到各Stripe节点;Anthropic key配成HTTP Header Auth,请求头须含x-api-key、anthropic-version、content-type;在配置节点填Anthropic模型名、计量价格ID、planLimits映射(价格ID→月限),图片场景再填imageGenEndpoint及其鉴权。

  3. 激活webhook并记下URL

    激活工作流后复制生产webhook URL,模板约定客户端向 /ai-saas/generate 路径发POST。测试期可先用测试URL调试,正式调用再切换。

  4. 按分支发送合成测试请求

    用下方测试数据分别验证三条路径:正确key+文本请求应走到Anthropic生成并返回200;错误key应返回401;把planLimits月限临时改成0再发请求应返回402(无剩余额度)。观察执行记录确认分支走向符合预期。

  5. 核对用量写入与返回体

    成功请求后,在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