Laravel Cashier-$ stripeToken来自哪里?

use*_*492 5 php billing laravel stripe-payments laravel-cashier

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

因此,要创建新的订阅,请执行以下操作:

$user->newSubscription('main', 'premium')->create($stripeToken);
Run Code Online (Sandbox Code Playgroud)

这是用户第一次订阅,那么$stripeToken确切的来源是什么?

在文档中说:

接受Stripe信用卡/来源令牌的create方法将开始订阅,并使用客户ID和其他相关账单信息更新数据库。

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

如果$stripeTokenStripe中的客户ID是,那么Cashier假设我们已经在Stripe中创建了客户,这将是第一次。

谁能对此有所启发?

use*_*492 5

事实证明,stripeTokenstripe.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')
                       )
                   ));
Run Code Online (Sandbox Code Playgroud)

然后我使用$stripeToken->id并传递它:

$user->newSubscription('main', 'premium')->create($stripeToken->id);
Run Code Online (Sandbox Code Playgroud)