条带签出:在创建会话对象时传递元数据,并在 checkout.session.complete 事件中接收元数据



我正在网站上实现 Stripe checkout,我想在 checkout.session.complete 上传递一些特定数据。 这是我尝试过的:

'mode' => 'payment',
'payment_intent_data' => [
'metadata' => [
'eventId' => $eventId,
],
],

但是我的网络钩子中没有收到这些数据。我做错了什么?

payment_intent_data被添加到生成的PaymentIntent对象,而不是CheckoutSession对象。它不会出现在发送给您的checkout.session.completeWebhook 数据中。

(PaymentIntent的 ID 将是,所以如果你愿意,你可以请求该对象的数据作为你的 webhook 处理的一部分。您还可以收集payment_intent.createdwebhook 类型,但您必须在事后将其与会话相关联。

这里更简单的方法可能是在结帐会话上设置client_reference_id。此 ID通过 webhook 传回,可以是您喜欢的任何任意字符串 - 它可以是会话或缓存键,可让您查找要查找的元数据。

最新更新