在没有 webhook 的情况下,我如何知道 Stripe 试用订阅是否已结束?
How can I know if a Stripe trial subscription has ended without a webhook?
我正在创建一个 Stripe 客户和一个具有 7 天试用期的订阅:
const stripeCustomer = await stripe.customers.create({
email: req.body.email
});
await stripe.subscriptions.create({
customer: stripeCustomer.id,
items: [{
price: process.env['STRIPE_PRICE_ID']
}],
trial_period_days: 7
})
当我查看状态时,它显示为 trialing
。试用结束后,如果我检索订阅,它会给出 active
的状态。但这并不准确,因为客户尚未支付订阅费用。
我想要的是一个状态,告诉我试用已经结束但客户尚未付款,这样我就可以在客户登录时将其引导至 Stripe 门户。我知道有一个网络钩子我可以听,但我不想在试验结束的那一刻担心它。相反,我想在客户下次登录时处理它。
您希望以 payment_behavior
的 'default_incomplete'
开始订阅:https://stripe.com/docs/api/subscriptions/create#create_subscription-payment_behavior
这样订阅的状态将在试用结束后变为 incomplete
,只有在支付了第一张发票后才会过渡到 active
。
我正在创建一个 Stripe 客户和一个具有 7 天试用期的订阅:
const stripeCustomer = await stripe.customers.create({
email: req.body.email
});
await stripe.subscriptions.create({
customer: stripeCustomer.id,
items: [{
price: process.env['STRIPE_PRICE_ID']
}],
trial_period_days: 7
})
当我查看状态时,它显示为 trialing
。试用结束后,如果我检索订阅,它会给出 active
的状态。但这并不准确,因为客户尚未支付订阅费用。
我想要的是一个状态,告诉我试用已经结束但客户尚未付款,这样我就可以在客户登录时将其引导至 Stripe 门户。我知道有一个网络钩子我可以听,但我不想在试验结束的那一刻担心它。相反,我想在客户下次登录时处理它。
您希望以 payment_behavior
的 'default_incomplete'
开始订阅:https://stripe.com/docs/api/subscriptions/create#create_subscription-payment_behavior
这样订阅的状态将在试用结束后变为 incomplete
,只有在支付了第一张发票后才会过渡到 active
。