/Business-OnlinePayment-iTransact

Business::OnlinePayment::iTransact - iTransact backend for Business::OnlinePayment

Primary LanguagePerl

NAME

Business::OnlinePayment::iTransact - iTransact backend module for Business::OnlinePayment

SYNOPSIS

use Business::OnlinePayment;

my $tx = new Business::OnlinePayment( 'iTransact',
    login          => 'api_username', # iTransact API Username
    password       => 'apiKey', # iTransact API Key
    email_customer => 'TRUE', # send email to customer
    email_merchant => 'TRUE', # send email to merchant
);

$tx->content(
    action         => 'Normal Authorization',
    type           => 'cc',
    customer_id    => '123-CUST',
    first_name     => 'John',
    last_name      => 'Doe',
    card_number    => '5454545454545454',
    expiration     => '12/18',
    cvv2           => '123',
    email          => 'user@example.com',
    ### optional; include address fields to perform AVS check
    address        => '123 Main St',
    city           => 'Salt Lake City',
    state          => 'UT',
    zip            => '84001',
    country        => 'US',
    phone          => '801-555-1212',
    # order total and description
    description    => 'Business::OnlinePayment::iTransact XML Test',
    amount         => '20.17',
    # itemized list
    items => [
        {   description => 'item one',
            qty => 1,
            cost => '11.11'
        },
        {   description => 'item two',
            qty => 2,
            cost => '22.22'
        },
    ],
);

$tx->submit();

if($tx->is_success()) {
    print "Card processed successfully.\n\n";
    print "Authorization Code: " . $tx->authorization . "\n";
    print "Transaction ID: " . $tx->order_number . "\n";
    print "CVV Result Code: " . $tx->cvv2_response . "\n";
    print "AVS Result Code: " . $tx->avs_code . "\n";
    print "AVS Result Category: " . $tx->avs_category . "\n";
    print "Date and Time of Transaction: " . $tx->timestamp . "\n";
    print "Authorized Amount: " . $tx->total . "\n";
    print "Card Type: " . $tx->card_type . "\n";
} else {
    print "Card was rejected.\n\n";
    print "Error Message: ".$tx->error_message."\n";
    print "Error Category: " . $tx->error_category . "\n";
}

DESCRIPTION

Process Credit Card transactions via iTransact's XML API Connection.

This is a plugin for the Business::OnlinePayment interface. Please refer to that documentation for general usage, and here for iTransact specific usage.

SUPPORTED TRANSACTION TYPES

CC, Visa, MasterCard, American Express, Discover

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

SUPPORTED TRANSACTION ACTIONS

Normal Authorization

An action of 'Normal Authorization' will send a 'AuthTransaction' sale request to iTransact.

A sale request is the default authorization type performed which is an authorization that will automatically be captured during the settlement process. An AVSOnly credit card transaction request is a sale request run with a zero amount and can be used to validate the AVS and CVV information on a card without actually running an authorization.

When processing a sale request, you have the option of providing an itemized list of item, qty, cost. iTransact will calculate the item cost (qty * cost) and calculate an order total. Otherwise you only need to pass an order total and description. iTransact will attempt a charge of either the calculated order total (when itemized) or the amount you provide.

Note that the example in the synopsis shows "amount", "description" and "items" fields. Define either amount/description or items, not all three.

METHODS AND FUNCTIONS

See Business::OnlinePayment for the complete list. The following methods either override the methods in Business::OnlinePayment or provide additional functions.

order_number

Unique transaction identifier assigned by the gateway (XID)

cvv2_response

Security code verification response (CVV2Response)

avs_code

Address verification response (AVSResponse)

avs_category

Address verification response category (AVSCategory)

timestamp

Date and time of transactioni (TimeStamp)

total

Total transaction amount (Total)

card_type

Type of credit card used, i.e. VISA, MasterCard, etc. (CardName)

error_code

Returns the iTransact error code when an error occurs.

error_message

Returns the response error description text.

server_response

The raw XML response from the iTransact XML Gateway

UNIMPLEMENTED FEATURES

Certain features are not yet implemented (no current personal business need), such as check processing and other transaction action types supported by iTransact.

PREREQUISITES

Business::OnlinePayment
Business::OnlinePayment::HTTPS
XML::Writer
XML::Hash::XS
Digest::HMAC_SHA1

SEE ALSO

Refer to iTransact's documentation for more info https://itransact.com/support/toolkit/xml-connection/api/

For detailed information about Business::OnlinePayment see Business::OnlinePayment.

The latest version of Business::OnlinePayment::iTransact can be found at https://github.com/billgerrard/Business-OnlinePayment-iTransact

AUTHOR

Original Author Bill Gerrard <bill@gerrard.org>

Business::OnlinePayment Implementation Bill Gerrard <bill@gerrard.org>

COPYRIGHT AND LICENSE

Copyright (C) 2017-2018 Bill Gerrard

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.20.2 or, at your option, any later version of Perl 5 you may have available.

Disclaimer of warranty: This program is provided by the copyright holder and contributors "As is" and without any express or implied warranties. The implied warranties of merchantability, fitness for a particular purpose, or non-infringement are disclaimed to the extent permitted by your local law. Unless required by law, no copyright holder or contributor will be liable for any direct, indirect, incidental, or consequential damages arising in any way out of the use of the package, even if advised of the possibility of such damage.

SEE ALSO

perl(1). Business::OnlinePayment.