我正在尝试显示Stripe付款元素,但未显示。
使用dd()
语句,我可以知道用户PaymentMethods
为空(如新用户所期望的那样),并且Intent
不为空。
show()
方法:
public function show(Plan $plan, Request $request)
{
$user = $request->user();
$user->createOrGetStripeCustomer();
$paymentMethods = $user->paymentMethods();
$intent = $user->createSetupIntent();
return view('plans.show', compact('plan', 'intent'));
}
Javascript被截断,因为SO不允许我全部发布:
<script src="https://js.stripe.com/v3/"></script>
...
// Submit the form with the token ID.
function stripeTokenHandler(paymentMethod) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'paymentMethod');
hiddenInput.setAttribute('value', paymentMethod);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
答案 0 :(得分:0)
在我的情况下,问题是我的show.blade.php中的javascript根本没有加载。该修复使Stripe元素显示出来。