Stripe 产品 - 更改计划并不是删除旧计划

Stripe Products - Changing plan is not removing the old plan

我最近切换到最新的条带 API,其中计划已转移到产品中。一切正常,但更改计划也保留了以前没有发生的旧计划。

如果我为用户订阅计划 A,然后将计划更改为计划 B,现在不再为用户显示一个计划,而是显示两个计划。

所以如果我尝试切换到计划 A,它会抛出一个错误:

Stripe.StripeException: Cannot add multiple subscription items with the same plan:

以下是我的代码,在升级前运行良好:

public async Task SetPlan(string subscriptionId, string plan)
    {
        var subscriptionService = new StripeSubscriptionService();
        var items = new List<StripeSubscriptionItemUpdateOption>()
        {
            new StripeSubscriptionItemUpdateOption() { PlanId = plan }
        };
        var subscriptionOptions = new StripeSubscriptionUpdateOptions()
        {
            CancelAtPeriodEnd = false,
            Prorate = true,
            Items = items
        };
        await subscriptionService.UpdateAsync(subscriptionId, subscriptionOptions);
    }

您的要求是添加一个新的item/plan,而不是替换现有的。

要用一个计划替换另一个计划,您还需要在 Id 中传递当前订阅项目的 ID 以及新的计划 ID 才能生效。