- add "transaction key" (x_Tran_Key) authentication in addition to
password
- add "recurring_billing" field
- added "md5" method
$self->path('/gateway/transact.dll');
$self->build_subs('order_number'); #no idea how it worked for jason w/o this
$self->path('/gateway/transact.dll');
$self->build_subs('order_number'); #no idea how it worked for jason w/o this
+ $self->build_subs('md5');
type => 'x_Method',
login => 'x_Login',
password => 'x_Password',
type => 'x_Method',
login => 'x_Login',
password => 'x_Password',
+ transaction_key => 'x_Tran_Key',
action => 'x_Type',
description => 'x_Description',
amount => 'x_Amount',
action => 'x_Type',
description => 'x_Description',
amount => 'x_Amount',
license_num => 'x_Drivers_License_Num',
license_state => 'x_Drivers_License_State',
license_dob => 'x_Drivers_License_DOB',
license_num => 'x_Drivers_License_Num',
license_state => 'x_Drivers_License_State',
license_dob => 'x_Drivers_License_DOB',
+ recurring_billing => 'x_Recurring_Billing',
+ my $auth_type = $self->{_content}->{transaction_key}?'transaction_key':'password';
if ($self->transaction_type() eq "ECHECK") {
if ($self->{_content}->{customer_org} ne '') {
if ($self->transaction_type() eq "ECHECK") {
if ($self->{_content}->{customer_org} ne '') {
- $self->required_fields(qw/type login password amount routing_code
+ $self->required_fields(qw/type login amount routing_code
account_number account_type bank_name
account_name account_type
account_number account_type bank_name
account_name account_type
- customer_org customer_ssn/);
+ customer_org customer_ssn/, $auth_type);
- $self->required_fields(qw/type login password amount routing_code
+ $self->required_fields(qw/type login amount routing_code
account_number account_type bank_name
account_name account_type
account_number account_type bank_name
account_name account_type
- license_num license_state license_dob/);
+ license_num license_state license_dob/, $auth_type);
}
} elsif ($self->transaction_type() eq 'CC' ) {
if ( $self->{_content}->{action} eq 'PRIOR_AUTH_CAPTURE' ) {
if ( $self->{_content}->{order_number}) {
}
} 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 password action amount/);
+ $self->required_fields(qw/type login action amount/, $auth_type);
- $self->required_fields(qw/type login password action amount
- card_number expiration/);
+ $self->required_fields(qw/type login action amount
+ card_number expiration/, $auth_type);
}
} elsif ( $self->{_content}->{action} eq 'VOID' ) {
}
} elsif ( $self->{_content}->{action} eq 'VOID' ) {
- $self->required_fields(qw/login password action/);
+ $self->required_fields(qw/login action/,$auth_type);
- $self->required_fields(qw/type login password action amount last_name
- first_name card_number expiration/);
+ $self->required_fields(qw/type login action amount last_name
+ first_name card_number expiration/, $auth_type);
}
} else {
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_Invoice_Num
+ 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
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
my @col = $csv->fields();
$self->server_response($page);
my @col = $csv->fields();
$self->server_response($page);
if($col[0] eq "1" ) { # Authorized/Pending/Test
$self->is_success(1);
$self->result_code($col[0]);
if($col[0] eq "1" ) { # Authorized/Pending/Test
$self->is_success(1);
$self->result_code($col[0]);
=head2 Visa, MasterCard, American Express, Discover
=head2 Visa, MasterCard, American Express, Discover
-Content required: type, login, password, action, amount, first_name, last_name, card_number, expiration.
+Content required: type, login, password|transaction_key, action, amount, first_name, last_name, card_number, expiration.
-Content required: type, login, password, action, amount, first_name, last_name, account_number, routing_code, bank_name.
+Content required: type, login, password|transaction_key, action, amount, first_name, last_name, account_number, routing_code, bank_name.
Business::OnlinePayment::AuthorizeNet uses Authorize.Net's "Advanced
Integration Method (AIM) (formerly known as ADC direct response)", sending a
Business::OnlinePayment::AuthorizeNet uses Authorize.Net's "Advanced
Integration Method (AIM) (formerly known as ADC direct response)", sending a
-username and password with every transaction. Therefore, Authorize.Net's
+username and transaction_key or password with every transaction. Therefore, Authorize.Net's
referrer "security" is not necessary. In your Authorize.Net interface at
https://secure.authorize.net/ make sure the list of allowable referers is
blank. Alternatively, set the B<referer> field in the transaction content.
referrer "security" is not necessary. In your Authorize.Net interface at
https://secure.authorize.net/ make sure the list of allowable referers is
blank. Alternatively, set the B<referer> field in the transaction content.
Paul Zimmer <AuthorizeNetpm@pzimmer.box.bepress.com> sent in a patch for
card-less post authorizations.
Paul Zimmer <AuthorizeNetpm@pzimmer.box.bepress.com> sent in a patch for
card-less post authorizations.
+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.
+
=head1 SEE ALSO
perl(1). L<Business::OnlinePayment>.
=head1 SEE ALSO
perl(1). L<Business::OnlinePayment>.
3.13 unreleased
- removed Michael Mavroudis's email address
3.13 unreleased
- removed Michael Mavroudis's email address
- - added 'void' action, patch from Yuri V. Mkrtumyan <yuramk@novosoft.ru> - allow "Post Authorize" with order_number but no card info, patch
+ - added 'void' action, patch from Yuri V. Mkrtumyan
+ <yuramk@novosoft.ru>
+ - allow "Post Authorize" with order_number but no card info, patch
from Paul Zimmer <AuthorizeNetpm@pzimmer.box.bepress.com>
- Don't require "check_type" field
- s/x_Bank_Account_Name/x_Bank_Acct_Name/ for ACH transactions
from Paul Zimmer <AuthorizeNetpm@pzimmer.box.bepress.com>
- Don't require "check_type" field
- s/x_Bank_Account_Name/x_Bank_Acct_Name/ for ACH transactions
+ From Daemon Hughes <daemmon@daemmonhughes.com>:
+ - add "transaction key" (x_Tran_Key) authentication in addition to
+ password
+ - add "recurring_billing" field
+ - added "md5" method
3.12 Thu Nov 21 17:05:19 2002
- Added cvv2 field, patch from T.J. Mather <tjmather@maxmind.com>
3.12 Thu Nov 21 17:05:19 2002
- Added cvv2 field, patch from T.J. Mather <tjmather@maxmind.com>