立即为订阅升级收费,但不为降级收费或退款

时间:2020-02-14 13:00:18

标签: python stripe-payments

在我的订阅服务中,帐单日期始终在每月的第一天。有两个计划-每月10美元的计划和每月20美元的计划。

当用户从每月10美元的费用升级到每月20美元的费用时,我想立即向用户按比例分配每月20美元的费用,并退还每月10美元的费用。即amount_charged_immediately = [(days_left_in_month / days_in_month) * 20] - [(days_left_in_month / days_in_month) * 10]

相反,当用户从每月20美元降级到每月10美元时,降级无需付费,也无需退款。

如何实现这种订阅更改?

我尝试了下面的代码,它似乎可以工作。但是我不确定这是否正确,或者是否有更好的方法来实现这一点。

if user_is_upgrading():
    stripe.Subscription.modify(
        subscription_id,
        cancel_at_period_end=False,
        billing_cycle_anchor='unchanged',
        items=[{
            'id': item_id,
            'plan': plan_id,
        }],
        proration_behavior='always_invoice',  # <- ATTENTION.
    )
elif user_is_downgrading():
    stripe.Subscription.modify(
        subscription_id,
        cancel_at_period_end=False,
        billing_cycle_anchor='unchanged',
        items=[{
            'id': item_id,
            'plan': plan_id,
        }],
        proration_behavior='none',  # <- ATTENTION.
    )

0 个答案:

没有答案
相关问题