Charges 与 Payment Intents API
了解 Stripe 的两大核心支付 API 的差别及何时使用它们。
认识 Stripe payment API
现在,在 Stripe 上收款有三种方式:
- Stripe Checkout
- Charges API
- Payment Intents API
Stripe Checkout 是一个预构建的页面,可将您的客户重定向到这里,方便地完成购买和订阅。它提供了很多功能,例如 Apple Pay、Google Pay、国际化及表单验证。
Charges 和 Payment Intents API 可供您创建自定义的付款流程和使用体验。
Payment Intents API 是所有 Stripe 产品和支付方式的一体化 API。虽然我们并未弃用 Charges,但新功能只可通过 Payment Intents API 来提供。
关于完整的功能对比,请看下表:
Charges API | Payment Intents API |
---|---|
常由主要客户群在美国/加拿大而想用一种可接受银行卡付款的简单方式的商家使用。 | 接受多种支付方式及银行卡需要验证的公司要求使用(例如,由于欧洲的强客户验证)。 |
适用于 Web、iOS 和 Android。 | 适用于 Web、iOS 和 Android。也可用于通过 Terminal 进行店内收款。 |
Sources API 支持银行卡及所有支付方式。 | 支持银行卡、需要 3DS 验证的银行卡、iDEAL、SEPA 及很多其他支付方式。 |
不是 SCA ready 的 | 是 SCA ready 的 |
从 Charge 读取的迁移代码
如果您的应用程序涉及多个付款流程,并且想逐个从 Charges API 迁移到 Payment Intents API,则应先更新从 Charge 对象读取的代码。为帮助实现这一点,Charge 对象的两个额外属性 payment_method_details 和 billing_details 提供了可供读取收款所用的支付方式的一致界面。
所有的 API 版本以及用 Charges API 和 Payment Intents API 创建的收款对象,都可以使用这些字段。
下表显示的是一笔收款的常用属性,以及如何用其他属性访问同一信息: