Payment Element 常见问题

Payment Element 是一款安全、可嵌入的 UI 组件,可用于接受世界各地的本地支付方式。

为了帮助一次性和定期付款用户接受多种不同的支付方式,Payment Element 支持 3 种主要集成路径:

常见问题

Payment Element 的核心功能是什么?

伴随 Payment Element,Stripe 推出了新一代 Element(请参阅:https://stripe.com/payments/elements)。在 Payment Element 之前,商家需要为每种单独的支付方式构建和维护新集成。由于不再需要这样做,您可以通过使用 Payment Element 节省大量时间和资源。

请参阅下文,了解 Payment Element 的一些核心功能:

- 通过单个 Elements 集成支持多种支付方式
- 根据以客户所在国家/地区(取自 IP 地址)和首选语言(取自浏览器区域设置)为依据的排序逻辑,向每个买家显示相关支付选项
- 针对 42 个区域设置进行了本地化:https://stripe.com/docs/js/appendix/supported_locales
- 可以迎合商家品牌打造独特风格(字体、颜色、间距等)
- 具有移动响应性
- 具有内置输入验证
- 符合 PCI-DSS
- 适用于 PaymentIntents/SetupIntents

Payment Element 与 Stripe Elements 有何关联?有何不同?

Stripe Elements 是一组预构建的 UI 组件,例如输入和按钮,用于构建您的结账流程。对于每种支付方式(信用卡、借记卡等),都有一款关联的 Element。Payment Element 是一款新组件,它将各种支付方式 Element 组合成单个 Element。

Stripe Elements 和 Payment Element 的不同之处在于:

之前使用 Elements 时,商家需要构建和维护货币/国家/地区/支付方式映射和关联逻辑,以确定何时在后端调用 Stripe API,以及在用户界面 (UI) 上显示/隐藏 Elements。这将需要逐个集成每个 Element。

使用 Payment Element,商家可以免于构建和维护这些组件。集成体验开始看起来像单个 Element 集成,映射、逻辑、表示和行为由 Stripe 预先构建。与当前使用 Stripe Elements 相比,Payment Element 的 UI 层可定制性略低,但可控性高于 Stripe Checkout。

更具体地说,主要区别在于:

- Payment Element 集成所需的工作量与其他 Element(例如,Card Element)几乎相同,但维护所需的工作量远远少于其他 Element,因为可以添加支付方式,而无需针对每种支付方式与其他 Element 集成。
- 与当前的 Elements 相比,自定义样式的能力更加有限,仅支持我们的 JavaScript 样式 API(不支持 CSS)。但是,仍然支持大多数样式功能。
- 由于不支持服务器端确认,信用卡将需要使用 webhook(当前 Elements 并非如此)。但是,我们将支持在“银行卡”部分绕过此要求。
- 大多数通过 Payment Element 接受的支付方式都需要重定向到订单确认页面,因此单页 web 应用程序需要添加单独的订单确认页面。但是,结账体验仍然完全嵌入到商家的网站中(与 Stripe Checkout 不同)。

Payment Element 与 Checkout 有何关联?

Payment Element 是一款新型 UI 组件,可以放置在商家网站中,根据商家体验进行设计和品牌化。该组件可从消费者那里自动收集必要信息(收货地址除外),使您能够更轻松地提供多种支付方式(18 种以上且还在不断增长)。Payment Element 使用 Stripe 的支付 API (PaymentIntents/SetupIntents) 来运行,并构建在我们的 SDK Stripe.js 之上。该产品专为希望控制所提供的支付体验的商家而设计。更具体地说,如果您希望在您的 web 应用程序中完全集成支付(即多步骤流程、品牌意识、高可控性需求、在结账时提供特殊条款),那么 Payment Element 就是适合您的产品。Payment Element 使您能够在结账时收集所需的任何信息并设计您想要的体验。

另一方面,Stripe Checkout 是我们的完全托管支付页面,该产品还可以轻松提供您的网站将重定向到的 LPM (25+),但样式选项(颜色/徽标)有限。Stripe Checkout 使用 Checkout Sessions 进行操作,而不使用 Payment Intent/Setup Intent。该产品专为更简单的用例而设计,即单步流程,对控制/定制/品牌推广的需求较少。Stripe Checkout 提供并收集更多信息,包括收集收货地址并显示产品列表/订单总数和提交按钮,而 Payment Element 不具备这些功能。

实施 Payment Element 需要多大的工作量?

Payment Element 集成所需的工作量与单个 Element(例如,Card Element)几乎相同,但维护所需的工作量更少。您想提供更多支付方式时,不必为每个选项集成 Element。

使用 Payment Element 的成本是多少?

用户使用 Payment Element 无需额外付费。与之相关的唯一成本是他们接受的每种支付方式的成本(请参阅 https://stripe.com/pricing/local-payment-methods)。

Payment Element 支持哪些 API?

Payment Element 受 PaymentIntents 和 SetupIntents 支持。Charges 和 Sources 等其他旧版 API 不受支持。

我是否需要使用 webhook?

是的,您需要结合使用 webhook 与 Payment Element,因为服务器端确认不受支持。

但是,我们能够支持不需要重定向的支付方式(例如银行卡)绕过此要求。适用的操作代码如下:https://stripe.com/docs/js/payment_intents/confirm_payment#confirm_payment_intent-options-redirect

如何使用 Payment Element 来提供 Stripe 支持的所有支付方式?

要使用 Payment Element 提供 Stripe 支持的所有支付方式,您可以在创建 PaymentIntent 时将一系列支付方式传递给 payment_method_types。但是,您无法同时传递所有支持的支付方式,因为某些支付方式需要不同的货币。您只能使用支持相同货币的支付方式创建一个 PaymentIntent。请在此处查看支付方式和产品支持表:https://stripe.com/docs/payments/payment-methods/integration-options

什么是移动 Payment Element?与 Payment Element 相比如何?

移动 Payment Element 或代码中的 Payment Sheet 类是一款安全、预构建的 UI 组件,可显示来自世界各地的多种支付方式(银行卡、钱包、银行借记、银行重定向、BNPL 等)。该产品类似于 web 上的 Payment Element,但用于移动应用程序中。支付界面显示为“底部表单”(类似于 Apple/Google Pay)并内置于 Stripe 的 Mobile SDK 中。该产品将帮助 Stripe 商家提高转化率并降低支付成本,同时推动 Stripe 实现围绕采用无卡支付方式制定的公司目标。有关更多信息,请参阅:https://stripe.com/docs/payments/accept-a-payment?platform=ios