We use Drupal 8.6.15 with Commerce 8.x-2.13, using the Commerce Authorize.net module, with Authorize.net as the only payment gateway.
If a user enters incorrect CC information (such as an incorrect zip code) when it is retrieved, the page loads and gives it the generic error message of an error occurred during the payment. However, the card data they have entered are stored in the payment information of their user profile and there is no way to change or exchange them (I realize that this is on their user profile page, but it does not help in this scenario.)
The page displays "Map ending with XXX" with a link to edit it, but the link goes nowhere and only reloads the same page. Here is a screenshot. To complicate matters, the card data they have just entered appear below in the form of a radio button, but the only way to proceed is to add ANOTHER credit card. Thus, several payment methods are being created, with no direct way to change them when ordering, leaving the user confused and unable to continue AND not knowing exactly what is wrong with the data entered . Here's another screenshot showing what I mean.
I understand the reasoning to store the last four numbers and create new payment methods each time, as explained in this thread / answer, but the fact that the user has:
- No way to know what was wrong with the information entered
- No way to change what they've already entered, at least from that same
payment screen (see first screen capture)
- These new credit cards continue to be generated without any distinction between the two (is this the first or last card added?) If they try to use the same card
in fact an incredibly frustrating user experience if someone commits an error while validating his order.
Users must find a way to change their information directly from the payment page. It does not seem to be possible to do this by fixing the payment information link or by not generating more payment methods. Open to all suggestions!