基于Stripe Connect搭建买卖平台:卖家收款与账户关联技术问询
Stripe Connect 买卖双方平台核心问题解答
一、关联账户(Connected Account)绑定卖家银行账户
有两种主流实现方式,可根据平台需求选择:
1. 使用 Stripe 预构建的账户开通流程(Onboarding)
这是合规性最强、开发成本最低的方式,Stripe 全程处理身份验证与银行信息收集:
- 创建关联账户时,通过 API 指定
capabilities参数开启转账等核心权限,示例请求体:{"type": "express", "capabilities": {"transfers": {"requested": true}}} - 生成账户开通链接(Account Link),引导卖家完成身份验证流程,过程中卖家需填写个人/企业银行账户信息
- 流程完成后,Stripe 自动将银行账户与该关联账户绑定,你无需存储任何敏感银行数据
2. 手动绑定外部账户(适用于自定义信息收集场景)
若需完全自定义银行信息收集页面,可通过 API 手动关联:
- 合规收集卖家银行账户信息(需完成账户所有权验证,比如小额打款验证)
- 调用
POST /v1/accounts/{CONNECTED_ACCOUNT_ID}/external_accounts接口,传入银行账户参数,示例请求体:{"external_account": {"object": "bank_account", "country": "US", "currency": "usd", "account_holder_name": "John Doe", "account_holder_type": "individual", "routing_number": "110000000", "account_number": "000123456789"}} - 接口调用成功后,该银行账户将与目标关联账户绑定,可用于后续资金提现
二、卖家从买家收款的具体流程
Stripe Connect 提供三种核心收款模式,以下是最常用的两种:
模式1:Destination Charge(平台中转资金,再分账给卖家)
适合需要平台先管控资金的场景:
- 创建 Charge 时,指定
destination参数为卖家的 Connected Account ID,示例代码(Python):stripe.Charge.create( amount=1000, # 单位:分,对应10美元 currency="usd", source="tok_visa", # 买家支付方式令牌 destination="acct_XXXXXX", # 卖家的关联账户ID application_fee_amount=100 # 平台收取的手续费,1美元 ) - Stripe 直接从买家账户扣款,资金先进入平台主账户,再自动转账至卖家关联账户(默认即时到账,可配置延迟到账规则)
- 退款时,资金原路退回买家,平台手续费同步退回
模式2:Direct Charge(资金直接进入卖家关联账户)
适合让卖家直接持有交易资金的场景:
- 使用平台 API Key,创建 Charge 时指定
stripe_account头参数为卖家的 Connected Account ID,示例代码(Python):stripe.Charge.create( amount=1000, currency="usd", source="tok_visa", stripe_account="acct_XXXXXX", # 卖家的关联账户ID application_fee_amount=100 # 平台直接扣除的手续费 ) - 资金直接进入卖家关联账户,平台手续费从交易金额中实时扣除
- 需确保卖家关联账户已完成合规验证并开通
card_payments能力
通用注意事项
- 所有交易需关联唯一订单标识(比如
transfer_group参数),方便后续对账与纠纷处理 - 需处理支付失败、退款、账户验证失败等异常场景,避免资金流中断
内容的提问来源于stack exchange,提问作者redoc01
相关产品推荐
相关产品推荐

