条纹产品 - 更改计划并未删除旧计划

时间:2018-04-09 10:42:22

标签: stripe-payments stripe.net

我最近切换到最新的条带API,计划已转移到产品中。一切都运转良好,但改变计划也保留了以前没有发生的旧计划。

如果我订阅了用户计划A,那么将计划更改为计划B,而不是为用户显示一个计划,而是显示两个计划。

因此,如果我尝试切换到Plan 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);
    }

1 个答案:

答案 0 :(得分:1)

此处的通话是添加新项目/计划,而不是替换现有项目。

要将一个计划替换为另一个计划,您还需要在Id中传递当前订阅项目的ID以及新计划ID,以便实现此目的。