summaryrefslogtreecommitdiff
path: root/IPPay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'IPPay.pm')
-rw-r--r--IPPay.pm19
1 files changed, 19 insertions, 0 deletions
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);