检索订阅条带node.js的状态

本教程将介绍检索订阅条带node.js的状态的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

检索订阅条带node.js的状态 教程 第1张

问题描述

我有这个:

 const customers = await stripe.customers.list({
 email: 'contact@Inderatech.com',
  });

  var customerID = customers.data[0].id;


  const subscriptions = await stripe.subscriptions.list({
 customer: customerID
  });

console.log(subscriptions)
  console.log(subscriptions.data[0].status)

它应该做的是检索订户的customerid,然后尝试转到下一个函数,根据customerid检索订阅的status。这不管用。它说了两件事。

    它只输出:

    {object:‘list’,data:[],has_more:false,url:‘/v1/SUBSCRIPTIONS’}

    (node:30746) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'status' of undefined

我知道这是假的,因为当我这样记录它时:

console.log(subscriptions)

它返回超过30行的Subsribers数据,包括活动状态。如下所示:

{
id: 'sub_id',
object: 'subscription',
application_fee_percent: null,
automatic_tax: [Object],
billing_cycle_anchor: 1617410065,
billing_thresholds: null,
cancel_at: null,
cancel_at_period_end: false,
canceled_at: null,
collection_method: 'charge_automatically',
created: 1617410065,
current_period_end: 1635899665,
current_period_start: 1633221265,
customer: 'cus_JEQIfxhiRu7qJh',
days_until_due: null,
default_payment_method: 'pm_1IbxRUIPT89VeZtCxyEA8SMu',
default_source: null,
default_tax_rates: [],
discount: null,
ended_at: null,
items: [Object],
latest_invoice: 'in_1JgIfuIPT89VeZtC2jsKCHRp',
livemode: false,
metadata: {},
next_pending_invoice_item_invoice: null,
pause_collection: null,
payment_settings: [Object],
pending_invoice_item_interval: null,
pending_setup_intent: null,
pending_update: null,
plan: [Object],
quantity: 1,
schedule: null,
start_date: 1617410065,
status: 'active',
tax_percent: null,
transfer_data: null,
trial_end: null,
trial_start: null
 },

怎么从此访问状态或任何其他参数?

为更清楚起见,我将显示以下内容:

执行此操作时:

 const subscriptions = await stripe.subscriptions.list({
  });

  console.log(subscriptions)

它返回整个大输出(如上所示)。

当我执行此操作时:

 const subscriptions = await stripe.subscriptions.list({
 customer: customerID
  });

  console.log(subscriptions)

它只显示以下内容:

{ object: 'list', data: [], has_more: false, url: '/v1/subscriptions' }

当我尝试记录customerid比较的订阅状态时,我发现状态不是返回数据的一部分。

推荐答案

该错误消息与您所说得到的输出一致。如果列表调用没有返回任何订阅,subscriptions.data[0]将是未定义的,因此没有要获取status的对象。因为您没有使用customer过滤的呼叫会正确返回订阅,所以只要您传入的客户有未取消的订阅(subscriptions.list默认情况下只返回未取消的订阅[1]),与过滤的呼叫就会正常工作。

听起来这可能是因为您正在筛选的特定客户ID造成的。如果您尝试在没有过滤的情况下列出订阅时看到的客户ID之一(如cus_JEQIfxhiRu7qJh),您的代码可以工作吗?对于您在第一个示例中列出的客户,我会在仪表板中仔细检查该客户的页面,看看他们是否有应该由该列表调用返回的未取消订阅。

[1]https://stripe.com/docs/api/subscriptions/list

好了关于检索订阅条带node.js的状态的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。