-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Is it possible to handle SCA/3DS challenges without using the Stripe Checkout user experience?
We are using this plugin to charge a card a one off fee at the end of a new donation journey for a charity. We have noticed a number of transactions in our Stripe dashboard (particularly those of high value) failing due to an SCA check not being authorised by the user. This prompted me to take a look in our plugin settings and we do indeed have the useSca option off.
Currently we are using template overrides to modify the paymentForm.twig form. This allows us to render the card input directly on our page using <div id="card-element-{{ paymentForm.id }}"></div> as seen here. This all works fine provided the user's card isn't challenged by their bank for an SCA verification. However if the bank does require an SCA/3DS verification then things break down. The form page simply reloads with no error state passed to the frontend with the following logged in the Craft logs:
[enupal\stripe\services\Orders::charge] Stripe - something went wrong: Your card was declined. This transaction requires authentication.
You might argue that this is expected behaviour given that we have useSca turned off. When I turn that setting on and then go to edit my Payment Form in the CP, I can see a warning telling me that that 'The card element does not support SCA yet, please make sure to enable Stripe Checkout.'.
Is there truly no way of using the 'Card element' approach whilst handling SCA challenges? Your documentation mentions that SCA is "a new rule coming into effect on September 14, 2019" speaking as if that is in the future tense. If the 'Card element' approach really can't handle SCA verification challenges at all, then surely it is completely redundant as an option within this plugin. in 2025, a large number of card transactions will trigger the bank requiring an SCA/3DS verification - it's (rightly) unavoidable.
What's more, you provide an alternative paymentFormSca.twig template for override here, but the form's endpoint won't even accept posting here if useSca is enabled.
I'd rather not have to use the Stripe Checkout but I'm just checking if it's mandatory to handle SCA (and therefore realistically any card transaction).