Stripe自定义Connect账户更新路由/账号报错:无效账户令牌排查
问题解决方案
疑问解答
- 完全可以通过API更新自定义Connect账户的路由/账号,不需要仅依赖仪表盘操作。
- 你的代码存在参数配置错误:
- 混淆了两种Stripe令牌的用途:你生成的是银行账户令牌(btok_开头),但后端错误地传给了
AccountToken参数——这个参数接收的是账户信息令牌(actok_开头),用于更新个人信息(如地址、SSN等),这就是你更新个人信息成功但更新银行账户失败的核心原因。
- 混淆了两种Stripe令牌的用途:你生成的是银行账户令牌(btok_开头),但后端错误地传给了
代码修正
后端更新账户时,需将银行账户令牌传给ExternalAccount参数,而非AccountToken。修正后的代码示例:
try { StripeConfiguration.ApiKey = _config["StripeSettings:SecretKey"]; var options = new AccountUpdateOptions(); // 替换为正确的参数ExternalAccount options.ExternalAccount = "btok_1N6SgaH6wPz6LzpKSWGgmB7Z"; var service = new AccountService(); var account = await service.UpdateAsync(stripeAccount.AccountId, options); } catch (StripeException ex) { _logger.LogWarning(ex, ex.StripeError.Message); return BadRequest(new ApiResponse(400, "Error updating account. " + ex.StripeError.Message)); }
补充说明
- 调用该接口后,新的银行账户会被设为默认提现账户,原有旧账户会被保留但不再作为默认。若需删除旧账户,可额外调用Stripe的删除外部账户API。
- 前端生成银行账户令牌的代码是正确的,无需修改。
内容的提问来源于stack exchange,提问作者chuckd
相关产品推荐
相关产品推荐

