Stripe-Api:如何从客户对象获取“ PaymentMethod”(ID)?

时间:2019-08-20 13:41:20

标签: php stripe-payments

在进行强客户身份验证(SCA)之前,我可以使用$customer->sources['data']从客户对象中获取源集合

现在,我正在尝试迁移到SCA,但无法弄清楚如何通过客户对象获取“ paymentMethod”而不将其保存到数据库中。

以下是文档:https://stripe.com/docs/payments/cards/saving-cards#save-payment-method-without-payment

但是为了简短起见,我这样保存“ paymentMethod”:

// This creates a new Customer and attaches the PaymentMethod in one API call.
\Stripe\Customer::create([
  'payment_method' => $intent->payment_method,
]);

但是,客户对象不能公开访问Payment-Method-ID。

是否有可能以某种方式获得它?

1 个答案:

答案 0 :(得分:1)

PaymentMethods不会嵌入到Customer对象本身,也不会出现在$customer->sources中。相反,您可以例如使用API​​ [0]列出它们,或直接检索给定的ID(您也可以将其与客户ID以及用户信息一起保存在数据库中)。

$customer = \Stripe\Customer::create([
  'payment_method' => $intent->payment_method,
]);

$cards = \Stripe\PaymentMethod::all([
  "customer" => $customer->id, "type" => "card"
]);

/*
OR
*/

$card = \Stripe\PaymentMethod::retrieve($intent->payment_method);

[0]-https://stripe.com/docs/api/payment_methods/list