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 发送的事件:
customer.created
charge.succeeded
payment_intent.succeeded
checkout.session.completed
其中 none 包括 price
有关用户已支付的产品的信息
可能我可以在 fetch
操作中向 stripe 询问该信息,但是......不可能没有任何包含此基本(?)信息的 webhook
还是我理解有误?
编辑:
可能答案是this one,因此webhook (checkout.session.completed
)默认不包含此信息,确实必须在第二步中检索
正如@ttmarek 所说,答案在这里 https://stripe.com/docs/expand#includable-properties 表明如果使用 single payment
则必须检索此信息
如果使用 subscription
此信息默认包含,无需启动另一个请求
避免此额外请求的替代方法是使用 amount
收费(大多数 webhook 附带),前提是您可以根据此金额确定您的价格
我在 Stripe 中有 1 个产品有 2 个价格
- 第一个价格是定期订阅
- 第二个价格是一次性付款
我都使用 redirectToCheckout
处理,第一个用 mode: subscription
,第二个用 mode: payment
,并且都在 lineItems
中指示各自的价格代码
然后,当 Stripe 完成付款后,我将 webhook 发送到我的 php 后端
对于第一项,我得到了事件类型 customer.subscription.created
,并且在该 webhook 中发送的信息 包括 价格代码
我需要此价格代码以确保用户已完成该特定 price
商品的付款
问题出在第 2 个项目上,我已经能够识别出 4 个在付款后通过 webhooks 发送的事件:
customer.created
charge.succeeded
payment_intent.succeeded
checkout.session.completed
其中 none 包括 price
有关用户已支付的产品的信息
可能我可以在 fetch
操作中向 stripe 询问该信息,但是......不可能没有任何包含此基本(?)信息的 webhook
还是我理解有误?
编辑:
可能答案是this one,因此webhook (checkout.session.completed
)默认不包含此信息,确实必须在第二步中检索
正如@ttmarek 所说,答案在这里 https://stripe.com/docs/expand#includable-properties 表明如果使用 single payment
如果使用 subscription
此信息默认包含,无需启动另一个请求
避免此额外请求的替代方法是使用 amount
收费(大多数 webhook 附带),前提是您可以根据此金额确定您的价格