Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

thebigk's avatar
Level 13

Cashier Response for 3D Secure Not Working

I'm facing issue with getting Cashier to work with 3D secure cards. Here's an overview of my setup -

Controllers -

public function show() // responds to GET '/pay'
    {
        return view("Payments.Pay");  
    }

    public function charge(Request $request) //responds to POST '/pay'
    {
        $paymentMethodId = $request->paymentMethodId;

        try {
            $stripeCharge = (new User)->charge(299, $paymentMethodId);
        } catch (IncompletePayment $exception) {
            return redirect()->route('cashier.payment', [$exception->payment->id, 'redirect' => route('home')]);
        }
    }

I visit '/pay' route to enter card-holder-name and card-element. Then trigger the card authentication with click of Pay button.

I receive the $paymentMethodId from Stripe, which I POST to my /pay route, handled by charge method on the controller.

Now, the try blog throws an exception, as expected and catch block is executed. This is where I am facing issue. Chrome receives the HTML from Cashier's inbuilt cashier.payment route, but it does not trigger pop-up or redirect the user. I can see the entire HTML returned as response.

I'm wondering if I'm missing out on any step. Can someone guide? I'm trying to figure this out since yesterday!

0 likes
0 replies

Please or to participate in this conversation.