Source 和 Customer已废弃
了解如何用 Customer 对象绑定和管理 Source
警告
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 对象可以一次性使用或重复使用,具体由它的 usage
参数来指示。虽然可以对 Source 直接扣款,但始终应将_可重复使用_的 Source 绑定到 Customer 对象才能供以后重复使用。将可重复使用的 Source 绑定到 Customer
对象后,您便可以向客户展示他们之前在您的应用或网站中使用过的可重复使用的支付方式列表。
可重复使用的来源
某些支付方式(例如 SEPA 直接借记)支持可重复使用的 Source,因此您可以在客户无需再次完成付款流程的情况下创建额外的付款。可重复使用的 Source 的 usage
参数会设置为 reusable
。
必须将可重复使用的 Source 绑定到 Customer
对象后才能创建收款请求。如果您在未事先绑定某个可重复使用的 Source 的情况下对它扣款,则此 Source 就被消耗了(状态从 chargeable
变为 consumed
)。消耗过的 Source 不能用于再次付款。
将某个来源绑定到新的 Customer 对象
您可以创建一个 Customer
对象,并在一个 API 调用中绑定来源。如果您是第一次看到此客户,则这种方式比较有用。
该 Source 会变成 Customer
对象的默认 Source,因为它是此客户的第一个也是仅有的支付方式。如果您在不指定 source
的情况下使用 customer
参数创建收款请求,则会自动选择默认 Source。
将某个 Source 绑定到现有的 Customer 对象
更新一个有默认 Source 的 Customer
对象时,会自动解绑现有 Source,并将提供的 Source 添加为新的默认 Source。要在不替换现有默认 Source 的情况下添加 Source,应使用 attach 方法,如下所示。
这里,由于 Customer
对象可能已经存在一个默认的来源,新绑定的来源尚未变成默认来源。但是,可以通过更新 Customer
对象并将来源指定为 default_
来更改默认来源。
对绑定的来源扣款
创建收款请求时,必须同时指定 Customer
对象和来源。
如果试图在不指定来源的情况下对 Customer
对象扣款,则 Stripe 会使用客户的默认来源。
解绑来源
如果移除某特定 Customer
对象的 Source,可以解绑 Source。这样做会将 Source 的状态更改为 consumed
,解绑后不能再使用。
一次性使用的来源
对于一次性会用的来源,客户每次付款时都要创建,而且不能重复使用。因此,不建议将其永久绑定到客户。
如果想将某笔付款关联到特定的 Customer
对象,则可以在用某个来源创建收款请求时包含 customer
参数,即使此来源未绑定。
相应 Charge
对象会同时引用 Customer
和 Source
这两个对象,即使可能二者并不直接相关。