首页 > 解决方案 > 从 Stripe 结帐会话中检索帐单地址?

问题描述

我正在像这样在 Node 中创建一个结帐会话。 https://stripe.com/docs/api/checkout/sessions/create

我已将billing_address_collection参数设置为,现在想知道是否可以检索从触发required的 webhook 收集的帐单地址。checkout.completed

我没有找到从结帐会话中检索帐单地址的好方法。

有没有办法做到这一点?还是我应该在将用户发送到结帐会话之前收集这些信息?

标签: node.jsstripe-payments

解决方案


帐单地址可以通过 Checkout 收集。它不会存在于 CheckoutSession 对象上,而是存在于 PaymentMethod 对象上。

当您收到该checkout.session.completed事件时,它有一个payment_intent带有 PaymentIntent 对象 ID 的字段。PaymentIntent 对象又具有您需要的 PaymentMethod。所以你需要从 CheckoutSession -> PaymentIntent -> PaymentMethod 去获取账单明细。

如何做到这一点:在您的 webhook 事件处理程序中,检索 [0] PaymentIntent 和expandPaymentMethod(通过传递expand: ['payment_method'])。

PaymentMethod 在billing_details哈希 [2]下有账单明细

[0] https://stripe.com/docs/api/payment_intents/retrieve

[1] https://stripe.com/docs/api/expanding_objects

[2] https://stripe.com/docs/api/payment_methods/object#payment_method_object-billing_details


推荐阅读