If you are looking for a payment gateway for ePDQ I’m not releasing my module commercially but there is now an offical ePDQ module available
ePDQ is a relatively new web payments gateway from Barclays Bank that I hadn’t used before. My client had been using PayPal but was having problems accepting payment from overseas. They were also unhappy with the high fees for PayPal and given that they also have their Business Banking with Barclays they decided to make the switch.
I was lucky in that the client I am working for trusted me and gave me full access to the administration areas. Quite rightly Barclays are extremely security conscious so you may find that when you are setting things up you will need to get the client involved or obtain further credentials. An integration guide is provided at an extranet site.
ePDQ recommend that you set up a separate user to integrate ePDQ with CPI (Cardholder Payment Interface). The integration guide gives you a walkthrough on how to do this. I got into a spot of bother as the password I had set was using non-alphanumeric characters. This is noted in the document but there isn’t any validation on the site. It will let you create the password but not login with it.
Once you’ve set a password successfully. You must then log out and log back in, resetting your password immediately. This again wasn’t as clear as it could have been in the documentation. I then managed to lock my password. Not a problem - I had the administrator password but if your client doesn’t give this to you it will be a pain.
I was then able to sign into the ePDQ configuration changes where you have to enter information about your application. You have to add your username and password again and there is a suggestion that this is not synchronised with the Administration section. I can see this being a potential issue.
You then enter information about your application. I hadn’t actually started building the application at this stage so I didn’t know all of the details.
Or maybe not. ePDQ does not have a sandbox. * OMG * Seriously? Yes. That’s an issue. I’m still waiting on a response from their support team about how to take this forward. Build a sandbox site for developers would seem to be a good start.
Turns out that there is an extension already written for Barclays ePDQ. I’ll cover how this went in a later post.
There is a handy file that will profile your server and tell you if it is compatible. I run CentOS servers for both development and production and the version of PHP 5.1.6 was too old for Magento. Regrettably I had to use a third party yum repo to get a newer version. There’s an excellently maintained yum repository at Utter Ramblings. Add this to /etc/yum.repos.d and then run:
yum upgrade php
I then found I didn’t have the mycrypt extension. Running
yum install php-mcrypt
fixed that. Remember to restart Apache once you have done this.
I chose to install Magento via SSH and it was extremely straightforward. If you aren’t comfortable with SSH there are a number of other options available at the download page.
Then just proceed through the GUI installation by opening your site. I got stuck when entering the site URL with the error message:
Url "http://my.domain.com/" is not accessible Unable to read response, or response is empty
Yep - there is no DNS record for the domain so I needed to add that to my local DNS server or set it in the host file.
Finally don’t forget to copy the encryption key at the end of the installation.
That’s it - you should be up and running with the test site. Next up - customisation.
Have an update or suggestion for this article? You can edit it here and send me a pull request.
Using HashiCorp Vault with LDAP
How to use HashiCorp Vault to setup an LDAP backed secret store with read-only access for users in groups and read-write access for specific users
Linux and Unix xargs command tutorial with examples
Tutorial on using xargs, a UNIX and Linux command for building and executing command lines from standard input. Examples of cutting by character, byte position, cutting based on delimiter and how to modify the output delimiter.
Copy a file in Go
How to copy a file in Go. The ioutil package does not offer a shorthand way of copying a file. Instead the os package should be used.