【问题标题】:Stripe: charge full amount to Customer even if CancelAt field is setStripe:即使设置了 CancelAt 字段,也会向客户收取全额费用
【发布时间】:2020-09-07 14:45:05
【问题描述】:

这是我要解决的用例:

创建从 5 月 20 日开始的 1000 美元的新月订阅,并将 CancelAt 字段设置为 6 月 29 日。

预期行为:

  1. 5 月 20 日,Stripe 向客户收取 1000 美元
  2. 6 月 20 日,Stripe 向客户收取 1000 美元
  3. Stripe 会在 6 月 29 日自动取消订阅,无需其他发票
  4. 收取的总金额:2000 美元

我尝试了什么:

  1. 使用 6 月 20 日的 CancelAt 和 ProrateBehavior=None 创建订阅

实际条纹行为:

  1. 5 月 20 日,Stripe 向客户收取了 1000 美元(正确)
  2. 我在 Stripe 仪表板中看到一张即将在 6 月 21 日至 6 月 29 日期间 317.97 美元的发票(不正确)
  3. 我在 Stripe 仪表板中看到订阅设置为在​​ 6 月 29 日取消(正确)
  4. 将收取的总金额:1317.97 美元(不正确)

我似乎无法弄清楚什么样的字段组合会使 stripe 像我描述的那样表现。将 Prorate 行为设置为 None 是否应该告诉 Stripe 永远不要低于全额收费?除非我遗漏了什么,否则这似乎是一个常见的用例?

感谢您的帮助!

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    Stripe 订阅是预付费的,因此您 5 月 20 日的发票实际上涵盖了 5 月 20 日至 6 月 20 日,所以这实际上是有道理的。

    cancel_at specifically says:

    订阅应取消的时间戳。如果设置为日期 在当前期间结束之前,这将导致按比例分配,如果 已使用 proration_behavior 启用了按比例分配。 如果在 未来时期,这将始终导致该时期的按比例分配。(强调我的)

    您要么只想在 6 月通过 API 和 proration_behavior:none 取消订阅 - 可能使用元数据来记录“何时取消日期”和 webhook 来检查订阅是否需要取消期间 - 或可能使用订阅时间表:https://stripe.com/docs/billing/subscriptions/subscription-schedules

    【讨论】:

    • 感谢您的回答。你是对的,文档说明了我所看到的行为。我想避免在 webhook 中取消订阅,使用订阅计划有什么帮助?
    • 您将建立一个具有正确迭代次数的计划,然后将end_behavior 设置为cancelstripe.com/docs/billing/subscriptions/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 2016-10-15
    • 2017-06-17
    • 2014-10-31
    • 2020-12-13
    • 2019-12-17
    相关资源
    最近更新 更多