【问题标题】:Laravel Cashier - where does $stripeToken come from?Laravel Cashier - $stripeToken 来自哪里?
【发布时间】:2018-11-22 23:02:07
【问题描述】:

Laravel Cashier 上的 documentation 非常模糊,并且遗漏了一些非常重要的细节,例如 $stripeToken 是什么以及它来自哪里?

所以要创建一个新订阅,我们这样做:

$user->newSubscription('main', 'premium')->create($stripeToken);

这是用户第一次订阅,那么$stripeToken 究竟来自哪里?

在文档中它说:

create 方法,它接受 Stripe 信用卡/源令牌, 将开始订阅并使用 客户 ID 和其他相关帐单信息。

这是否意味着我必须先在 Stripe 中手动创建客户对象,然后将客户 ID 作为 $stripeToken 传递?它提到了卡的详细信息,但我如何通过它们?格式是什么?我期望得到什么回报?

如果$stripeToken 是 Stripe 中的客户 ID,那么 Cashier 会假设我们已经在 Stripe 中创建了客户,但我们不会第一次这样做。

有人能解释一下吗?

【问题讨论】:

  • 如果你使用Stripe Checkout JS,它会自动在表单中添加一个隐藏的输入stripeToken
  • @thefallen 如果您不使用 Stripe JS 怎么办?假设您正在制作基本的 REST API 驱动的结帐表单?

标签: php laravel stripe-payments billing laravel-cashier


【解决方案1】:

原来stripeToken通常是stripe.js表单提交时生成的。

由于我使用的是 API 驱动的结帐表单而不是标准的 html 提交表单,因此我需要使用 Stripe API 根据提供的卡详细信息创建令牌。

$stripeToken = Token::create(array(
                       "card" => array(
                           "number"    => $request->get('number'),
                           "exp_month" => str_before($request->get('expiry'), '/'),
                           "exp_year"  => str_after($request->get('expiry'), '/'),
                           "cvc"       => $request->get('cvc'),
                           "name"      => $request->get('name')
                       )
                   ));

然后我使用$stripeToken->id 并通过它:

$user->newSubscription('main', 'premium')->create($stripeToken->id);

【讨论】:

  • 从哪里获得这个令牌 (Token::create())
  • 我正在使用 Braintree,但我无法为 Braintree 找到此解决方案。关于 Braintree 的 $token 没有太多信息。谁能解释一下这个问题
  • @YasirIjaz 令牌来自 Stripe API 命名空间
【解决方案2】:

您可以使用Stripe JS 获取stripeToken,但如果您使用的是自定义表单,则可以使用Stripe checkout 方法。

使用这两种方式,您将在 javascript 中获取 stripeToken,然后您必须将此令牌传递给您的 REST API 以进行进一步处理。

【讨论】:

  • 不,我没有使用 Stripe JS。我正在使用 API 驱动的结帐,因此它不是可以使用 JS 的标准结帐表单。 JS 库在这种情况下是多余的,可能会添加更多不需要的资源。有关 API 驱动表单的更合适的解决方案,请参阅我的答案。
猜你喜欢
  • 2010-09-21
  • 2014-04-24
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多