如何在Laravel中为Stripe客户添加关联外部银行账户
解决方案
要实现给指定Stripe客户添加外部银行账户,返回含customer字段且状态为verified的结果,你需要调整代码逻辑,直接操作Stripe Customer对象而非创建Custom类型的Connect账户,具体修改如下:
修改后的代码
// 直接使用指定的Stripe客户ID,无需创建Custom Account $external_account = \Stripe\Customer::createSource( $user->stripe_customer_id, [ 'source' => $token->id, ] );
关键修改说明
- 移除Custom Account创建逻辑:你当前代码创建的是Stripe Connect的Custom账户,添加的银行账户属于这个Connect账户(所以返回结果含
account字段)。而你的需求是将银行账户关联到普通Stripe客户,因此不需要创建Connect账户,直接调用Customer::createSource接口即可。 - 使用正确的API方法:
createSource方法用于给普通Customer添加支付方式(包括银行账户),返回结果会自动包含customer字段,对应你指定的客户ID。 - 确保状态变为
verified:在Stripe测试环境中,使用以下测试银行信息生成的token,添加后银行账户状态会自动变为verified:- 路由号:
110000000 - 银行账号:
000123456789 - 账户持有人类型:
individual - 账户持有人姓名:任意测试姓名
- 路由号:
验证返回结果
修改后调用接口,返回的JSON结构将符合你的期望:
{ "id": "ba_1MI35QF23J5kz1XAwIvJPWa0", "object": "bank_account", "account_holder_name": "girish", "account_holder_type": "individual", "account_type": null, "bank_name": "STRIPE TEST BANK", "country": "US", "currency": "usd", "customer": "cus_N27I4C187MRZac", "fingerprint": "wrigOuKxXT4GeRSr", "last4": "6789", "metadata": {}, "routing_number": "110000000", "status": "verified" }
内容的提问来源于stack exchange,提问作者shivam kumar
相关产品推荐
相关产品推荐

