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中创建了客户,这将是第一次。
谁能对此有所启发?
事实证明,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)