package Business::OnlinePayment::AuthorizeNet;
-# $Id: AuthorizeNet.pm,v 1.7 2002-04-23 01:34:54 ivan Exp $
+# $Id: AuthorizeNet.pm,v 1.11 2002-07-31 14:38:17 ivan Exp $
use strict;
+use Carp;
use Business::OnlinePayment;
use Net::SSLeay qw/make_form post_https/;
use Text::CSV_XS;
@ISA = qw(Exporter AutoLoader Business::OnlinePayment);
@EXPORT = qw();
@EXPORT_OK = qw();
-$VERSION = '3.11';
+$VERSION = '3.12';
sub set_defaults {
my $self = shift;
email => 'x_Email',
company => 'x_Company',
order_number => 'x_Trans_ID',
+ cvv2 => 'x_Card_Code',
);
if($self->transaction_type() eq "ECHECK") {
x_Last_Name x_First_Name x_Address
x_City x_State x_Zip x_Country x_Phone
x_Fax x_Email x_Email_Customer
- x_Company x_Country x_Trans_ID/);
+ x_Company x_Country x_Trans_ID
+ x_Card_Code /);
$post_data{'x_Test_Request'} = $self->test_transaction()?"TRUE":"FALSE";
$post_data{'x_ADC_Delim_Data'} = 'TRUE';
$post_data{'x_ADC_URL'} = 'FALSE';
my $p = $self->port();
my $t = $self->path();
my($page,$server_response,%headers) = post_https($s,$p,$t,'',$pd);
+ #escape NULL (binary 0x00) values
+ $page =~ s/\x00/\^0/g;
my $csv = new Text::CSV_XS();
$csv->parse($page);
$self->result_code($col[2]);
$self->error_message($col[3]);
unless ( $self->result_code() ) { #additional logging information
+ #$page =~ s/\x00/\^0/g;
$self->error_message($col[3].
" DEBUG: No x_response_code from server, ".
"(HTTPS response: $server_response) ".
"(HTTPS headers: ".
- join(", ", map { "$_ => ". $headers{$_} } keys %headers ). ") "
+ join(", ", map { "$_ => ". $headers{$_} } keys %headers ). ") ".
"(Raw HTTPS content: $page)"
);
}
zip => '84058',
card_number => '4007000000027',
expiration => '09/02',
+ cvv2 => '1234', #optional
);
$tx->submit();