Node.js调用stripe.customers.list接口后如何正确获取customer的id字段
问题原因
你调用的stripe.customers.list接口返回的是分页列表结构,所有符合查询条件的客户数据都存储在返回对象的data数组字段中,你之前直接读取customer.id会报错有两个原因:
- 你定义的接收变量是
customers(复数),你写的customer变量本身就不存在 - 即使你变量名写对,
customers本身是列表容器,不是单个客户对象,不存在id字段
你贴出的返回示例里object为subscription如果是实际返回结果,说明你实际调用的是订阅查询接口,取值逻辑和客户列表接口完全一致。
解决方法
情况1:确认查询条件仅对应1条结果
直接取数组第一个元素的id即可,注意要先判断数组非空避免索引越界报错:
const customers = await stripe.customers.list({ email: 'email@email.com', }); if (customers.data.length > 0) { const targetId = customers.data[0].id; console.log(targetId); }
情况2:查询条件可能对应多条结果
遍历data数组批量获取所有匹配的ID:
const customers = await stripe.customers.list({ email: 'email@email.com', }); const idList = customers.data.map(item => item.id); console.log(idList); // 输出所有匹配项的ID数组
内容的提问来源于stack exchange,提问作者developerg1000
相关产品推荐
相关产品推荐

