Laravel Cashier 10-条纹付款元素为空

时间:2019-12-01 00:21:56

标签: php laravel-5 stripe-payments laravel-cashier

我正在尝试显示Stripe付款元素,但未显示。

使用dd()语句,我可以知道用户PaymentMethods为空(如新用户所期望的那样),并且Intent不为空。

PlanController.php 中的

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();
    }

1 个答案:

答案 0 :(得分:0)

在我的情况下,问题是我的show.blade.php中的javascript根本没有加载。该修复使Stripe元素显示出来。