- Added nonascii.patch from "T.J. Mather" <tjmather@maxmind.com> to
authorivan <ivan>
Fri, 22 Nov 2002 00:48:46 +0000 (00:48 +0000)
committerivan <ivan>
Fri, 22 Nov 2002 00:48:46 +0000 (00:48 +0000)
         put Text::CSV in binary mode to prevent problems with i18n
         characters (closes: cpan#1804)
       - ECHECK (ACH) patch from "Michael Mavroudis" <mjm@m5s.net> to add
         fields for ssn and license #

AuthorizeNet.pm
Changes

index 40c01d9..3b4dfc7 100644 (file)
@@ -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 (file)
--- 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" <tjmather@maxmind.com>
+         (closes: cpan#1805)
        - Added referer field, patch from Mike Barry <mbarry@cos.com>
        - Added currency field, request from
          "Oleksandr Kapitanenko" <kapitan@portaone.com>
        - Added documentation about referrer field at Authorize.Net
+       - Added nonascii.patch from "T.J. Mather" <tjmather@maxmind.com> to
+         put Text::CSV in binary mode to prevent problems with i18n
+         characters (closes: cpan#1804)
+       - ECHECK (ACH) patch from "Michael Mavroudis" <mjm@m5s.net> to add
+         fields for ssn and license #
 
 3.11  Sat May  4 00:43:36 PDT 2002
        - forgot 3.10 changelog in 3.10 :)