X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=AuthorizeNet.pm;h=12d0172be529af9d58052a842c9230bb760b5981;hb=65608cf88ed2170bc6bcad01a0c55b70dc4b3082;hp=d4e4294770707d5c9368ff9ee24f362c19f759b4;hpb=f2d9ec7e86a85d2f01b452c9a192081a44a0f549;p=Business-OnlinePayment-AuthorizeNet.git diff --git a/AuthorizeNet.pm b/AuthorizeNet.pm index d4e4294..12d0172 100644 --- a/AuthorizeNet.pm +++ b/AuthorizeNet.pm @@ -6,7 +6,7 @@ use Business::OnlinePayment; use vars qw($VERSION @ISA $me); @ISA = qw(Business::OnlinePayment); -$VERSION = '3.18'; +$VERSION = '3.23'; $me = 'Business::OnlinePayment::AuthorizeNet'; sub set_defaults { @@ -67,12 +67,14 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin amount => '49.95', invoice_number => '100100', customer_id => 'jsk', + email => 'jason@example.com', first_name => 'Jason', last_name => 'Kohles', address => '123 Anystreet', city => 'Anywhere', state => 'UT', zip => '84058', + country => 'US', card_number => '4007000000027', expiration => '09/02', cvv2 => '1234', #optional @@ -102,12 +104,14 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin amount => '49.95', invoice_number => '100100', customer_id => 'jsk', + email => 'jason@example.com', first_name => 'Jason', last_name => 'Kohles', address => '123 Anystreet', city => 'Anywhere', state => 'UT', zip => '84058', + country => 'US', card_number => '4007000000027', expiration => '09/02', cvv2 => '1234', #optional @@ -132,7 +136,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin type => 'CC', action => 'Post Authorization', login => 'YOURLOGIN - password => 'YOURPASSWORD', + password => 'YOURPASSWORD', #or transaction key order_number => $ordernum, amount => '49.95', ); @@ -157,7 +161,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin $tx->content( type => 'CC', login => 'testdrive', - password => 'testpass', + password => 'testpass', #or transaction key action => 'Recurring Authorization', interval => '7 days', start => '2008-3-10', @@ -195,7 +199,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin type => 'CC', subscription => '99W2C', login => 'testdrive', - password => 'testpass', + password => 'testpass', #or transaction key action => 'Modify Recurring Authorization', interval => '7 days', start => '2008-3-10', @@ -225,7 +229,7 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin $tx->content( subscription => '99W2D', login => 'testdrive', - password => 'testpass', + password => 'testpass', # or transaction key action => 'Cancel Recurring Authorization', ); $tx->submit(); @@ -245,11 +249,11 @@ Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::Onlin =head2 CC, Visa, MasterCard, American Express, Discover -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, card_number, expiration. =head2 Check -Content required: type, login, password|transaction_key, action, amount, first_name, last_name, account_number, routing_code, bank_name (non-subscription), account_type (subscription), check_type (subscription). +Content required: type, login, password, action, amount, first_name, last_name, account_number, routing_code, bank_name (non-subscription), account_type (subscription), check_type (subscription). =head2 Subscriptions @@ -357,19 +361,22 @@ from content(%content): zip => 'ship_zip', country => 'ship_country', -=head1 NOTE +=head1 NOTES -Unlike Business::OnlinePayment or pre-3.0 verisons of +Use your transaction key in the password field. + +Unlike Business::OnlinePayment or pre-3.0 versions of Business::OnlinePayment::AuthorizeNet, 3.1 requires separate first_name and last_name fields. Business::OnlinePayment::AuthorizeNet uses Authorize.Net's "Advanced Integration Method (AIM) (formerly known as ADC direct response)" and -"Automatic Recurring Billing (ARB)", sending a 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 field in the transaction content. +"Automatic Recurring Billing (ARB)", sending a username and password (or +transaction key as 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 field in the transaction +content. To settle an authorization-only transaction (where you set action to 'Authorization Only'), submit the nine-digit transaction id code in @@ -383,11 +390,10 @@ For the subscription actions an authorization code is never returned by the module. Instead it returns the value of subscriptionId in order_number. This is the value to use for changing or cancelling subscriptions. -Recently (February 2002), Authorize.Net has turned address -verification on by default for all merchants. If you do not have -valid address information for your customer (such as in an IVR -application), you must disable address verification in the Merchant -Menu page at https://secure.authorize.net/ so that the transactions +Authorize.Net has turned address verification on by default for all merchants +since 2002. If you do not have valid address information for your customer +(such as in an IVR application), you must disable address verification in the +Merchant Menu page at https://secure.authorize.net/ so that the transactions aren't denied due to a lack of address information. =head1 COMPATIBILITY @@ -397,13 +403,13 @@ Method (AIM) version 3.1, formerly known as ADC Direct Response and the Automatic Recurring Billing version 1.0 using the XML interface. See http://www.authorize.net/support/AIM_guide.pdf and http://www.authorize.net/support/ARB_guide.pdf for details. -=head1 AUTHOR +=head1 AUTHORS -Jason Kohles, jason@mediabang.com +Original author: Jason Kohles, jason@mediabang.com -Ivan Kohler updated it for Authorize.Net protocol -3.0/3.1 and is the current maintainer. Please send patches as unified diffs -(diff -u). +Ivan Kohler updated it for Authorize.Net +protocol 3.0/3.1 and is the current maintainer. Please see the next section +for for information on contributing. Jason Spence contributed support for separate Authorization Only and Post Authorization steps and wrote some docs. @@ -414,7 +420,8 @@ ARB support sponsored by Plus Three, LP. L. T.J. Mather sent a number of CVV2 patches. -Mike Barry sent in a patch for the referer field. +Mike Barry sent in a patch for the referer field and a fix for +ship_company. Yuri V. Mkrtumyan sent in a patch to add the void action. @@ -426,7 +433,72 @@ 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. +eProcessingNetwork's AuthorizeNet compatibility mode. + +Michael G. Schwern contributed cleanups, test fixes, and more. + +Erik Hollensbe implemented card-present data (track1/track2), the +duplicate_window parameter, and test fixes. + +Paul Timmins added the check_number field. + +Nate Nuss implemented the ("Additional Shipping Information (Level 2 Data)" +fields: tax, freight, duty, tax_exempt, po_number. + +Michael Peters fixed a bug in email address handling. + +Thomas Sibley wrote B:OP:AuthorizeNet::AIM::ErrorCodes +which was borged and used to provide more descriptive error messages. + +Craig Pearlman sent in a patch to more accurately declare +required fields for E-check transcations. + +=head1 CONTRIBUTIONS AND REPOSITORY + +Please send patches as unified diffs (diff -u) to (in order of preference): + +=over 4 + +=item CPAN RT + +http://rt.cpan.org/Public/Bug/Report.html?Queue=Business-OnlinePayment-AuthorizeNet + +=item The bop-devel mailing list + +http://420.am/cgi-bin/mailman/listinfo/bop-devel + +=item Ivan + +Ivan Kohler + +=back + +The code is available from our public CVS repository: + + export CVSROOT=":pserver:anonymous@cvs.freeside.biz:/home/cvs/cvsroot" + cvs login + # The password for the user `anonymous' is `anonymous'. + cvs checkout Business-OnlinePayment-AuthorizeNet + +Or on the web: + + http://freeside.biz/cgi-bin/viewvc.cgi/Business-OnlinePayment-AuthorizeNet/ + +=head1 A WORD FROM OUR SPONSOR + +This module and the Business::OnlinePayment framework are maintained by by +Freeside Internet Services. If you need a complete, open-source web-based +application to manage your customers, billing and trouble ticketing, please +visit http://freeside.biz/ + +=head1 COPYRIGHT & LICENSE + +Copyright 2010 Freeside Internet Services, Inc. +Copyright 2008 Thomas Sibley +All rights reserved. + +This program is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. =head1 SEE ALSO