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

Stripe webhooks, how can I receive the PRICE item when the product paid for is not a subscription but a one-time payment?

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

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

然后,当 Stripe 完成付款后,我将 webhook 发送到我的 php 后端

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

我需要此价格代码以确保用户已完成该特定 price 商品的付款

问题出在第 2 个项目上,我已经能够识别出 4 个在付款后通过 webhooks 发送的事件:

其中 none 包括 price 有关用户已支付的产品的信息

可能我可以在 fetch 操作中向 stripe 询问该信息,但是......不可能没有任何包含此基本(?)信息的 webhook

还是我理解有误?

编辑:

可能答案是this one,因此webhook (checkout.session.completed)默认不包含此信息,确实必须在第二步中检索

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

则必须检索此信息

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

避免此额外请求的替代方法是使用 amount 收费(大多数 webhook 附带),前提是您可以根据此金额确定您的价格