Stripe
它是什么
Stripe 是一个支付处理服务:一套 API 和控制台,让你的应用能够接受信用卡、电子钱包和银行付款,然后管理订阅、发票和打款。它是开发者的默认选择,因为其 API 干净利落、文档出色,而且几乎每篇教程和每个库都默认使用它。你把它接入应用,客户付款,钱就到了你的银行账户。
优势
- 一流的开发者体验——清晰的 API、测试模式和优秀的文档。
- 庞大的生态系统:SDK、预制的结账页、计费功能以及第三方集成。
- 足够灵活,能应对一次性收款、订阅、平台市场和按用量计费。
- 强大的反欺诈工具(Radar),以及可靠且文档完善的 webhook。
- 支持众多国家和货币。
取舍
- 它是支付处理服务,而非销售记录商(merchant of record)——你才是法定卖方,因此征收并上缴销售税和增值税(VAT)是你的责任(Stripe Tax 可帮你计算,但仍需你自己申报)。
- 比托管店铺需要更多设置;流程中更多部分要靠你自己搭建。
- 随着业务增长,合规、拒付(chargeback)和税务登记都会落到你身上。
何时使用
当你想对支付流程拥有最大掌控权,并且愿意自行承担税务合规时,就选 Stripe;或者当你要构建托管店铺无法表达的东西时——平台市场、计量计费、复杂订阅,或深度定制的结账流程。
与 vibe coding 的契合度
Stripe 是最适合 AI 的支付选项,因为 AI 助手见过成千上万的 Stripe 示例,所以它能快速搭建结账、webhook 和客户门户。问题在于,AI 助手会乐呵呵地接好收款逻辑,却忘了你现在要在几十个司法辖区缴税。请明确告知:告诉它你是否想改用销售记录商方案,并始终验证 webhook 签名、以幂等方式处理事件。上线前用 Stripe 的测试卡测试。
// Create a Checkout Session (server-side)
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
const session = await stripe.checkout.sessions.create({
mode: "payment",
line_items: [{ price: "price_123", quantity: 1 }],
success_url: "https://example.com/thanks",
cancel_url: "https://example.com/cancel",
});
// redirect the customer to session.url