不进行银行验证的银行卡付款
构建一个带有区域限制的稍简单的集成。
这种集成支持仅接受美国和加拿大银行卡交易的企业。一开始较简单,但难以扩展来支持全球客户。
类似于欧洲及印度等地区的银行经常要求通过双重验证来确认购买。如果您的业务主要在美国和加拿大,则忽略银行卡验证可简化您的集成,因为这些地方的银行很少要求验证。
当银行要求验证时,此基础集成可立即拒绝付款,而不是处理验证来异步完成付款。这样做的好处是,付款会立即成功或失败,付款确认在服务器上进行,从而您可以在不使用 webhook 的情况下立即处理付款后操作。
功能 | 本集成 | 全球集成 |
---|---|---|
自定义支付表单 | ✔ | ✔ |
敏感数据永不接触您的服务器 | ✔ | ✔ |
适用于美国和加拿大客户 | ✔ | ✔ |
拒绝银行卡信息错误或银行卡资金不足的付款 | ✔ | ✔ |
拒绝要求银行验证的付款 | ✔ | |
适用于全球客户 | ✔ | |
自动处理需要银行验证的银行卡付款 | ✔ | |
建议用 Webhook 处理付款后任务 | ✔ | |
轻松扩展到其他支付方式(例如银行借记) | ✔ |
增长中的企业或全球性企业应使用 Stripe 的全球集成来支持银行的双重验证请求,并允许客户用更多支付方式付款。
Elements 是 Stripe.js 的一部分,它提供了用来从客户那里收集银行卡信息的临时 UI 组件。Stripe 托管它们并将其作为 iframe 放入您的支付表单,从而使您的客户的银行卡详情不会触及您的代码。
在您的服务器上设置一个端点,用以接收来自客户的请求。
Stripe 用一个 PaymentIntent 对象来表示您从客户收款的意图,跟踪扣款尝试及整个过程中付款状态的变化情况。
始终在服务器端决定扣款金额,这是一个可信的环境,客户端不行。这样可防止客户自己选择价格。
创建一个 HTTP 端点,响应第 1 步的 AJAX 请求。在此端点,应决定对客户的扣款金额。创建付款时,用第 1 步的 PaymentMethod ID 创建一个 PaymentIntent,使用以下代码:
警告
如果您在确认付款时将 error_on_requires_action 设置为 true
,则如果 Stripe 要求用户进行双重验证,则付款将自动失败。
Payment Intents API 响应
在您用 API 进行付款时,响应中会包含 PaymentIntent 的状态。如果付款成功,则它的状态变为 succeeded
。
如果付款被拒绝,响应中会包含错误代码和错误消息。这里有一个由于要求对银行卡进行双重验证而付款失败的示例。
恭喜!您已完成一个基本的支付集成,可以进行基本的银行卡收款了。注意,此集成会拒绝支付过程中要求验证的银行卡。
如果在管理平台中开始显示被列入 Failed
类别的付款,则需要升级您的集成。Stripe 的全局集成会处理这些付款,而非自动拒绝它们。