You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Stripe API批量查询50位客户的付费订阅状态?

可以实现,具体方案如下

核心思路

通过Stripe的List Subscriptions API,结合过滤参数一次性查询指定客户的有效订阅:

  • 用status参数筛选符合你定义的“有效”订阅状态(比如active表示正常付费、trialing表示试用中,可按需组合)
  • 用customer[in]参数传入50个客户ID的逗号分隔列表,精准定位目标客户的订阅数据

代码示例(Node.js)

const stripe = require('stripe')('你的Stripe密钥');

async function fetchValidCustomerSubscriptions(customerIds) {
  // 调用List Subscriptions接口,筛选有效订阅并指定目标客户
  const result = await stripe.subscriptions.list({
    status: 'active', // 可替换为你需要的状态,比如`status[in]=active,trialing`同时筛选多个状态
    customer: { in: customerIds },
    limit: 100, // 单次请求最多返回100条,足够覆盖50个客户的订阅数据
  });

  // 整理成客户ID对应订阅状态的映射
  const subscriptionStatusMap = {};
  // 先标记有有效订阅的客户
  result.data.forEach(sub => {
    subscriptionStatusMap[sub.customer] = '有效付费订阅';
  });
  // 给无有效订阅的客户补全状态
  customerIds.forEach(id => {
    if (!subscriptionStatusMap[id]) {
      subscriptionStatusMap[id] = '无有效订阅';
    }
  });

  return subscriptionStatusMap;
}

// 调用示例:传入50个客户ID数组
const targetCustomerIds = ['cus_XXX123', 'cus_YYY456', /* ... 其他客户ID */];
fetchValidCustomerSubscriptions(targetCustomerIds)
  .then(statusMap => console.log(statusMap))
  .catch(err => console.error('查询失败:', err));

注意事项

  • 状态定义:根据业务需求调整status参数,Stripe订阅状态包括active、trialing、past_due(逾期未取消)等,可通过status[in]=状态1,状态2的格式同时筛选多个有效状态
  • 分页处理:如果50个客户的订阅总数超过100条,需要通过starting_after参数实现分页查询,循环获取所有数据
  • 权限验证:确保你的Stripe API密钥拥有read_subscriptions的权限,否则会返回权限错误

内容的提问来源于stack exchange,提问作者Yusuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 09:30:10