Stripe:向已创建的客户添加新卡

问题描述 投票:0回答:2

我已经添加了一个 Stripe 客户,我正在考虑向客户添加新卡。我四处搜寻,但找不到任何可以确认的内容来回答我的以下问题。

  1. 条纹有自己的形式来添加新卡吗?
  2. 以下是添加新卡的正确方法吗?

    $customer = \Stripe\Customer::retrieve(Auth::user()->stripe_key);
    // Got the customer details successfully from the above call.  
    $card = $customer->cards->create(
      array( 
        "card" => 
          array( 
            "number"=> "4242424242424242", 
            "exp_month" => "12", 
            "exp_year" => "2016", 
            "cvc" => "123" 
          )
       )
    );
    
php laravel stripe-payments stripe.js
2个回答
2
投票

Stripe 没有专门用于向客户添加新卡的直接表单,但是您可以使用 Checkout 或 Elements 来收集客户的卡详细信息。

向客户添加新卡的流程如下:

  1. 使用 Checkout 或 Elements[0] 收集并标记客户的银行卡详细信息。这将为您提供代表该卡的 Stripe 令牌。
  2. 将此令牌发送到您的后端,您可以在其中使用类似于以下代码的内容将卡保存给客户:
$token = $_POST['stripeToken']; #for example
$customer = \Stripe\Customer::retrieve(Auth::user()->stripe_key);
$customer->sources->create(array("source" => $token));

[0] - https://stripe.com/docs/checkouthttps://stripe.com/docs/stripe-js/elements/quickstart

[1] - https://stripe.com/docs/api/php#create_card


0
投票

@karllekko 的答案现在似乎已经过时了。我发现以下目前似乎效果很好。

$email = $_POST['email'];
$customers = \Stripe\Customer::all(['email' => $email]);
$customer = $customers->data[0];    
$token = $_POST['stripeToken'];
$newCard = \Stripe\Customer::createSource($customer->id, ['source' => $token]);

https://docs.stripe.com/api/cards/create

© www.soinside.com 2019 - 2024. All rights reserved.