summaryrefslogtreecommitdiff
path: root/AuthorizeNet
diff options
context:
space:
mode:
authorivan <ivan>2010-12-20 02:35:20 +0000
committerivan <ivan>2010-12-20 02:35:20 +0000
commit0aaa3a6a62a90d74f9fa23103e568888c905f7eb (patch)
treea16387690f4dc79b87da69bf0c675ba5038781a0 /AuthorizeNet
parentf82fc3906ef6014e0571f6cd25b0c995a239f454 (diff)
- Incorporate Business::OnlinePayment::AuthorizeNet::AIM::ErrorCodes by
Thomas Sibley and, using it, provide more descriptive error messages. - Switch to Business::OnlinePayment::HTTPS instead of using Net::SSLeay directly
Diffstat (limited to 'AuthorizeNet')
-rw-r--r--AuthorizeNet/AIM.pm34
1 files changed, 16 insertions, 18 deletions
diff --git a/AuthorizeNet/AIM.pm b/AuthorizeNet/AIM.pm
index 2906079..0039502 100644
--- a/AuthorizeNet/AIM.pm
+++ b/AuthorizeNet/AIM.pm
@@ -2,17 +2,14 @@ package Business::OnlinePayment::AuthorizeNet::AIM;
use strict;
use Carp;
+use Business::OnlinePayment::HTTPS;
use Business::OnlinePayment::AuthorizeNet;
-use Net::SSLeay qw/make_form post_https make_headers/;
+use Business::OnlinePayment::AuthorizeNet::AIM::ErrorCodes '%ERRORS';
use Text::CSV_XS;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
-require Exporter;
-
-@ISA = qw(Exporter Business::OnlinePayment::AuthorizeNet);
-@EXPORT = qw();
-@EXPORT_OK = qw();
-$VERSION = '3.21';
+@ISA = qw(Business::OnlinePayment::AuthorizeNet Business::OnlinePayment::HTTPS);
+$VERSION = '3.22';
sub set_defaults {
my $self = shift;
@@ -59,10 +56,6 @@ sub map_fields {
$content{'account_type'} = $account_types{lc($content{'account_type'})}
|| $content{'account_type'};
- $content{'referer'} = defined( $content{'referer'} )
- ? make_headers( 'Referer' => $content{'referer'} )
- : "";
-
if (length $content{'password'} == 15) {
$content{'transaction_key'} = delete $content{'password'};
}
@@ -259,12 +252,13 @@ sub submit {
$post_data{'x_ADC_URL'} = 'FALSE';
$post_data{'x_Version'} = '3.1';
- my $pd = make_form(%post_data);
- my $s = $self->server();
- my $p = $self->port();
- my $t = $self->path();
- my $r = $self->{_content}->{referer};
- my($page,$server_response,%headers) = post_https($s,$p,$t,$r,$pd);
+ my $opt = defined( $self->{_content}->{referer} )
+ ? { 'headers' => { 'Referer' => $self->{_content}->{referer} } }
+ : {};
+
+ my($page, $server_response, %headers) =
+ $self->https_post( $opt, \%post_data );
+
#escape NULL (binary 0x00) values
$page =~ s/\x00/\^0/g;
@@ -294,7 +288,11 @@ sub submit {
$self->is_success(0);
$self->result_code($col[2]);
$self->error_message($col[3]);
- unless ( $self->result_code() ) { #additional logging information
+ if ( $self->result_code ) {
+ my $addl = $ERRORS{ $self->result_code };
+ $self->error_message( $self->error_message. ' - '. $addl->{notes})
+ if $addl && ref($addl) eq 'HASH' && $addl->{notes};
+ } else { #additional logging information
#$page =~ s/\x00/\^0/g;
$self->error_message($col[3].
" DEBUG: No x_response_code from server, ".