我正在使用来自 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');
}
天涯尽头无女友
红糖糍粑