【问题标题】:Downgrading the Stripe Subscription results in user refund降级 Stripe 订阅会导致用户退款
【发布时间】:2021-08-16 11:11:41
【问题描述】:

我查看了其他解决方案,但它们似乎都不是我的用例。在处理付款后的当月 1 日,我们没有使用 webhook,而是使用 Cron 作业。

我的服务每月提供 X 小时。

当用户订阅时,他们会获得 X 小时。 当用户升级时,他们立即获得两者之间的 X 小时差异,仅在升级时。这很好用,总和是正确的。

我的问题是,当用户降级条带在下一张发票上发出退款时,不正确。

这是一个不正确的示例,显然用户在下一个计费周期无需支付任何费用,这没有任何意义;他们应该支付降级的费用。

代码如下:

如果是升级:

subscription = await stripe.subscriptions.update(existingSub.id, {
    cancel_at_period_end: false,
    proration_behavior: "always_invoice",
    default_tax_rates: [taxRate.id],
    items: [
        {
            // We need to upgrade the existing item.
            id: existingSub.items.data[0].id,
            price: price.id,
            quantity: 1,
        },
    ],
});

如果是新的子

await stripe.subscriptions.create({
    customer: req.user.stripeCustomerId,
    items: [
        {
            price: price.id,
        },
    ],
    billing_cycle_anchor: endOfMonth.unix(),
    default_tax_rates: [taxRate.id],
    metadata: {
        productId,
        paymentMethodId,
        amount,
        userUid: req.user.uid,
    },
    default_payment_method: paymentMethodId,
});

我不确定如何降级。

【问题讨论】:

    标签: node.js stripe-payments


    【解决方案1】:

    在上述场景中,用户已经预先支付了订阅费用。当您降级订阅时,订阅之间的差额按比例计入客户信用余额 [0] 并应用于下一张发票。

    如果您不希望在降级时按比例分配差额(可能您的公司有无退款政策),那么您应该在降级时申请proration_behavior='none' [1]

    您可以在此处阅读有关升级/降级订阅的更多信息:https://stripe.com/docs/billing/subscriptions/upgrade-downgrade

    [0]https://stripe.com/docs/billing/customer/balance#examples
    [1]https://stripe.com/docs/api/subscriptions/update#update_subscription-proration_behavior

    【讨论】:

    • 是的,我理解,但 proration_behavior='none' 的问题是升级时新订阅不收费。升级时它也会使用令人讨厌的信用。好像不取消订阅是不可能的。
    • 如果您希望客户在同一计费周期内切换到更昂贵的订阅时立即支付差价,您可以设置proration_behavior=always_invoice [0],它将计算按比例分配,然后立即切换后生成发票。您可以将此行为与挂起的更新结合起来,以便仅在新发票上的付款成功时更新订阅。 [0] stripe.com/docs/api/subscriptions/…
    • 这里的复杂之处在于您必须实现一些逻辑来确定它是否是升级/降级。您可能希望通过 previewing the upcoming invoice 更新 subscription_items.price 来执行此操作
    猜你喜欢
    • 2015-09-03
    • 2014-09-07
    • 2021-04-30
    • 2021-01-11
    • 2022-11-29
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多