React Native应用中如何通过单个Stripe API密钥实现多商家直接收款至银行账户
React Native多商家Stripe直接收款实现方案
要实现单个API密钥下多商家直接收款,核心得用Stripe的**连接账户(Connect Accounts)**功能,以下是具体步骤:
一、给每个商家创建专属连接账户
每个商家对应一个独立的Stripe连接账户,你用自己的平台API密钥创建即可,有两种类型可选:
- 标准账户(Standard):商家自己注册管理Stripe账户,你只负责发起收款,资金直接到商家账户,适合需要商家自主操作的场景。
- 自定义账户(Custom):商家不用注册Stripe,由你代管理所有账户操作,资金直接打去商家绑定的银行账户,适合全托管的场景。
创建时要收集商家的身份、银行账户等必要信息(测试模式用Stripe提供的测试数据就行),创建成功后会得到唯一的account_id,这就是你标识商家的关键ID。
二、通过PaymentSheet发起定向收款
在React Native里用PaymentSheet收款时,必须在后端生成**支付意图(Payment Intent)**时指定商家的account_id:
后端示例(Node.js)
const stripe = require('stripe')('你的平台API密钥'); // 创建支付意图时指定目标商家的account_id const paymentIntent = await stripe.paymentIntents.create({ amount: 1000, // 金额单位:分 currency: 'usd', payment_method_types: ['card'], transfer_data: { destination: '商家的account_id', // 这里填对应商家的连接账户ID }, }); // 返回给客户端的PaymentSheet所需参数 res.json({ paymentIntent: paymentIntent.client_secret, ephemeralKey: await stripe.ephemeralKeys.create( {customer: '可选的顾客ID'}, {apiVersion: '2023-10-16'} ), customer: '可选的顾客ID', merchantDisplayName: '商家名称', // 显示在PaymentSheet上的商家名称 });
前端用后端返回的参数初始化PaymentSheet,用户付款后,资金会直接转入指定商家的连接账户,后续商家可自行提现到绑定的银行账户。
三、给商家绑定银行账户
- 如果是自定义账户,你可以通过API直接帮商家绑定银行账户:
// 为指定连接账户添加银行账户 const externalAccount = await stripe.accounts.createExternalAccount( '商家的account_id', { external_account: { object: 'bank_account', country: 'US', currency: 'usd', routing_number: '110000000', // Stripe测试路由号 account_number: '000123456789', // Stripe测试账户号 }, } );
- 如果是标准账户,商家自己登录Stripe后台就能绑定银行账户,你不用插手。
四、测试验证
用Stripe提供的测试信用卡(比如4242 4242 4242 4242)发起付款,然后去你的Stripe后台「连接账户」页面,查看对应商家的交易记录和资金到账情况,确认流程正常。
内容的提问来源于stack exchange,提问作者Godwin
相关产品推荐
相关产品推荐

