NAME

Business::OnlinePayment::AuthorizeNet - AuthorizeNet backend for Business::OnlinePayment

SYNOPSIS

use Business::OnlinePayment;

my $tx = new Business::OnlinePayment("AuthorizeNet");
$tx->content(
    type           => 'VISA',
    login          => 'testdrive',
    password       => '',
    action         => 'Normal Authorization',
    description    => 'Business::OnlinePayment test',
    amount         => '49.95',
    invoice_number => '100100',
    customer_id    => 'jsk',
    first_name     => 'Jason',
    last_name      => 'Kohles',
    address        => '123 Anystreet',
    city           => 'Anywhere',
    state          => 'UT',
    zip            => '84058',
    card_number    => '4007000000027',
    expiration     => '09/02',
);
$tx->submit();

if($tx->is_success()) {
    print "Card processed successfully: ".$tx->authorization."\n";
} else {
    print "Card was rejected: ".$tx->error_message."\n";
}

SUPPORTED TRANSACTION TYPES

Visa, MasterCard, American Express, Discover

Content required: type, login, password, action, amount, first_name, last_name, card_number, expiration.

Check

Content required: type, login, password, action, amount, first_name, last_name, account_number, routing_code, bank_name.

DESCRIPTION

For detailed information see Business::OnlinePayment.

NOTE

Unlike Business::OnlinePayment or pre-3.0 verisons of Business::OnlinePayment::AuthorizeNet, 3.1 requires separate first_name and last_name fields.

To settle an authorization-only transaction (where you set action to 'Authorization Only'), submit the nine-digit transaction id code in the field "order_number" with the action set to "Post Authorization". You can get the transaction id from the authorization by calling the order_number method on the object returned from the authorization. You must also submit the amount field with a value less than or equal to the amount specified in the original authorization.

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 aren't denied due to a lack of address information.

COMPATIBILITY

This module implements Authorize.Net's API verison 3.1 using the ADC Direct Response method. See https://secure.authorize.net/docs/developersguide.pml for details.

AUTHOR

Jason Kohles, jason@mediabang.com

Ivan Kohler <ivan-authorizenet@420.am> updated it for Authorize.Net protocol 3.0/3.1 and is the current maintainer.

Jason Spence <jspence@lightconsulting.com> contributed support for separate Authorization Only and Post Authorization steps and wrote some docs. OST <services@ostel.com> paid for it.

SEE ALSO

perl(1). Business::OnlinePayment.