Composio Stripe 工具箱集成指南:OAuth2/API-key 认证、多账户映射与支付成功触发器实战
【免费下载链接】composioComposio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio
导读
本文围绕 Composio 对 Stripe 工具箱的官方支持知识文档展开,系统讲解如何在 Composio 中为 Stripe 配置 OAuth2 与 API-key 两种认证模式、理解"一个连接对应一个 Stripe 账户"的映射规则(以及 Stripe Connect 的多账户合并能力)、基于STRIPE_LIST_SUBSCRIPTIONS计算 MRR,以及使用支付成功触发器构建自动化流程。读完本文,你将掌握在 Composio SDK/API 层面正确初始化 Stripe 连接、选择认证字段、获取触发器目录并落地订阅指标与支付事件自动化方案的完整路径。
Stripe 工具箱在 Composio 中的能力概览
Composio 官方支持知识库明确声明:Stripe 工具箱在 Composio 中受完整支持,同时提供 OAuth2 与 API-key 两种认证模式,其市场入口(marketplace entry)位于 Stripe 工具箱页面。这份支持声明本身来自仓库中的公开知识源文档 docs/kb/source/toolkits/stripe/public.md,并由 docs/content/kb/guide/toolkits-stripe.mdx 作为渲染版知识文章收录。
从仓库的工具箱元数据 docs/public/data/toolkits.json 中可以进一步核实该工具箱的规格:
- slug:
stripe - 认证方案:
API_KEY与OAUTH2两种;其中OAUTH2同时被列为 Composio 托管认证(composioManagedAuthSchemes)方案 - 工具数量:432 个(
toolCount) - 触发器数量:40 个(
triggerCount) - 分类:payment processing(支付处理)
- 版本:
20260902_00
这一数据意味着:接入 Stripe 后,Agent 可以在一次连接下调用数百个覆盖客户、发票、订阅、Checkout、支付意图、计费警报、测试时钟等场景的工具,并通过触发器实现事件驱动。所有工具的 slug 均以STRIPE_前缀命名,例如STRIPE_ACCEPT_QUOTE、STRIPE_ATTACH_PAYMENT_METHOD、STRIPE_ADD_INVOICE_LINES等。
认证模式一:OAuth2
对于面向终端用户的场景(如 SaaS 产品让客户自行连接自己的 Stripe 账户),推荐使用 OAuth2 模式。Stripe 的 OAuth2 属于 Composio 托管认证(managed auth),即用户直接通过 Composio 完成授权跳转,无需自行申请和托管 OAuth 应用凭据。
需要说明的是,OAuth2 模式下凭证由每个最终用户各自持有,这与下文 API-key 模式的账户映射逻辑存在差异。若你的应用需要统一控制多个商户账户,可结合 Stripe Connect 方案,详见"连接与账户的映射关系"一节。
认证模式二:API-key 认证配置
当你在自己控制的 Stripe 账户上运行 Agent(例如内部财务自动化)时,API-key 模式更为直接。官方支持知识给出的配置要点如下:
- 获取密钥:登录 Stripe Dashboard,依次进入
Developers -> API Keys -> Standard keys -> Secret key,复制该 Secret key。 - 认证字段名:在 Composio 的 API/SDK 连接请求(connection payload)中,auth config 字段需要以
api_key为键名传递,而不是apiKey或secret_key等其他命名。
例如,在构造连接时,认证配置应形如:
{ "auth_mode": "API_KEY", "api_key": "sk_live_xxxxxxxxxxxxxxxx" }api_key字段名的一致性非常重要:Composio 工具箱元数据中的认证方案声明为API_KEY,而 SDK/API 层解析认证配置时依赖约定的字段名,字段名不匹配会导致连接创建失败或鉴权失败。如果实际使用的 SDK 版本对认证配置有额外的包裹结构(如{"authentication": {...}}),请以对应版本 SDK 的连接示例为准。
安全提示:Stripe Secret key 属于高权限凭据(可读取和操作账户内全部业务数据),请勿将其写入代码仓库、前端代码或日志;建议通过环境变量或密钥管理服务注入。
连接与账户的映射关系:一个连接对应一个账户
理解 Stripe 的连接模型,可以避免在多账户场景下设计出错。官方支持知识明确指出:
Stripe 通常为不同账户使用不同的 API key,因此一个已连接的账户 / 一个 MCP server 只拥有对一个 Stripe 账户的访问权限。
这意味着,如果你为三个不同商户各配置一条 API-key 连接,Composio 侧会存在三条独立的连接,每条连接各自绑定各自的密钥与账户,互不串号。
如果你面对的是多账户聚合需求(例如平台方需要在一个入口下管理大量子商户),官方建议评估Stripe Connect:
- 使用 Stripe Connect 后,平台可以用一个平台 API key 将多个 connected accounts 聚合管理;
- 相比为每个账户维护独立连接,Stripe Connect 更适合多账户工作流。
换句话说,选择哪种模型取决于业务形态:
| 场景 | 推荐方案 |
|---|---|
| 单一自有账户的自动化 | API-key 或 OAuth2 单连接 |
| 终端用户各自连接自己账户 | OAuth2(Composio 托管) |
| 平台统一管理大量子商户 | Stripe Connect + 平台 API key |
用 STRIPE_LIST_SUBSCRIPTIONS 计算 MRR
订阅制业务最核心的指标之一是月度经常性收入(MRR)。官方支持知识给出的做法非常明确:
使用
STRIPE_LIST_SUBSCRIPTIONS获取订阅数据,然后在 Agent 或应用层基于返回的订阅记录计算 MRR。
在仓库的工具元数据 docs/public/data/toolkits.json(STRIPE_LIST_SUBSCRIPTIONS条目)中可以核实该工具的能力:
- 名称:List subscriptions
- 能力:检索 Stripe 订阅列表,可按客户(customer)、价格(price)、状态(status)、收款方式(collection method)与日期区间等条件过滤,并支持分页(pagination)。
也就是说,MRR 计算并不是在 Composio 侧完成的,而是 Composio 负责把订阅数据拉取回来,统计逻辑由你的应用实现。典型的落地步骤为:
- 通过
STRIPE_LIST_SUBSCRIPTIONS拉取全部订阅(利用分页参数遍历所有页,注意订阅数量大时不要遗漏后续页); - 过滤出活跃订阅(如
status为active/trialing,按你的口径决定); - 在 Agent/应用层累加每条订阅的金额(
plan或price对应的单位金额 × 数量),换算成月度值; - 若需要按客户、套餐或币种细分,可使用该工具提供的过滤参数在源头缩小数据范围,减少应用层处理量。
一个最小化的思路示意(伪代码,突出数据流而非绑定具体语言):
subscriptions = call_tool("STRIPE_LIST_SUBSCRIPTIONS", { "status": "active", "limit": 100 }) while subscriptions has more pages: subscriptions += call_tool("STRIPE_LIST_SUBSCRIPTIONS", {...next page...}) mrr = sum( normalize_to_monthly(sub.amount, sub.interval) * sub.quantity for sub in subscriptions if sub.status in ("active", "trialing") )借助 Agent 的推理能力,这一流程可以被自然语言指令触发,例如"计算当前所有活跃订阅的 MRR",由 Agent 自动调用工具、处理分页并汇总结果。
支付成功触发器:invoice 与 Checkout 两条事件链路
支付成功是支付类 Agent 最常见的自动化触发点。官方支持知识给出了两个可直接使用的触发器:
STRIPE_INVOICE_PAYMENT_SUCCEEDED_TRIGGER:用于发票支付成功(invoice payment succeeded)事件。仓库元数据中对应条目STRIPE_INVOICE_PAYMENT_SUCCEEDED的官方描述为"Occurs whenever an invoice payment attempt succeeds"(每当一次发票支付尝试成功时触发)。典型场景包括:发票支付成功后自动开票归档、更新 CRM 记录、发送客户收据通知。STRIPE_CHECKOUT_SESSION_COMPLETED_TRIGGER:用于Checkout Session 完成事件。仓库元数据中对应条目STRIPE_CHECKOUT_SESSION_COMPLETED的描述为"Occurs when a Checkout Session has been successfully completed"(当 Checkout 会话成功完成时触发)。典型场景包括:新客户完成一次性购买或订阅下单后自动开通权限、发送欢迎邮件、写入内部订单系统。
命名说明:官方知识源文档中的触发器名带
_TRIGGER后缀(如STRIPE_CHECKOUT_SESSION_COMPLETED_TRIGGER),而当前仓库工具箱元数据 docs/public/data/toolkits.json 中同一事件的 slug 为STRIPE_CHECKOUT_SESSION_COMPLETED(不带后缀)。不同版本/目录下触发器命名可能略有差异,因此官方知识强调:实现前务必先拉取当前触发器目录(trigger catalog)进行核对,不要假定每个 Stripe 事件都一定存在对应的触发器。
触发器失效排查:警惕被删除的 Webhook 目标
在实际运行中,触发器"看起来已启用却收不到事件"是常见故障。仓库中的 FAQ 文档 docs/content/toolkits/faq/stripe.md 记录了该类问题的一个关键成因:
Stripe 侧的 webhook 目标(webhook destination)被删除后,触发器在 Composio 中仍显示为启用状态,但 Stripe 已经没有任何活跃目标可以接收匹配事件。
排查与修复步骤:
- 打开 Stripe Dashboard,检查与该触发器关联的 webhook 目标是否存在、是否处于启用状态;
- 若目标缺失或已被禁用,重新创建/重建触发器,使 Composio 在 Stripe 侧重新建立 webhook 目标;
- 用一条真实的 Stripe 事件验证新事件是否能被正常投递。
这一排查思路也印证了官方支持知识的建议——触发器与 Stripe 底层 webhook 目标存在绑定关系,事件链路的健康状态需要从 Stripe 侧与 Composio 侧共同确认。
小结
- 认证:Stripe 在 Composio 中同时支持 OAuth2(含托管认证)与 API-key;API-key 模式使用 Dashboard
Developers -> API Keys -> Standard keys -> Secret key,连接配置字段为api_key。 - 账户模型:一条 MCP/API-key 连接默认对应一个 Stripe 账户;多账户聚合优先评估 Stripe Connect。
- 订阅指标:用
STRIPE_LIST_SUBSCRIPTIONS(支持按客户、价格、状态等过滤与分页)拉取订阅数据,在应用/Agent 层计算 MRR。 - 事件自动化:发票支付成功用
STRIPE_INVOICE_PAYMENT_SUCCEEDED_TRIGGER,Checkout 完成用STRIPE_CHECKOUT_SESSION_COMPLETED_TRIGGER;实现前先核对当前触发器目录,注意触发器名在不同目录下的后缀差异。 - 故障排查:触发器收不到事件时,优先检查 Stripe 侧 webhook 目标是否被删除,必要时重建触发器。
相关参考材料均可在当前仓库中查阅:支持知识源文档、渲染版知识文章、Stripe FAQ 以及 工具箱元数据。
【免费下载链接】composioComposio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.项目地址: https://gitcode.com/GitHub_Trending/co/composio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考