接受银行转账
当您第一次接受客户的银行转账付款时,Stripe 会为他们生成一个虚拟银行账户,然后您可以直接分享给他们。今后来自该客户的所有银行转账付款都会发到这个银行账户。在一些国家,Stripe 还为您提供一个独特的转账参考码,您的客户每次转账时都需包含此号码,以更方便地进行对账。在某些国家,可以免费创建的虚拟银行账号数量是有限制的。
下图概括介绍了接受银行转账付款时的常用步骤:
处理少付和多付
使用银行转账方式付款,客户给您发送的可能会多于或少于预期金额。如果客户少发,则 Stripe 会向未付的付款意图中注入部分资金。账单是不能部分支付的,仍会保持开启状态,直到全额资金流入。
如果客户发送的金额超过预期,则 Stripe 会根据未付的付款核对入账资金,并将多出的金额保留在客户的现金余额中。年您可以在我们文档的对账部分找到有关 Stripe 如何处理对账的更多信息。
多个开启付款或账单的处理
您可能有多个开启的付款或账单,可通过银行转账来支付。在模式设置中,Stripe 会尝试用诸如转账的参考码或转账金额来自动核对银行转账。
您可以禁用自动对账,然后自行手动核对付款和账单。可单独覆盖掉对某个客户的自动核对行为,方法是将核对模式设置到手动模式。
创建或检索 Customer服务器端
要核对每笔银行转账付款,您必须关联一个 Customer 对象。如果您有现成的 Customer 对象,则可以跳过这一步。否则,创建一个新的 Customer 对象。
创建并确认 PaymentIntent服务器端
PaymentIntent 是一个用来表示您从客户收款意图的对象,并可用于跟踪整个付款流程中各个阶段的情况。在服务器上创建并确认一个 PaymentIntent,指定想要收取的金额和货币。
引导客户完成银行转账客户端
如果客户的余额不足以付款请求的金额,则 PaymentIntent 显示 requires_action
状态。响应中有一个 next_action
字段,包含 display_bank_transfer_instructions
的一个 type
值。next_action[display_bank_transfer_instructions]
散列中包含向客户显示的信息,以便其完成银行转账。
备注
在真实模式下,Stripe 为每个客户提供唯一一套银行转账信息。而在测试模式下,Stripe 为所有客户提供都是无效的银行转账详情。与真实模式不同,这些无效的详情可能并不总是唯一。
确认 PaymentIntent 成功
PaymentIntent 保持在 requires_action
状态,直至资金到达银行账户。资金就位后,PaymentIntent 的状态从 requires_action
更新为 succeeded
。
需设置您的 webhook 端点后才能开始接收 payment_intent.partially_funded
事件。
您可以从管理平台添加 webhook。
或者,您可以用 Webhook Endpoints API 开始接收 payment_intent.partially_funded
事件。
当我们更新 PaymentIntent 时,Stripe 会在支付流程过程中发送以下事件。
事件 | 描述 | 后续步骤 |
---|---|---|
payment_intent.requires_action | 客户余额资金不足,不能补齐 PaymentIntent 时,在确认过程中发送,PaymentIntent 变为 requires_action 。 | 引导客户发送一笔金额为 amount_remaining 的银行转账。 |
payment_intent.partially_funded | 客户发送了银行转账,并且应用到了 PaymentIntent,但不足以完成付款。客户转账金额不足(由于错误地少付或其银行从中扣留了费用)或剩余的客户余额已应用到这个 PaymentIntent 时就可能发生这种情况。部分注入资金的 PaymentIntents 不会提现在您的账户余额上,直至付款完成。 | 引导您的客户用一个新的 amount_remaining 再发送一笔银行转账,从而完成付款。如果想通过部分应用资金来完成付款,可以更新 amount 并再次确认 PaymentIntent。 |
payment_intent.succeeded | 客户付款成功。 | 履行客户购买的商品或服务。 |
注意
当您更改有部分资金的 PaymentIntent 的金额时,资金将返回到客户余额。如果有其他未完成的 PaymentIntents,则 Stripe 自动提供这些资金。如果客户配置的是手动对账,那么您需要再次应用资金。
建议用 Webhooks 来确认成功收款操作,并通知客户付款已完成。
示例代码
在管理平台查看待处理的付款
您可以通过将等待资金筛选器应用到状态来在管理平台中查看所有待处理的银行转账 PaymentIntents。
测试您的集成应用
您可以通过在管理平台中或通过 HTTP 请求模拟传入银行转账来测试您的集成。
使用管理平台
要用管理平台模拟银行转账,导航到管理平台中的客户页面。在支付方式下方,点击添加然后选择现金余额充值(仅测试模式)。
使用 Stripe API
您可以发起一个 API 调用来模拟一笔银行转账。
处理临时性的可用性问题
以下错误代码表明支付方式的可用性出现了临时性的问题:
代码 | 描述 | 处理 |
---|---|---|
payment_method_rate_limit_exceeded | 该支付方式的连续请求太多,其限制比 API 范围的速率限制更严格。 | 当您的许多客户在同一时段试图使用相同的支付方式时(例如,您的网站进行持续销售期间),多个 API 请求可能会持续发生这些错误。这种情况下,请让您的客户选择另外的支付方式。 |
注意
如果您预计一般情况下会用量激增或有即将要举行的大型活动,请在知道后立即联系我们。