Fixing EPDQ Essential On JigoShop Errors
I recently came across a rather unusual issue with the EPDQ essential plugin (on Jigoshop) for Barclaycard which I thought i'd share in case anyone was having a similar problem. When attempting to check out, visitors would click through to the barclaycard payment gateway and then be rejected with a unhelpful error which then subsequently lost the order. When investigating the error logs, each transaction regardless of type was producing the same error:
The SHA-IN passphrase entered in the VirtueMart payment method settings does not match the SHA-IN passphrase configured in your ePDQ account.
After doing some digging online, this appeared to be an issue with the PSPID and SHA-in/out keys differing from the ones set in the backend of the website and barclaycard.
My first thought was that the keys weren't being generated properly or had been incorrectly set up however this was not the case. The site and barclaycard had matching codes and seemingly should work without issue.
After some digging around in the interface I noticed a few other options hadn't been set however after inserting the correct options, any test orders were still receiving the same error.
After another 20 minutes of messing around, I decided to go back to basics and remove as many variables as possible from the equation. I started by creating a brand new blank product with a value of £1.
(Previously, I had been told that some orders had gone through before the system broke and in my tests, all the products I had tested were high ticket items; £100 and above.)
Success. It was allowing a blank low ticket item through...
After that point, I scaled up to various different product configurations and prices and all of them seemed to be allowed through. However, any old products were still being rejected. Then it became apparent...
All the products had been added before the configuration for the payment gateway had been inputted. For some reason this was causing the mismatch and stopping orders.
The apparent solution was simple - reload the products into the system and the jobs a good 'un. Obviously this becomes very painful if you have to do it manually however it certainly solved the issue.