[bop-devel] Proposed - Barclaycard EPDQextra Plus API Direct Link Integration
Simon Waters
simonw at zynet.net
Tue Jan 22 08:26:14 PST 2013
Okay, I am in similar situation to Ted Byers.
In that I have a working prototype for submitting a hash, and get a
status code and error messages back (if appropriate).
I've emailed Ted directly to check it isn't the same processor.
At this point my employers only need to implement the purchase operation
(SAL), but we will need additional features shortly (notably 3DSecure).
In prototype I've used:
use URI::Escape qw/uri_escape/;
use Digest::SHA qw/sha1_base64/;
use LWP::UserAgent;
use XML::Simple;
I now need to remap a whole load of names from existing hash sent to
Business::OnlinePayments to whatever module I write, so it seems to me I
may as well write it as a BOP module since you guys have some bits to
make that easier.
The system POSTs URLs with parameters to SSL protected locations,
retrieves a short XML response, which includes status code and error
messages and some other bits.
Seems straightforward.
I could do with some pointers (mentor?).
Do any of the existing modules do anything along these lines already?
I see TCLink shows me remapping fields nicely.
All the modules seem to split protocol, server, path for the connection.
Is that an SSLeay thing, as the LWP::UserAgent approach can be just
strings. Do BOP authors care? I know LWP::UserAgent didn't verify
certificates correctly previously, I believe this is fixed now (on the
upside Barclay card offer a message hash so intercepted messages can't
be modified without the hash key as well as the contents of the message).
Should I be using Business::OnlinePayments::HTTPS
I'm not 100% clear only having used AuthorizeNet and WorldPay modules
precisely what the "standard" HASH input we should be aiming at is for BOP.
I appreciate we can't guarantee to preserve every details since
different processors require different information, but those two
modules has some minor differences which seemed unnecessary to me. For
example "expiry date" should it be "YYMM" or doesn't it matter as long
as I give good error messages? I presume the goal is to make it an
interchangeable as possible or what's the point...
If I produce something that is useful to other folks can I get it
uploaded by someone, or do I go down becoming a CPAN author (I know
Barbie - so I'm sure he'll provide even more frank advice than usual if
I go that route...).
Anyone prepared to critique my Perl? It might need quite a lot of
critiquing, but at least I know that so the ego is mostly dead.
Testing: Barclays provide separate URLs, and separate account, but it is
all tied to our company, so I can't provide any public test credentials
for the system.
More information about the bop-devel
mailing list