Stripe payments 如何在客户提交付款后扩展订阅

Stripe payments 如何在客户提交付款后扩展订阅,stripe-payments,Stripe Payments,当我将具有现有订阅的用户引导到Stripe付款页面时,Stripe会在客户提交付款时自动创建新订阅 什么样的工作流允许我告诉Stripe我想要扩展现有订阅,而不是创建新订阅 我向Stripe support提出了这个问题,我得到的答案是: 为了回答您的问题,如果您使用第三方平台创建此选项,这将取决于您的集成,但对于Stripe,这只能使用我们提供的参考手动完成,这意味着您必须扩展订阅,而无需客户先付款 关于第三方平台,我不明白为什么API对他们和我的工作方式不同。这是否意味着Stripe有一个秘

当我将具有现有订阅的用户引导到Stripe付款页面时,Stripe会在客户提交付款时自动创建新订阅

什么样的工作流允许我告诉Stripe我想要扩展现有订阅,而不是创建新订阅

我向Stripe support提出了这个问题,我得到的答案是:

为了回答您的问题,如果您使用第三方平台创建此选项,这将取决于您的集成,但对于Stripe,这只能使用我们提供的参考手动完成,这意味着您必须扩展订阅,而无需客户先付款

关于第三方平台,我不明白为什么API对他们和我的工作方式不同。这是否意味着Stripe有一个秘密API,我必须购买第三方产品才能有效使用该服务

这意味着您必须在不要求客户先付款的情况下延长订阅

这是让我悲伤的部分。这似乎是一个异常困难的工作流程。我应该在什么时候扩展订阅?如果客户从不付款怎么办?是什么促使我取消扩展它?我如何向客户可靠地报告其订阅结束的日期?扩展订阅似乎是一项基本的、平凡的任务。真的会这么难吗

编辑按请求发布的代码:

SessionCreateOptions options = new SessionCreateOptions
{
    PaymentMethodTypes = new List<string> { "card" },
    LineItems = new List<SessionLineItemOptions>
    {
        new SessionLineItemOptions { Price = order.PaymentProviderPlanID, Quantity = 1 }
    },
    Customer = order.CustomerID,
    CustomerEmail = string.IsNullOrEmpty(order.CustomerID)? order.UserEmail : null,
    Mode = "subscription",
    SuccessUrl = hostURL + "/Subscription/CreateSubscription?session_id={CHECKOUT_SESSION_ID}",    
    CancelUrl = hostURL + "/SubActivationFailure",                                                  
};
SessionCreateOptions=newsessioncreateoptions
{
PaymentMethodTypes=新列表{“卡”},
LineItems=新列表
{
新的SessionLineItemOptions{Price=order.PaymentProviderPlanID,Quantity=1}
},
Customer=order.CustomerID,
CustomerEmail=string.IsNullOrEmpty(order.CustomerID)?order.UserEmail:null,
Mode=“订阅”,
SuccessUrl=hostURL+“/Subscription/CreateSubscription?会话\u id={CHECKOUT\u会话\u id}”,
CancelUrl=hostURL+“/SubActivationFailure”,
};

根据评论中对问题的澄清,什么都不做,这将自动发生。这是默认设置,除非您明确将订阅设置为取消或发票不自动付款。

您能解释一下“扩展订阅”的含义吗?它是设定在某个日期取消,还是已经取消了?@NolanH,我的意思是续约。是,如果客户不续订,则在订阅期结束时将设置为取消。我想它可能会过期或取消。很可能它仍然处于活动状态,但即将到期。我怀疑需要更多的信息来理解这里的工作流程,您可能没有意识到它的重要性。除非您另行指定,否则订阅将无限期继续。例如,如果已将订阅设置为在时段结束时取消,则可以通过向订阅更新端点发送
cancel\u at\u period\u end=false来撤消该订阅。您无需使用第三方服务来完成此任务,但如果您共享创建这些订阅并将其设置为取消的详细信息,则会有所帮助。我不会手动创建订阅。Stripe会在客户付款时这样做,而我不会碰它。我可以在门户中查看,并看到根据定价项目的计费周期正确设置了当前期间结束日期。有关代码,请参阅更新的问题。