Sources API已废弃
通过 Sources API 了解各支付方式的差别及可用机制。
警告
We deprecated the Sources API and plan to remove support for local payment methods. If you currently handle any local payment methods using the Sources API, you must migrate them to the Payment Methods API.
While we don’t plan to remove support for card payments, we recommend replacing any use of the Sources API with the PaymentMethods API, which provides access to our latest features and payment method types.
Source 对象可让您通过单一 API 接受多种支付方式。Source 代表客户的支付工具,可与 Stripe API 搭配使用以创建付款。Sources 可被直接扣款,或绑定到客户供以后重复使用。
Sources API 的每个支持的支付方式都通过四个特征来定义。这些特征的组合,便决定了如何将一个来源变成可扣款状态,并用它在收款请求中完成付款。
有关如何用 Sources API 接受任意支付方式的完整演示示例,请查看该网上店铺示例并浏览它的 GitHub 源代码。
支持的支付方式
您可以在管理平台中启用可使用的支付方式。激活通常是即时的,不需要额外的合同,也不涉及冗长的流程。有关详细列表,可查看可用的支付方式及其支持的地理区域。
下表为上述关键特征与支持的支付方式的对应关系:
转账 | 确认 | 无 | 重定向 | 代码验证 | 接收方 |
---|---|---|---|---|---|
拉 | 同步 | 银行卡 | — | — | — |
异步 | SEPA 直接借记(已弃用) | ACH 借记 - 验证 | ACH 借记 - 微存款 | — | |
推 | 同步 |
| — | — | Multibanco(已弃用) |
异步 | — | 具有 Source 的 Sofort(已弃用) | — | — |
资金的拉与推
每种支付方式都会有个拉或推的区分,取决于资金是如何从客户的支付方式转移的。
- 使用_拉_的方式,您在客户同意后从客户的账户扣取资金。银行卡支付便是一种拉式方式:付款时,从客户的银行卡借记,后续扣款时不需要客户进行任何干预。
- 使用_推_的方式,客户将资金发送给你。ACH 贷记转账便是一个推送式的示例:向客户提供银行路径和账号,让他们将正确的金额发送(推)到此账号。确认客户已将资金发送给您后,Source 即变为可扣款状态,这时便可以用在收款请求里了。其它推式支付方式,例如 iDEAL 或 Sofort,都需要将客户重定向到某个地方,然后由他们将钱从其网银直接推给你。通常,推的方式需要客户对每笔付款进行干预。
客户操作流程
某些支付方式要求客户完成特定的操作(流程)后,Source 才能变成可扣款状态。某个支付方式适用的流程的类型会在 Source
对象的 flow
参数中陈述。每个方式都会落入以下流程类型中的一种。
完成所需流程并且 Source 变为可扣款状态后,必须用此 Source 来处理要完成的付款的收款请求。如果不的话,此 Source 会被取消,然后自动向客户退回授权的付款——没有资金流入您的账户。
一次性使用或重复使用
某些支付方式允许创建可重复使用的 Source,将来付款时不需要客户再完成一遍付款流程。可重复使用的 Source,它们的 usage
参数会设置成 reusable
。
相反,如果某个 Source 只能使用一次,则此参数设置为 single_
,而且客户每次付款时都要创建一个 Source。不应将这类 Source 绑定到 Customer——而是应直接扣款。它们只能被扣款一次,而且扣款后,状态会变成 consumed
。
可重复使用的 Source 必须要绑定到 Customer 才能被重复使用。(如果直接扣款,则它们的状态将变为 consumed
。)要学习如何将 Sources 绑定到 Customers,以及如何管理某个 Customer 的 Source 列表,请参考 Sources 和 Customers 指南。
同步或异步确认
在您用一个支付方式创建了 Charge 对象后,可以立即(同步)确认此 Charge 的状态,也可以等一段时间(异步)确认。
使用同步支付方式时,收款请求的
succeeded
或failed
状态可以立即得到确认。如果收款请求成功,则付款完成——可确定已对客户完成了扣款,您定能收到资金。银行卡付款便是一种同步的支付方式:付款是成功还是失败,都会实时确认。对于异步支付方式,可能要等几天才能确认付款成功。这段时间内,无法保证付款能成功。付款的
Charge
对象的状态最初会被设置为pending
,然后一直持续到确认付款成功或失败。ACH 借记便是一种异步方式:使用这类借记方式时,付款成功后需要等几天才能得到确认。
一旦收款的状态发生变化,Stripe 即发送一个 webhook 事件。接受任何异步的支付方式时,您的集成应用必须能够接收 Webhooks,这样才能收到通知并确认客户的付款是成功还是失败。