From: ivan Date: Tue, 21 Sep 2004 07:43:21 +0000 (+0000) Subject: fix rqeuired fields for echeck voiding X-Git-Tag: BUSINESS_ONLINEPAYMENT_AUTHORIZENET_3_14~1 X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment-AuthorizeNet.git;a=commitdiff_plain;h=5307cdc48107912cb744f6c5c230e6babda86c99 fix rqeuired fields for echeck voiding --- diff --git a/AuthorizeNet.pm b/AuthorizeNet.pm index d4ee829..abe5f7b 100644 --- a/AuthorizeNet.pm +++ b/AuthorizeNet.pm @@ -135,38 +135,47 @@ sub submit { ? 'transaction_key' : 'password'; - if ($self->transaction_type() eq "ECHECK") { + my @required_fields = ( qw(type action login), $auth_type ); + + unless ( $self->{_content}->{action} eq 'VOID' ) { + + if ($self->transaction_type() eq "ECHECK") { + + push @required_fields, qw( + amount routing_code account_number account_type bank_name + account_name account_type + ); + if ($self->{_content}->{customer_org} ne '') { - $self->required_fields(qw/type login amount routing_code - account_number account_type bank_name - account_name account_type - customer_org customer_ssn/, $auth_type); + push @required_fields, qw( customer_org customer_ssn ); } else { - $self->required_fields(qw/type login amount routing_code - account_number account_type bank_name - account_name account_type - license_num license_state license_dob/, $auth_type); + push @required_fields, qw(license_num license_state license_dob); } - } elsif ($self->transaction_type() eq 'CC' ) { - if ( $self->{_content}->{action} eq 'PRIOR_AUTH_CAPTURE' ) { - if ( $self->{_content}->{order_number}) { - $self->required_fields(qw/type login action amount/, $auth_type); + + } elsif ($self->transaction_type() eq 'CC' ) { + + if ( $self->{_content}->{action} eq 'PRIOR_AUTH_CAPTURE' ) { + if ( $self->{_content}->{order_number} ) { + push @required_fields, qw( amount order_number ); } else { - $self->required_fields(qw/type login action amount - card_number expiration/, $auth_type); + push @required_fields, qw( amount card_number expiration ); } - } elsif ( $self->{_content}->{action} eq 'VOID' ) { - $self->required_fields(qw/login action/,$auth_type); + } else { + push @required_fields, qw( + amount last_name first_name card_number expiration + ); + } } else { - $self->required_fields(qw/type login action amount last_name - first_name card_number expiration/, $auth_type); + Carp::croak( "AuthorizeNet can't handle transaction type: ". + $self->transaction_type() ); } - } else { - Carp::croak("AuthorizeNet can't handle transaction type: ". - $self->transaction_type()); + } - my %post_data = $self->get_fields(qw/x_Login x_Password x_Tran_Key x_Invoice_Num + $self->required_fields(@required_fields); + + my %post_data = $self->get_fields(qw/ + x_Login x_Password x_Tran_Key x_Invoice_Num 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 @@ -335,7 +344,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin =head1 SUPPORTED TRANSACTION TYPES -=head2 Visa, MasterCard, American Express, Discover +=head2 CC, Visa, MasterCard, American Express, Discover Content required: type, login, password|transaction_key, action, amount, first_name, last_name, card_number, expiration. @@ -393,7 +402,7 @@ Jason Spence contributed support for separate Authorization Only and Post Authorization steps and wrote some docs. OST paid for it. -T.J. Mather sent a patch for the CVV2 field. +T.J. Mather sent a number of CVV2 patches. Mike Barry sent in a patch for the referer field. diff --git a/Changes b/Changes index 552093a..a88685e 100644 --- a/Changes +++ b/Changes @@ -2,6 +2,7 @@ Revision history for Perl extension Business::OnlinePayment::AuthorizeNet. 3.14 unreleased - Added ship_ name/address fields + - Fixed required fields for echeck voiding From T.J. Mather (closes: cpan#6761): - Added cvv2_response and cavv_response to get the cvv2 and cavv response codes back from authorize.net.