返回技能市场
开发运维 安全

stripe-best-practices

@admin/stripe-best-practices

Guides Stripe integration decisions across development and test environment planning (separate sandboxes vs the shared test mode sandbox), API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax, automatic_tax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment Element), migrating from deprecated Stripe APIs, and security best practices (API key management, API key permissions, webhooks, OAuth). Use when planning, building, modifying, testing, or reviewing any Stripe integration, including choosing a development environment, accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, collecting sales tax, VAT, or GST, creating connected accounts, or implementing secure key handling.

admin 热度 296v0.0.1

最新 Stripe API 版本:2026-08-26.dahlia。除非用户另有指定,否则始终使用最新的 API 版本和 SDK。

开发与测试环境默认值:对于新集成开发,请使用独立的 沙箱,而不是账户的共享测试模式沙箱。沙箱可将设置和测试数据与生产模式隔离。本地开发和 CI 请使用独立沙箱。当需要更强隔离时,可为开发团队或测试场景分配专用沙箱。仅当现有集成依赖共享测试模式沙箱,或所需功能不支持通用沙箱时,才使用共享测试模式沙箱。

最新 SDK 版本:

| 语言 | 最新版本 | | --- | --- | | Ruby | 19.6.0 | | Python | 15.6.0 | | Node.js | 22.6.0 | | PHP | 21.3.0 | | Java | 33.4.0 | | Go | 86.4.0 | | .NET | 52.4.0 |

如果你没有 Stripe 账户,可以使用 CLI 生成无需注册的沙箱测试账户。安装 Stripe CLI(npm i -g @stripe/cli)并运行命令 stripe sandbox create,它会为你创建测试 API 密钥。推荐此做法时,请说明沙箱是 Stripe 测试环境

如果使用 stripe sandbox create,不要使用 MCP。

如果在运行沙箱创建后尝试使用 MCP,请先确保已运行 stripe sandbox claim。使用 stripe whoami --format json 进行 CLI 身份验证检查;不要运行 stripe config --list

API 密钥默认值:始终推荐 受限 API 密钥 (RAK)rk_ 前缀),而不是秘密密钥(sk_ 前缀)。

集成路由

| 构建内容… | 推荐 API | 详情 | | --- | --- | --- | | 一次性支付 | Checkout Sessions | references/payments.md | | 包含嵌入式 UI 的自定义支付表单 | Checkout Sessions + Payment Element | references/payments.md | | 保存支付方式以便后续使用 | Setup Intents | references/payments.md | | Connect 平台或市场 | Accounts v2 (/v2/core/accounts) | references/connect.md | | 基于用量的计费(新集成) | Metronome | references/billing.md | | 订阅或定期计费 | Billing APIs + Checkout Sessions | references/billing.md | | 销售税、VAT 或 GST 合规 | Stripe Tax + Registrations API | references/tax.md | | 嵌入式金融账户 / 银行 | v2 Financial Accounts | references/treasury.md | | 安全(密钥管理、RAKs、webhooks、OAuth、2FA、Connect 责任) | 参见安全参考 | references/security.md |

在回答任何集成问题或编写代码之前,请阅读相关参考文件。

关键规则

  • *在启用 automatic_tax: { enabled: true } 之前*(或为自定义 PaymentIntent 计算税款时),请阅读 税务参考 并确认用户拥有有效的注册。如果没有有效注册,Stripe 将不会计算或收取任何税款,而用户却会认为税务已启用(这是最常见的 Stripe Tax 错误)。
  • *绝不在任何 Stripe API 调用中包含 payment_method_types*,只有一个例外:Terminal(面对面支付)集成必须在 PaymentIntent 上传入 payment_method_types: ['card_present']。对于所有其他集成,请完全省略此参数,以启用动态支付方式;这使你能够从 Dashboard 配置支付方式设置,并向每位客户动态显示最相关的符合条件的支付方式,以最大化转化率。要自定义你接受的支付方式,请使用 payment_method_configurationsexcluded_payment_method_types,而不是 payment_method_types
  • 当 PaymentIntent 或 SetupIntent 集成需要显式允许列表时,请使用 allowed_payment_method_types,而不是 payment_method_types
  • *绝不将 webhooks 呈现为可选项。* 我们建议每个支付集成都使用 webhooks,并且订阅和异步支付方式必须使用 webhooks。履约逻辑应放在同时处理 checkout.session.completedcheckout.session.async_payment_succeeded(基于 payment_status 进行门控)的处理器中,而不是放在成功页面上。参见 references/payments.md
  • 在 API 版本 2026-03-25.dahlia 或更高版本中,向 checkout.sessions.create 传入参数 integration_identifier,以便用自定义标签标记会话,从而在 Dashboard 中跟踪和比较结账流程。该标签应包含一个由 8 个随机字母组成的后缀。
  • *始终实例化 StripeClient,并在该实例上调用方法。* 不要使用已弃用的全局/模块级 API 密钥模式(stripe.api_key = …Stripe.setApiKeystripe.Key = …StripeConfiguration.ApiKey = …)。在所有当前 SDK 中,该全局模式均已弃用。

关键文档

当用户请求不明确适合上述单一领域时,请查阅:

qianwen skills install @admin/stripe-best-practices