条纹订阅自动取消

时间:2021-07-09 03:02:49

标签: stripes

我实施了自动取消订阅,但我不确定我所做的实施是否安全,所以我想发表我的疑虑并听取一些关于此的建议。

在我们的场景中,客户需要为带有特殊优惠券的订阅计划付费,这些优惠券会在附加到他们的优惠券在一段时间后结束时自动取消订阅(每个优惠券都有一个唯一的结束日期)。当自动取消优惠券结束时,我想取消附带的订阅。

在我关于实现这一点的整个研究中,我发现了两种处理方法。

  1. 在检测到 customer.discount.deleted 时直接通过网络钩子取消订阅。
  2. 在创建订阅时设置 cancel_at 属性,而不是 cancel_at_period_end,因为每张优惠券都有不同的日期,并且不一定要在当前订阅期结束时取消。可以是一个月、两个月、三个月等等。

以上两种模式,在我看来,第二种解决方案似乎比第一种更安全,因为我认为在 customer.discount.deleted 事件中删除订阅权限可能会影响前面的发票事件,例如 invoice.createdinvoice.payment_succeeded。我观察到总是在创建发票之前调用优惠券删除事件。

例如,在这种情况下,由于订阅状态在 canceled 事件之后变为 customer.discount.deleted,是否有可能之前的发票事件无法发生并且无法通过所有必要的步骤需要完成订阅。给你一个更具体的例子,如果订阅的三个月免费优惠券结束并且需要同时取消,它是否在所有发票事件发生后 100% 取消订阅?预计会出现异常故障?通过对这两种模式的一些实验,两种方式实际上都以预期的方式工作。

我会选择第二个解决方案,但我非常感谢关于第一个解决方案在某些情况下是否会影响订阅周期的任何合乎逻辑的解释。

0 个答案:

没有答案