我可以在不向Stripe收费的情况下添加卡详细信息吗?

时间:2019-03-16 10:11:07

标签: laravel stripe-payments laravel-cashier

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

我在后端使用Laravel Cashier。

2 个答案:

答案 0 :(得分: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部分中提供了有关这些方法的更多信息。

答案 1 :(得分:0)

如果像我一样,您正在寻找获得令牌的话:

\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