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

如何按price id筛选所有Stripe订阅,对应可用Node.js API有哪些?

基于Price ID筛选Stripe Subscription的实现方案

可用API说明

Stripe官方原生提供了订阅列表查询的过滤能力,无需自行全量拉取订阅后再做筛选,直接通过stripe.subscriptions.list接口传入对应过滤参数即可实现按Price ID筛选订阅,属于官方原生的Subscription Filter API能力。

Node.js 实现参考

前置依赖

安装Stripe Node.js SDK,建议使用v10.0.0及以上版本:

npm install stripe --save

代码实现

const Stripe = require('stripe');
// 密钥建议存放在环境变量中,不要硬编码在代码里
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, {
  apiVersion: '2022-11-15', // 替换为你Stripe账号后台配置的API版本即可
});

/**
 * 根据Price ID筛选匹配的Stripe订阅
 * @param {string} priceId 目标Price ID
 * @param {string} [subscriptionStatus='all'] 订阅状态过滤,可选值:active/canceled/past_due/unpaid/trialing/all
 * @param {number} [limit=100] 单次返回最大数量,最高支持100
 * @returns {Promise<Array>} 匹配到的订阅列表
 */
async function getSubscriptionsByPriceId(priceId, subscriptionStatus = 'all', limit = 100) {
  // 单次拉取逻辑,适合匹配订阅数量少于100的场景
  const result = await stripe.subscriptions.list({
    price: priceId, // 核心过滤参数,直接指定目标Price ID
    status: subscriptionStatus,
    limit: limit,
  });

  // 若匹配的订阅数量可能超过100,使用下方分页拉取逻辑替换上面的单次拉取即可
  /*
  let allSubscriptions = [];
  let lastId = null;
  do {
    const batch = await stripe.subscriptions.list({
      price: priceId,
      status: subscriptionStatus,
      limit: 100,
      starting_after: lastId,
    });
    allSubscriptions = allSubscriptions.concat(batch.data);
    lastId = batch.data.length ? batch.data[batch.data.length - 1].id : null;
  } while (lastId);
  return allSubscriptions;
  */

  return result.data;
}

// 调用示例
const TARGET_PRICE_ID = 'price_xxxxxxxxxxxxxx'; // 替换为你需要筛选的Price ID
getSubscriptionsByPriceId(TARGET_PRICE_ID, 'active')
  .then(matchedSubscriptions => {
    console.log('匹配到的活跃订阅:', matchedSubscriptions);
  })
  .catch(error => {
    console.error('订阅查询失败:', error);
  });

注意事项

  • 上述过滤逻辑会返回所有任意订阅项包含目标Price ID的订阅,若你需要严格匹配订阅仅包含该Price ID的场景,可在拿到返回结果后二次校验subscription.items.data中所有条目的price.id是否和目标ID一致
  • 调用接口使用的Stripe密钥需要有订阅的读取权限,禁止在前端环境暴露该密钥
  • 如果需要同时筛选多个Price ID,可以多次调用接口合并结果即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:10