为什么在 Stripe Billing Portal 中未触发期末计划降级?

问题描述 投票:0回答:1

我正在使用 Stripe API 来配置计费门户并允许按计划降级进行订阅更新。但是,当我尝试选择间隔较短的较低级别计划时,即使我相信我的配置是正确的,降级也不会计划在期末发生。

根据 2024 年 10 月的 Stripe 文档

“您现在可以配置客户门户,以便在计费周期结束时而不是立即进行订阅降级。”

我确保我的 Stripe SDK 也更新到最新版本。

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
    apiVersion: '2024-12-18.acacia'
});

const configuration = await stripe.billingPortal.configurations.create({
    features: {
        payment_method_update: { enabled: true },
        subscription_cancel: { enabled: true, mode: 'at_period_end' },
        subscription_update: {
            enabled: true,
            proration_behavior: 'none',
            default_allowed_updates: ['price'],
            products: subscriptionUpdateProducts,
            schedule_at_period_end: {
                conditions: [
                    { type: 'shortening_interval' } // Schedule downgrades at period end (Not working)
                ]
            }
        },
        invoice_history: { enabled: true }
    },
    business_profile: {
        headline: 'Manage your subscription'
    }
});

const session = await stripe.billingPortal.sessions.create({
    customer: customerId,
    configuration: configuration.id,
    return_url: `${process.env.FRONTEND_URL}/app/price/price1`
});

选择当前订阅 Current Subscription

新订阅更新为,显然间隔缩短了,因为它是按月订阅,但仍试图立即向我收费 New subscription

javascript node.js typescript stripe-payments
1个回答
0
投票

问题是我有三个单独的订阅产品(例如一个月、三个月和一年),并且用户在它们之间切换。但是,为了让计费门户正确处理订阅更新,订阅需要成为具有多个定价层的单个产品的一部分。

正确的方法是拥有一个与所有定价级别(例如一个月、三个月、一年)相关联的订阅产品。应允许用户更改同一产品的价格。如果用户更改为不同的产品,计费门户将立即处理更改,而不是应用正确的“周期结束时安排”行为。

© www.soinside.com 2019 - 2024. All rights reserved.