Node.js 环境下基于Stripe实现POS应用用户付款直接到店主银行账户
实现方案总览
你需要用Stripe Connect产品实现资金直接结算到店主银行账户,无需经过你的平台账户沉淀,POS场景推荐使用*目的地收款(Destination Charges)*模式,支付时直接指定资金的最终收款方,到账后可按Stripe规则或店主账户设置自动提现到绑定的银行卡。
前置准备
- 注册你的Stripe平台账户,开启Connect功能
- 每个入驻店主都需要完成Stripe Connect入驻流程,开通独立的Connect账户并绑定本人银行卡
- Node.js项目中安装Stripe官方SDK:
npm install stripe
核心实现步骤
1. 初始化Stripe SDK
所有接口调用都需要用你平台的Stripe秘密密钥,注意不要将密钥暴露在前端代码中:
const stripe = require('stripe')('你的Stripe平台秘密密钥');
2. 后端创建支付Intent
POS端发起支付请求后,后端创建支付Intent时直接指定收款的店主Connect账户ID,还可以设置平台要收取的手续费:
// 后端创建支付接口示例 app.post('/create-pos-payment', async (req, res) => { const { orderAmount, shopOwnerConnectId, platformFee } = req.body; const paymentIntent = await stripe.paymentIntents.create({ amount: orderAmount, // 单位为最小货币单位,比如100对应1元人民币/1美元 currency: 'cny', // 替换为你使用的货币代码 payment_method_types: ['card'], // 实体POS终端刷卡的话追加`card_present`参数 application_fee_amount: platformFee, // 平台收取的手续费,可选 transfer_data: { destination: shopOwnerConnectId, // 收款店主的Stripe Connect账户ID }, }); res.send({ clientSecret: paymentIntent.client_secret, }); });
注意:如果要实现资金完全不经过你的平台账户,保持Stripe默认的自动结算配置即可,Stripe会在店主账户的到账周期结束后,自动将对应资金提现到他绑定的银行账户,不需要你手动操作转账。
3. 前端完成支付确认
POS前端拿到返回的clientSecret之后,用Stripe.js或者Stripe Terminal SDK调用支付确认接口,引导用户刷卡/扫码完成支付即可。支付成功后资金会自动拆分:平台手续费进入你的平台账户,剩余资金直接进入店主的Connect账户。
注意事项
- 所有店主的Connect账户必须完成Stripe的身份验证(KYC),否则无法接收资金和提现
- 不同国家/地区的结算周期、费率、支持的支付方式存在差异,需要提前确认你运营区域的Stripe政策
- 可以配置Stripe Webhook监听
payment_intent.succeeded事件,支付成功后自动更新你POS系统的订单状态
内容的提问来源于stack exchange,提问作者jpci ann
相关产品推荐
相关产品推荐

