首页 文章

Laravel Cashier - $ stripeToken来自哪里?

提问于
浏览
5

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

因此,要创建新订阅,我们这样做:

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

这是用户第一次订阅,所以 $stripeToken 来自哪里?

在文档中它说:

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

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

如果 $stripeToken 是Stripe中的客户ID,则Cashier假设我们已经在Stripe中创建了客户,而我们第一次没有这样做 .

任何人都可以对此有所了解吗?

2 回答

  • 3

    事实证明 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);
    
  • 0

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

    使用两种方式在javascript中获取stripeToken,然后必须将此标记传递给REST API以进行进一步处理 .

相关问题