You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Stripe实现客户向服务商付款并转账至服务商银行账户的功能?

如何用Stripe实现客户直接向服务商的银行账户付款

当然可以搞定!你的这个「客户仅能向服务商发起付款、资金直达服务商银行账户」的需求,完全适配Stripe Connect的能力,我给你拆解具体操作步骤和可选模式:

1. 先搭建Stripe Connect的基础架构

  • 第一步,你得在Stripe后台创建属于你的平台Connect账户(也就是你的应用对应的Stripe账户)。
  • 接下来要让每个服务商(Providers)关联到你的平台:因为你已经有他们的银行账户信息,推荐用这两种账户类型:
    • Express账户:Stripe提供现成的开户流程,你可以引导服务商自己完成身份验证,也可以通过API直接传入他们的银行账户信息(要符合Stripe的合规要求哦),上手快、合规压力小。
    • Custom账户:如果你想完全自定义开户页面和流程,可以选这个,但对应的合规责任会更重,需要自己处理更多身份验证环节。
  • 关键提醒:一定要确保每个服务商的Connect账户都绑定好他们的银行账户,不然资金没法转进去。

2. 首选方案:Direct Charges模式(资金直接到服务商账户)

这种模式下,付款是直接在服务商的Connect账户下创建的,资金扣除Stripe手续费后,会直接进入服务商的账户,完美匹配你要的「资金直达」需求:

  • 先收集客户的支付方式(比如信用卡、借记卡),生成一个PaymentMethod对象。
  • 然后调用Stripe API创建PaymentIntent,核心是要指定服务商的Connect账户ID,如果你平台要收服务费,也可以顺便设置相关参数。
    给你个Node.js的代码示例参考:
const stripe = require('stripe')('你的平台Secret Key');

const paymentIntent = await stripe.paymentIntents.create({
  amount: 1000, // 金额单位是分,这里对应10美元
  currency: 'usd',
  payment_method: 'pm_xxx', // 客户的PaymentMethod ID
  confirm: true,
  stripe_account: 'acct_xxx', // 替换成服务商的Connect账户ID
  application_fee_amount: 100, // 平台收取的服务费,这里是1美元(可选)
});

付款完成后,资金会直接进入服务商的Connect账户,之后Stripe会按照默认结算周期(一般是2天,也可以调整)自动把钱转到他们绑定的银行账户里。

3. 替代方案:Destination Charges模式(平台暂存资金再转出)

如果你的业务需要平台先暂时持有资金,再转到服务商账户,也可以用这种模式:

  • 创建PaymentIntent时,通过transfer_data[destination]指定服务商的Connect账户ID,资金会先进入你的平台账户,然后立刻(或延迟)转到服务商账户。
    代码示例:
const paymentIntent = await stripe.paymentIntents.create({
  amount: 1000,
  currency: 'usd',
  payment_method: 'pm_xxx',
  confirm: true,
  transfer_data: {
    destination: 'acct_xxx', // 服务商的Connect账户ID
  },
  application_fee_amount: 100, // 平台服务费(可选)
});

不过这种模式资金会经过平台账户,如果你要的是「直接到服务商账户」,还是优先选Direct Charges。

4. 必看的合规与注意事项

  • 必须确保服务商的Connect账户完成所有合规验证(比如身份信息、银行账户有效性验证),不然资金没法正常结算到他们的银行账户。
  • 平台收取的服务费要提前明确告知客户和服务商,且符合Stripe的相关规定。
  • 不同地区的结算规则、手续费率可能有差异,要根据你和服务商的所在地调整设置。

内容的提问来源于stack exchange,提问作者Hahan't

火山引擎 最新活动