SuperAPI AI 工具集

stripe-payments

通用与其它

查看项目

更新于 10-16 05:07

技能介绍

用途:在实现支付处理、Stripe 集成、订阅计费、结账流程与 webhook 时提供参考,官方定位为生产可用的 Stripe 支付、订阅和 webhook 集成。

主要能力与流程选择:Checkout Session 使用托管页面、接入最快、PCI 负担最小;Payment Intents 适合自定义 UI、完全可控,需配合 Stripe.js;Setup Intents 用于保存卡片供后续使用,PCI 负担最小。

使用方式:Checkout Session 在服务端用 Python 创建会话(设置 stripe.api_key,创建 stripe.checkout.Session,指定 payment_method_types、line_items、mode、success_url 与 cancel_url,金额以分为单位),随后重定向到 session.url。Payment Intent 流程由后端创建 PaymentIntent 返回 client_secret,前端用 Stripe.js 的 stripe.confirmCardPayment 完成确认。订阅通过 stripe.Subscription.create 创建,可用 payment_behavior='default_incomplete' 并 expand latest_invoice.payment_intent;自助管理通过 stripe.billing_portal.Session.create 生成客户门户会话并跳转 session.url。退款使用 stripe.Refund.create,支持全额与部分退款(amount 以分为单位)及原因。

Webhook:服务端接收 POST,读取 Stripe-Signature 头并调用 stripe.Webhook.construct_event 验证签名,失败返回 400。需处理的关键事件包括 payment_intent.succeeded、payment_intent.payment_failed、customer.subscription.updated、customer.subscription.deleted、invoice.payment_succeeded。

测试与注意:提供测试卡号,如 4242424242424242 成功、4000000000000002 拒付、4000002500003155 需 3D Secure、4000000000009995 余额不足。最佳实践包括始终依赖 webhook 而非仅客户端确认、幂等处理事件、用 metadata 关联数据库、上线前测试全部流程、不在服务端接触原始卡数据、为欧洲支付实现 SCA。常见问题包括未验证 webhook 签名、金额未用分、缺少事件处理器、无重试逻辑、未覆盖测试卡场景。其他细节暂未提供。