【问题标题】:How can I know if a Stripe trial subscription has ended without a webhook?我如何知道 Stripe 试用订阅是否在没有 webhook 的情况下结束?
【发布时间】:2021-05-27 13:54:16
【问题描述】:

我正在创建一个 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 门户。我知道有一个我可以收听的 webhook到,但我宁愿不要在审判结束的确切时刻担心它。相反,我想在客户下次登录时处理它。

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    您希望以payment_behavior'default_incomplete' 开始订阅:https://stripe.com/docs/api/subscriptions/create#create_subscription-payment_behavior

    这样,试用期结束后订阅状态将变为incomplete,只有在支付第一张发票后才会转换为active

    【讨论】:

    • 我也试过了:``` await stripe.subscriptions.create({ customer: stripeCustomer.id, items: [{ price: process.env['STRIPE_PRICE_ID'] }], payment_behavior: ' default_incomplete', trial_period_days: 7 }) ``` 但是当试用结束时,它会转换为active
    • 您是否在创建订阅后但在试用期结束之前附加了 PaymentMethod?订阅应处于incomplete 状态大约一小时,同时发票已创建和完成,然后自动付款并转换为active。如果这不是您所看到的,您应该联系 Stripe 支持,以便他们进一步调查:support.stripe.com/contact
    猜你喜欢
    • 2013-04-12
    • 2013-10-24
    • 2015-01-15
    • 1970-01-01
    • 2021-02-16
    • 2023-03-19
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    相关资源
    最近更新 更多