From: Ivan Kohler Date: Wed, 20 May 2015 18:38:19 +0000 (-0700) Subject: Handle and pass back error responses in ResultCode as well X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment-vSecureProcessing.git;a=commitdiff_plain;h=0d60ccd9aed8af2473ba936648dd6ca889d35c04 Handle and pass back error responses in ResultCode as well --- diff --git a/Changes b/Changes index 9f89ed7..f0eb2ad 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,8 @@ Revision history for Perl module Business::OnlinePayment::vSecureProcessing +0.06 Wed May 20 11:38:02 PDT 2015 + - Handle and pass back error responses in ResultCode as well + 0.05 Thu Feb 19 13:38:21 PST 2015 - cvv2_response should never be passed back as a hashref diff --git a/lib/Business/OnlinePayment/vSecureProcessing.pm b/lib/Business/OnlinePayment/vSecureProcessing.pm index 0ae9adc..85d5f1b 100644 --- a/lib/Business/OnlinePayment/vSecureProcessing.pm +++ b/lib/Business/OnlinePayment/vSecureProcessing.pm @@ -11,7 +11,7 @@ use Business::OnlinePayment::HTTPS; @ISA = qw(Business::OnlinePayment::HTTPS); $DEBUG = 0; -$VERSION = '0.05'; +$VERSION = '0.06'; # mapping out all possible endpoints # but this version will only be building out "charge", "void", & "credit" @@ -361,17 +361,17 @@ sub parse_response { $self->is_success($self->result_code() eq '0' ? 1 : 0); if ($self->is_success()) { $self->authorization($response->{ReferenceNumber}); - } - # fill in error_message if there is is an error - if ( !$self->is_success && exists($response->{AdditionalResponseData})) { - $self->error_message('Error '.$response->{ResponseCode}.': '.$response->{AdditionalResponseData}); - }elsif ( !$self->is_success && exists($response->{Receipt}) ) { - $self->error_message('Error '.$response->{ResponseCode}.': '.(exists($response->{Receipt})) ? $response->{Receipt} : ''); + } else { # fill in error_message if there is is an error + $self->error_message( 'Error '.$response->{ResponseCode}.': '. + ( $response->{AdditionalResponseData} + || $response->{Receipt} + || $response->{ResultCode} + ) + ); } } else { - die 'Error communicating with vSecureProcessing server'; - return; + die 'Error communicating with vSecureProcessing server (server sent response: '. $self->server_response. ')'; } }