From 43bd8f7ee90eb520654b2f04aa720faa2901476b Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 22 Nov 2002 00:48:46 +0000 Subject: [PATCH] - Added nonascii.patch from "T.J. Mather" to put Text::CSV in binary mode to prevent problems with i18n characters (closes: cpan#1804) - ECHECK (ACH) patch from "Michael Mavroudis" to add fields for ssn and license # --- AuthorizeNet.pm | 65 ++++++++++++++++++++++++++++++++++++--------------------- Changes | 6 ++++++ 2 files changed, 47 insertions(+), 24 deletions(-) diff --git a/AuthorizeNet.pm b/AuthorizeNet.pm index 40c01d9..3b4dfc7 100644 --- a/AuthorizeNet.pm +++ b/AuthorizeNet.pm @@ -1,6 +1,6 @@ package Business::OnlinePayment::AuthorizeNet; -# $Id: AuthorizeNet.pm,v 1.14 2002-08-16 06:53:28 ivan Exp $ +# $Id: AuthorizeNet.pm,v 1.15 2002-11-22 00:48:46 ivan Exp $ use strict; use Carp; @@ -87,34 +87,52 @@ sub submit { action => 'x_Type', description => 'x_Description', amount => 'x_Amount', + currency => 'x_Currency_Code', invoice_number => 'x_Invoice_Num', + order_number => 'x_Trans_ID', + auth_code => 'x_Auth_Code', customer_id => 'x_Cust_ID', + customer_ip => 'x_Customer_IP' last_name => 'x_Last_Name', first_name => 'x_First_Name', address => 'x_Address', city => 'x_City', state => 'x_State', zip => 'x_Zip', - card_number => 'x_Card_Num', - expiration => 'x_Exp_Date', - account_number => 'x_Bank_Acct_Num', - routing_code => 'x_Bank_ABA_Code', - bank_name => 'x_Bank_Name', country => 'x_Country', phone => 'x_Phone', fax => 'x_Fax', email => 'x_Email', company => 'x_Company', - order_number => 'x_Trans_ID', - cvv2 => 'x_Card_Code', - currency => 'x_Currency_Code', + card_number => 'x_Card_Num', + expiration => 'x_Exp_Date', + cvv2 => 'x_Card_Code', + check_type => 'x_Echeck_Type', + account_name => 'x_Bank_Account_Name', + account_number => 'x_Bank_Acct_Num', + account_type => 'x_Bank_Acct_Type', + bank_name => 'x_Bank_Name', + routing_code => 'x_Bank_ABA_Code', + customer_org => 'x_Customer_Organization_Type', + customer_ssn => 'x_Customer_Tax_ID', + license_num => 'x_Drivers_License_Num', + license_state => 'x_Drivers_License_State', + license_dob => 'x_Drivers_License_DOB', ); - if($self->transaction_type() eq "ECHECK") { - $self->required_fields(qw/type login password action amount last_name - first_name account_number routing_code - bank_name/); - } elsif($self->transaction_type() eq 'CC' ) { + if ($self->transaction_type() eq "ECHECK") { + if ($self->{_content}->{customer_org} ne '') { + $self->required_fields(qw/type login password amount routing_code + account_number account_type bank_name + account_name account_type check_type + customer_org customer_ssn/); + } else { + $self->required_fields(qw/type login password amount routing_code + account_number account_type bank_name + account_name account_type check_type + license_num license_state license_dob/); + } + } elsif ($self->transaction_type() eq 'CC' ) { if ( $self->{_content}->{action} eq 'PRIOR_AUTH_CAPTURE' ) { $self->required_fields(qw/type login password action amount card_number expiration/); @@ -128,15 +146,14 @@ sub submit { } my %post_data = $self->get_fields(qw/x_Login x_Password x_Invoice_Num - x_Description x_Amount x_Cust_ID - x_Method x_Type x_Card_Num x_Exp_Date - x_Auth_Code x_Bank_Acct_Num - x_Bank_ABA_Code x_Bank_Name - 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_Card_Code /); + x_Description x_Amount x_Cust_ID x_Method x_Type x_Card_Num x_Exp_Date + x_Card_Code x_Auth_Code x_Echeck_Type x_Bank_Acct_Num + x_Bank_Account_Name x_Bank_ABA_Code x_Bank_Name x_Bank_Acct_Type + x_Customer_Organization_Type x_Customer_Tax_ID x_Customer_IP + x_Drivers_License_Num x_Drivers_License_State x_Drivers_License_DOB + 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_Currency_Code x_Trans_ID/); $post_data{'x_Test_Request'} = $self->test_transaction()?"TRUE":"FALSE"; $post_data{'x_ADC_Delim_Data'} = 'TRUE'; $post_data{'x_ADC_URL'} = 'FALSE'; @@ -151,7 +168,7 @@ sub submit { #escape NULL (binary 0x00) values $page =~ s/\x00/\^0/g; - my $csv = new Text::CSV_XS(); + my $csv = new Text::CSV_XS({ 'binary'=>1 }); $csv->parse($page); my @col = $csv->fields(); diff --git a/Changes b/Changes index 2f02306..f63fce2 100644 --- a/Changes +++ b/Changes @@ -2,10 +2,16 @@ Revision history for Perl extension Business::OnlinePayment::AuthorizeNet. 3.12 unreleased - Added cvv2 field, patch from "T.J. Mather" + (closes: cpan#1805) - Added referer field, patch from Mike Barry - Added currency field, request from "Oleksandr Kapitanenko" - Added documentation about referrer field at Authorize.Net + - Added nonascii.patch from "T.J. Mather" to + put Text::CSV in binary mode to prevent problems with i18n + characters (closes: cpan#1804) + - ECHECK (ACH) patch from "Michael Mavroudis" to add + fields for ssn and license # 3.11 Sat May 4 00:43:36 PDT 2002 - forgot 3.10 changelog in 3.10 :) -- 2.11.0