【问题标题】:Can I add Card Details without charging the customer with Stripe?我可以在不向客户收取 Stripe 费用的情况下添加卡详细信息吗?
【发布时间】:2019-03-16 10:11:07
【问题描述】:

我需要我的客户添加他们的信用卡信息,但我不想立即向他们收费。有什么办法,我可以在使用 Stripes 结帐解决方案时添加他们的详细信息以便稍后收费,然后先存储他们的卡令牌?

我在后端使用 Laravel Cashier。

【问题讨论】:

    标签: laravel stripe-payments laravel-cashier


    【解决方案1】:

    您应该首先创建一个 Stripe 卡令牌。您有两种选择:

    • 在客户端(推荐)使用 Stripe.js 和 Elements,您首先创建一个卡片元素 (The Elements object),然后创建一个 Stripe 卡片令牌 (stripe.createToken())
    • 在服务器端 (Create a card token)。最简单的方法是使用composer require stripe/stripe-php 安装官方Stripe PHP 库,然后使用以下代码:
    \Stripe\Stripe::setApiKey("{your_stripe_api_key}");
    
    \Stripe\Token::create([
      "card" => [
        "number" => "{card_number}",
        "exp_month" => {card_expiration_month},
        "exp_year" => {card_expiration_year},
        "cvc" => "{card_security_code}"
      ]
    ]);
    

    获得该令牌后,您可以使用 Laravel Cashier 将 Stripe 卡令牌存储在数据库中,并使用以下方法更新 Stripe 中的卡信息:

    $user->updateCard($token);
    $user->updateCardFromStripe();
    

    有关这些方法的更多信息,请参阅 Laravel Cashier 文档的 Updating Credit Cards 部分。

    【讨论】:

    【解决方案2】:

    如果你和我一样,正在寻找获得令牌:

    \Stripe\Stripe::setApiKey("{your_stripe_api_key}");
    
    $token = \Stripe\Token::create([
      "card" => [
        "number" => "{card_number}",
        "exp_month" => {card_expiration_month},
        "exp_year" => {card_expiration_year},
        "cvc" => "{card_security_code}"
      ]
    ]);
    
    $user->updateCard($token->id);
    $user->updateCardFromStripe();
    

    感谢@louisfischer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2018-06-18
      • 2017-02-08
      • 2018-05-21
      • 2016-05-03
      相关资源
      最近更新 更多