1 回答
TA贡献1811条经验 获得超4个赞
我认为这个想法是收集的姓名是持卡人姓名,并且与卡 [0] 相关联,而不是客户。客户最终可能会拥有多张卡或其他付款方式,而且他们可能都有不同的持卡人姓名。因此,默认情况下该信息不会转移到客户。
您的方法总体上看起来不错——我个人会使用 API 的扩展功能 [1],这样您就可以通过从 webhook 处理程序的一次调用中检索结帐会话及其付款和客户的完整上下文来跳过一堆 API 调用。
$session = \Stripe\Checkout\Session::retrieve(
$payload['data']['object']['id'],
["expand" => ["payment_intent", "customer"]]);
$cardholderName = $session['payment_intent']['charges']['data'][0]['billing_details']['name'];
\Stripe\Customer::update($session['customer'].id,
["name" => $cardholderName]);
[0] - https://stripe.com/docs/api/payment_methods/object?lang=php#payment_method_object-billing_details-name
[1] - https://stripe.com/docs/api/expanding_objects?lang=php
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报