From a7ffdf742b491ad38126db36efe8f478ac7c1c9c Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 17 Jul 2010 04:25:03 +0000 Subject: quick routing code validation for a better error message --- IPPay.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'IPPay.pm') diff --git a/IPPay.pm b/IPPay.pm index ab063cb..c58e14a 100644 --- a/IPPay.pm +++ b/IPPay.pm @@ -213,6 +213,14 @@ sub submit { $self->required_fields(@required_fields); + #quick validation because ippay dumps an error indecipherable to the end user + if (grep { /^routing_code$/ } @required_fields) { + unless( $content{routing_code} =~ /^\d{9}$/ ) { + $self->_error_response('Invalid routing code'); + return; + } + } + if ($self->test_transaction()) { $self->server('test1.jetpay.com'); $self->port('443'); @@ -408,6 +416,17 @@ sub submit { } +sub _error_response { + my ($self, $error_message) = (shift, shift); + $self->result_code(''); + $self->order_number(''); + $self->authorization(''); + $self->cvv2_response(''); + $self->avs_code(''); + $self->is_success( 0); + $self->error_message($error_message); +} + sub _xmlwrite { my ($self, $writer, $item, $value) = @_; $writer->startTag($item); -- cgit v1.2.1