[英]retrieve status of subscription stripe node.js
我有这个:
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 检索 subcsription 的status
。 这不起作用。 它说 2 件事。
它只是输出:
{ 对象:'列表',数据:[],has_more:假,网址:'/v1/subscriptions'}
(node:30746) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'status' of undefined
我知道这是错误的,因为当我像这样记录它时:
console.log(subscriptions)
它返回 30 多行订阅者数据,包括活动状态。 像这样:
{
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
的订阅状态时,我得到它说状态不是返回数据的一部分。
因此,如果您发布的输出是从条带 API 获得的所有输出,那么访问状态字段的正确方法就是使用
console.log(subscriptions[0].status);
该错误消息与您所说的输出一致。 如果列表调用不返回任何订阅,则subscriptions.data[0]
将是未定义的,因此没有要获取status
的对象。 因为您没有使用customer
过滤器的调用正确返回订阅,所以只要您传入的客户具有尚未取消的订阅(默认情况下, subscriptions.list
仅返回未取消的subscriptions.list
[1]),带有过滤器的调用应该可以工作。
听起来这可能是因为您正在过滤的特定客户 ID。 如果您尝试在没有过滤器的情况下列出订阅时看到的客户 ID 之一(例如cus_JEQIfxhiRu7qJh
),您的代码是否有效? 对于您在第一个示例中列出的客户,我会在您的仪表板中仔细检查该客户的页面,以查看他们是否有应由该列表调用返回的未取消订阅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.