summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2007-11-09 18:54:48 +0000
committerivan <ivan>2007-11-09 18:54:48 +0000
commit63544739784abac4d9740323b609e554d58584e6 (patch)
tree08c74d2d59e605388748157be59c8053240b1a87
parent8fb9f96005f0de95124108be8adbcc40eead98f3 (diff)
Patch From Steve Simitzis for better compatiblity with eProcessingNetwork's AuthorizeNet compatability mode.
-rw-r--r--AuthorizeNet.pm34
-rw-r--r--Changes6
2 files changed, 33 insertions, 7 deletions
diff --git a/AuthorizeNet.pm b/AuthorizeNet.pm
index 1f787ca..c9cebaa 100644
--- a/AuthorizeNet.pm
+++ b/AuthorizeNet.pm
@@ -12,7 +12,7 @@ require Exporter;
@ISA = qw(Exporter Business::OnlinePayment);
@EXPORT = qw();
@EXPORT_OK = qw();
-$VERSION = '3.17';
+$VERSION = '3.18';
sub set_defaults {
my $self = shift;
@@ -63,6 +63,10 @@ sub map_fields {
? make_headers( 'Referer' => $content{'referer'} )
: "";
+ if (length $content{'password'} == 15) {
+ $content{'transaction_key'} = delete $content{'password'};
+ }
+
# stuff it back into %content
$self->content(%content);
}
@@ -123,6 +127,7 @@ sub submit {
phone => 'x_Phone',
fax => 'x_Fax',
email => 'x_Email',
+ email_customer => 'x_Email_Customer',
card_number => 'x_Card_Num',
expiration => 'x_Exp_Date',
cvv2 => 'x_Card_Code',
@@ -202,7 +207,17 @@ sub submit {
x_Ship_To_Country
x_Phone x_Fax x_Email x_Email_Customer x_Country
x_Currency_Code x_Trans_ID/);
- $post_data{'x_Test_Request'} = $self->test_transaction()?"TRUE":"FALSE";
+
+ $post_data{'x_Test_Request'} = $self->test_transaction() ? 'TRUE' : 'FALSE';
+
+ #deal with perl-style bool
+ if ( $post_data{'x_Email_Customer'}
+ && $post_data{'x_Email_Customer'} !~ /^FALSE$/i ) {
+ $post_data{'x_Email_Customer'} = 'TRUE';
+ } else {
+ $post_data{'x_Email_Customer'} = 'FALSE';
+ }
+
$post_data{'x_ADC_Delim_Data'} = 'TRUE';
$post_data{'x_delim_char'} = ',';
$post_data{'x_encap_char'} = '"';
@@ -221,7 +236,7 @@ sub submit {
#trim 'ip_addr="1.2.3.4"' added by eProcessingNetwork Authorize.Net compat
$page =~ s/,ip_addr="[\d\.]+"$//;
- my $csv = new Text::CSV_XS({ 'binary'=>1 });
+ my $csv = new Text::CSV_XS({ binary=>1, escape_char=>'' });
$csv->parse($page);
my @col = $csv->fields();
@@ -235,7 +250,11 @@ sub submit {
if($col[0] eq "1" ) { # Authorized/Pending/Test
$self->is_success(1);
$self->result_code($col[0]);
- $self->authorization($col[4]);
+ if ($col[4] =~ /^(.*)\s+(\d+)$/) { #eProcessingNetwork extra bits..
+ $self->authorization($2);
+ } else {
+ $self->authorization($col[4]);
+ }
} else {
$self->is_success(0);
$self->result_code($col[2]);
@@ -272,7 +291,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin
$tx->content(
type => 'VISA',
login => 'testdrive',
- password => '',
+ password => '', #password or transaction key
action => 'Normal Authorization',
description => 'Business::OnlinePayment test',
amount => '49.95',
@@ -307,7 +326,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin
$tx->content(
type => 'VISA',
login => 'testdrive',
- password => '',
+ password => '', #password or transaction key
action => 'Authorization Only',
description => 'Business::OnlinePayment test',
amount => '49.95',
@@ -449,6 +468,9 @@ Daemmon Hughes <daemmon@daemmonhughes.com> sent in a patch for "transaction
key" authentication as well support for the recurring_billing flag and the md5
method that returns the MD5 hash which is returned by the gateway.
+Steve Simitzis contributed a patch for better compatibility with
+eProcessingNetwork's AuthorizeNet compatability mode.
+
=head1 SEE ALSO
perl(1). L<Business::OnlinePayment>.
diff --git a/Changes b/Changes
index 485e315..e2cedac 100644
--- a/Changes
+++ b/Changes
@@ -1,8 +1,12 @@
Revision history for Perl extension Business::OnlinePayment::AuthorizeNet.
+3.18 unreleased
+ - Patch From Steve Simitzis for better compatiblity with
+ eProcessingNetwork's AuthorizeNet compatability mode.
+
3.17 Tue Jul 10 21:12:46 PDT 2007
- Trim the extra 'ip_addr="1.2.3.4"' added by eProcessingNetwork's
- AuthorizetNet compatability mode.
+ AuthorizeNet compatability mode.
- add bank account type handling
3.16 Tue Nov 14 02:35:30 PST 2006