SuperAPI AI 工具集

stripe

办公与效率

查看项目

更新于 10-16 09:25

技能介绍

用途

该技能用于操作 Stripe API,回答诸如“我们的余额是多少?”“哪些支付成功了?”“哪些订阅处于活跃状态?”等问题,并在获得确认后执行取消订阅等受保护的变更操作。它属于 Stripe 平台的工具技能,专注于日常智能体工作流,而非在应用程序中集成支付功能。

主要能力

读取面:余额、支付、订阅

  • 余额(GET /balance):按货币返回可用余额和待处理余额,是账户资金的只读快照。
  • 支付(GET /payment_intents):返回近期支付意图,包含金额、货币、状态(succeeded、requires_action 等)和客户信息。受 --limit 限制;has_more 指示是否还有更多记录被截断。
  • 订阅(GET /subscriptions、GET /subscriptions/{id}):返回活跃订阅的状态、客户、周期结束日期和项目(价格、金额、间隔)。

受保护的变更:取消订阅

subscriptions cancel --id sub_... --dry-run 预览取消操作;--yes 确认并提交 cancel_at_period_end=true,即在周期结束时安排取消(客户在此之前仍可使用服务),而非立即取消。脚本会验证 Stripe 确认变更(响应中 cancel_at_period_end: true)后才报告成功;不匹配则报错,不假定状态已变更。周期结束取消可在周期结束前通过设置 cancel_at_period_end=false 撤销。立即取消和退款不在该技能的变更范围内。

使用方式

stripe-cli 脚本是面向智能体、仅使用标准库的 CLI,只读优先。示例命令:

stripe/scripts/stripe-cli --help                          # 无需密钥或网络
stripe/scripts/stripe-cli --json balance show
stripe/scripts/stripe-cli --json --limit 20 payments list
stripe/scripts/stripe-cli --json --limit 20 subscriptions list
stripe/scripts/stripe-cli --json subscriptions get --id sub_123
stripe/scripts/stripe-cli subscriptions cancel --id sub_123 --dry-run   # 预览
stripe/scripts/stripe-cli subscriptions cancel --id sub_123 --yes       # 确认

退出码:0 成功,1 API 错误或检查失败,2 用法错误。取消操作受保护:没有 --dry-run 或 --yes 时脚本拒绝执行并返回退出码 1,且不会调用 API。读取受 --limit 限制(默认 20,最大 100)。

操作循环:界定问题是读取还是变更;先用读取面定位对象;带边界读取;将问题映射到证据;仅在人工指令下预览并确认变更;最后重新读取订阅并确认 cancel_at_period_end 已设置,并说明客户在该日期前仍可使用服务。

金额格式

Stripe 金额使用最小单位:普通零小数货币(如 JPY)显示为整数单位,其他货币显示两位小数。UGX 和 ISK 为向后兼容保留两位小数的 API 值,因此金额 500 显示为 5.00 UGX 或 5.00 ISK。JSON 在格式化显示值旁保留原始整数(amount_minor,订阅价格则为 unit_amount_minor)和货币。HUF 和 TWD 在收费/价格记录中使用两位小数(其整数单位规则适用于手动付款)。Stripe 不支持呈现的三小数货币会被拒绝。

访问模型与凭据

Stripe 使用密钥(sk_...)或受限密钥(rk_...)进行认证。读取面应使用限定为只读的受限密钥(balance:read、payment_intents:read、subscriptions:read);仅在确实需要取消操作时添加 subscriptions:write。密钥分为实时或测试(sk_live_/sk_test_),切勿将实时密钥指向测试数据或反之;在运行任何可能触及真实收费的操作前验证密钥类型。密钥应存储在 STRIPE_API_KEY 中,切勿放入代码、聊天或提交中。泄露的密钥应立即在 Stripe 仪表板中轮换。

适用场景

  • 查询账户余额、近期支付和活跃订阅。
  • 在人工确认后安排订阅在周期结束时取消。

限制

  • 变更面仅限于安排周期结束取消。退款、立即取消和收费操作不在范围内。
  • 不得在无人工指令、--dry-run 预览和 --yes 确认的情况下取消订阅。
  • 不得将读取分页超出 --limit;不得将完整 API 密钥、客户数据或原始负载转储到聊天中。
  • 该技能操作 Stripe API,不负责在应用中构建支付功能,也不覆盖其他支付处理商。
  • 不适用于:在应用中集成 Stripe 支付(Checkout、代码中的 Payment Intents、应用 webhook、计费逻辑);Stripe 仪表板管理(账户设置、银行账户、争议、税务登记);退款、立即取消或收费操作;其他支付处理商(Braintree、Adyen、PayPal)。

包含的工件

  • scripts/stripe-cli:有界、仅标准库的 CLI(balance、payments list、subscriptions list/get、受保护的 cancel;--json;--limit;变更由 --dry-run/--yes 门控)。
  • tests/test_stripe_cli.py:针对桩 Stripe API 的 14 个确定性测试,包括 USD/JPY 格式化、特殊货币规则、原始单位保留和变更门控。
  • references/:带日期的来源索引 + Stripe 读取操作参考。
  • evals/evals.json:七个用于智能体运行的输出质量评估案例。

验证边界

  • 余额是最新的:stripe-cli balance show --json 返回按货币的可用和待处理余额。
  • 某笔支付成功:stripe-cli payments list --json 显示状态为 succeeded 的意图。
  • 某订阅活跃:stripe-cli subscriptions get --json 返回状态 active 和周期结束日期。
  • 取消已被接受:stripe-cli subscriptions cancel --yes 退出码 0 且响应包含 cancel_at_period_end: true。
  • 变更可安全运行:stripe-cli subscriptions cancel --dry-run 打印确切的订阅 ID。