为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Stripe 支付表不是刚刚发布的

Laravel Stripe 支付表不是刚刚发布的

PHP
紫衣仙女 2021-10-22 14:12:44
我正在使用来自 Stripe 的默认卡片元素,可以在这里找到。表单呈现,验证条包括作品和呈现。但是,我从未stripeToken生成过,因此订阅失败是由于;This customer has no attached payment source当我死了转储我的请求stripeToken是NULL。我认为这是因为条带表单处理程序对我来说根本不起作用,它们包含的事件侦听器永远不会触发。看起来表单只是像普通表单一样发布,而不是条带添加的阻止默认 JS 侦听器。<form action="{{ route('subscriptionCreate') }}" method="post" id="payment-form">  @csrf  <input type="hidden" name="plan" value="{{ $plan->id }}">  <div class="form-row">    <label for="card-element">      Credit or debit card    </label>    <div id="card-element">      <!-- A Stripe Element will be inserted here. -->    </div>    <div id="card-errors" role="alert"></div>  </div>  <button>Submit Payment</button></form>这是我的控制器,正如我提到的,$request->stripeToken它不存在,我认为它永远不会被添加到表单中。public function create(Request $request){    $plan = Plan::findOrFail($request->get('plan'));    $user = $request->user();    $request->user()        ->newSubscription($plan->name, $plan->stripe_plan)        ->create($request->stripeToken,[            'email' => $user->email        ]);    return redirect()->route('home')->with('success', 'Your plan subscribed successfully');}
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

在这对我有用之前,我遇到了同样的问题:


composer require stripe/stripe-php

然后使用您的密钥更新 env 文件


STRIPE_KEY=xxxxxxxxxxxxxxxx

STRIPE_SECRET=xxxxxxxxxxxxxxx

然后用你的控制器


use Stripe;

    public function create(Request $request)

    {

        $plan = Plan::findOrFail($request->get('plan'));

        $user = $request->user();

        $request->user()

        ->newSubscription($plan->name, $plan->stripe_plan);

       // getting the plan cost

        $amount = $plan->plan_amount;


        Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));

        Stripe\Charge::create ([

                "amount" => ($amount * 100),

                "currency" => "usd",

                "source" => $request->stripeToken,

                "description" => "Test payment" 

        ]);

    return redirect()->route('home')->with('success', 'Your plan subscribed successfully');

     }


查看完整回答
反对 回复 2021-10-22
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

默认的 Laravel 安装将包含一个app.js文件。通过简单地删除或注释掉包含在标题中的这个文件,Stripe 可以使用 Stripe Elements 生成令牌。


查看完整回答
反对 回复 2021-10-22
  • 3 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信