There may be two scenarios when multiple authorizations of a single card may occur:
Typically the swipe and the command to send the transaction for processing are two different things. The card is swiped through the reader so the card number is be captured and appear in the correct payment field on the screen. Then, once you know you have gotten the track data off the card, you press the button to send the transaction.
Some cards are hard to read. The mag strip is warped, dirty, etc. So you may have to swipe multiple times before you get a card number to register. Other times the reader might manage to read the card info, but a problem happened causing it to not parse and appear on the screen properly.
If, on the other hand, the scripting is setup to do this all in one step, i.e. the action of swiping the card initiates the capture of the card number as well as the next step of attempting to send the transaction, it might result in multiple authorizations.
This is not recommended because it would send a transaction attempt to the gateway for every single swipe of the card. No regard would be taken into whether or not the swipe was successful and this could potentially cause multiple authorizations from multiple swipes of the card.
The card is swiped, the info goes into the right fields to show that card as the form of payment, the card is sent for authorization and it looks like no response comes back. The user then goes back to another blank payment screen, re-swipes the card and repeat the steps. In the end, two transactions appear as processed.
This scenario usually has to do with the internet connection. You have to remember that the plug-in sends the request to the gateway and then waits for the reply. The plugin is waiting for a response for as long as 30 seconds (default timeout). If you don’t get a reply, that means one of two things. First, that the transaction never made it to the gateway. Or second, that the transaction made it to the gateway but you didn’t get the reply because of some issue with the network between you and the gateway.
In the second scenario it’s possible that you can have a transaction go through and you don’t see the response on your screen and don’t know it processed.
A connectivity issue can sometimes be indicated by a long wait before the timeout. And there is little that our plugin can do to combat a loss in network connectivity once the transaction attempt is underway. If the plugin can’t see the network at all and can’t reach the gateway it will usually error quite quickly, but you will still see a plugin generated response message “Error – no result obtained.