Stripe webhooks,当支付的产品不是订阅而是一次性付款时,我如何接收PRICE项?



我有1个产品在Stripe有2个价格

  • 第一个价格是定期订阅
  • 第二次价格为一次性付款

我用redirectToCheckout处理,第一个用mode: subscription处理,第二个用mode: payment处理,并且在lineItems中分别表示各自的价格代码

然后,当支付完成时,我得到webhooks发送到我的php后端

对于第一项,我获得事件类型customer.subscription.created,并且在该webhook中发送的信息包括价格代码

我需要这个价格代码来确保用户已经完成了对特定price商品的支付

问题在于第二项,我已经能够识别与webhooks发送的4个事件付款后:

  • customer.created
  • charge.succeeded
  • payment_intent.succeeded
  • checkout.session.completed

没有一个包含price信息关于用户购买了什么产品

也许我可以在fetch操作中要求stripe提供该信息,但是…不可能没有任何webhook包含这些基本(?)信息

也许我理解错了?

编辑:

可能答案是这个,所以webhook (checkout.session.completed)默认情况下不包括这个信息,它确实必须在第二步中检索

正如@ttmarek所说,答案在这里https://stripe.com/docs/expand#includable-properties表明如果使用single payment

必须检索此信息如果使用subscription,则默认包含此信息,无需启动另一个请求

避免这个额外请求的另一种方法是使用amount收费(大多数webhook都有),前提是你可以从这个金额中确定你的价格

最新更新