【发布时间】:2020-12-08 05:23:37
【问题描述】:
我很难在 Stripe 中找到合适的 webhook 来使用,因为它似乎在多种情况下都会被解雇。
因此,我的网站出售了一些商品(例如 10 件),可以作为单次购买或订阅购买(您每 X 天获得一次商品,没有 SASS jut 产品)。我正在使用 Stripe 的 Checkout 和 Portal 来处理所有订阅和单次购买,这些部分效果很好。人们将东西添加到购物车,结帐,付款,我们都很好。问题是从 webhook 向我们的系统添加订单。
看看这个场景:一个人将 2 个单品和 1 个订阅添加到他们的购物车。他们结账并付款。发生这种情况时,我们让checkout.session.completed 赶上结帐会话已完成,我们将这些商品从他们的购物车添加到订单中。在“X”天后重新订阅,我们将监听 invoice.payment_succeeded webhook 以在我们的系统中创建新订单。这个逻辑是有缺陷的,因为invoice.payment_succeeded 在第一个订单上也被调用,所以基本上当他们结帐时,我们的系统会添加 2 个订阅订单:一个来自 checkout.session.completed,一个来自 invoice.payment_succeeded。我们该如何处理?
我想要的是:
1 个 webhook 用于了解结帐何时完成,然后才被调用,他们这样做:checkout.session.completed
1 个仅在续订订阅时调用的 webhook,在创建时也不会调用,我找不到。
如果他们没有仅用于订阅续订的 webhook,我如何在“发票”对象中判断是第一个,所以我在结帐时不做任何事情,只在续订时创建新订单?
【问题讨论】:
标签: stripe-payments