亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 Stripe Checkout 不將客戶名稱添加到客戶記錄中?

為什么 Stripe Checkout 不將客戶名稱添加到客戶記錄中?

PHP
開心每一天1111 2022-01-02 15:32:11
我正在嘗試從 Stripe Checkout 表單提交中檢索各種數據,我只是使用 Stripe Dashboard 中提供的 Stripe Checkout 代碼。在我的checkout_submission_completed活動中,我有 webhook,我試圖在其中檢索email,name以便在成功購買后我可以采取其他行動。這是令人驚訝的困難。這是我如何檢索電子郵件(payload我的 webhook 收到的響應在哪里): $cust = $payload['data']['object']['customer']; $custdata = \Stripe\Customer::retrieve($cust); $email=$custdata->email;好吧,沒什么大不了的。名字呢?好吧,這就是事情變得非常有趣的地方。點擊表單付款提交按鈕后,Stripe 會創建一個客戶,并成功完成收費。但是在 Customer 對象中沒有名稱。是的,沒有名字。在今天與 Stripe 的聊天中,他們沒有做出任何解釋,并表示他們會進一步調查。結果表明,表單上輸入的名稱出現在 Stripe 對象中的唯一地方是 Payment Intent 對象中的 Payment Details 對象。我是認真的。所以這是我獲取名稱的方式(使用cust以前的代碼:   $piid = $cust = $payload['data']['object']['payment_intent'];   $pi = \Stripe\PaymentIntent::retrieve($piid);   $name = $pi['charges']['data'][0]['billing_details']['name'];有沒有更好的方法讓我做到這一點?
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

我認為這個想法是收集的姓名是持卡人姓名,并且與卡 [0] 相關聯,而不是客戶??蛻糇罱K可能會擁有多張卡或其他付款方式,而且他們可能都有不同的持卡人姓名。因此,默認情況下該信息不會轉移到客戶。


您的方法總體上看起來不錯——我個人會使用 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


查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號