如何通过Metadata或Email检索Stripe自定义Connect账户?
解决Stripe Connect账户检索问题
你之前的代码犯了两个关键错误:
stripe.accounts.retrieve是根据账户ID查询单个账户的方法,不是用来按邮箱或元数据搜索的,而且它的第一个参数必须是账户ID,不能传配置对象。expand参数的用法完全错了,它是一个数组,用来展开账户的关联资源(比如['capabilities']),根本不是用来设置筛选条件的,这就是你收到“无效数组错误”的原因。
正确的检索方式要用stripe.accounts.list方法,它支持按条件筛选账户,以下是两种场景的实现:
1. 通过邮箱检索Connect账户
直接在list方法的参数里指定email即可:
const accounts = await stripe.accounts.list({ email: "eg@gmail.com", limit: 10 // 可选,限制返回的账户数量,最多100 }); // 匹配的账户会放在accounts.data数组里 console.log(accounts.data);
2. 通过Metadata检索Connect账户
如果你的账户Metadata里有自定义字段(比如user_id: "12345"),可以用metadata[字段名]作为筛选条件:
const accounts = await stripe.accounts.list({ "metadata[user_id]": "12345", limit: 10 }); console.log(accounts.data);
注意:Stripe的列表查询默认分页,如果你需要获取所有匹配的账户,可能需要循环处理分页游标。
内容的提问来源于stack exchange,提问作者Muathcs
相关产品推荐
相关产品推荐

