The confirm ajax endpoint attempts to confirm a payment when supplied with a payment method ID.
The result of trying that is that a Payment Intent is created.
If confirm failed (SCA) then the Intent is send back. On the second submission only the Intent is needed, but the code was requiring the payment method, too. The payment method has already been set for the intent and can't change as far as I can see.
This MR removes the requirement for passing a payment method ID, and removes the payment method ID from the call to confirm. It now calls confirm without arguments, as shown in the docs: https://stripe.com/docs/payments/payment-intents/web-manual
While it probably does no harm to pass the payment method around again, unless it's needed we should keep the code and input requirements to the minimum.