Business::OnlinePayment::iTransact - iTransact backend module for Business::OnlinePayment
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";
}
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.
Content required: type, login, password, action, amount, description, first_name, last_name, card_number, expiration.
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.
See Business::OnlinePayment for the complete list. The following methods either override the methods in Business::OnlinePayment or provide additional functions.
Unique transaction identifier assigned by the gateway (XID)
Security code verification response (CVV2Response)
Address verification response (AVSResponse)
Address verification response category (AVSCategory)
Date and time of transactioni (TimeStamp)
Total transaction amount (Total)
Type of credit card used, i.e. VISA, MasterCard, etc. (CardName)
Returns the iTransact error code when an error occurs.
Returns the response error description text.
The raw XML response from the iTransact XML Gateway
Certain features are not yet implemented (no current personal business need), such as check processing and other transaction action types supported by iTransact.
Business::OnlinePayment
Business::OnlinePayment::HTTPS
XML::Writer
XML::Hash::XS
Digest::HMAC_SHA1
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
Original Author Bill Gerrard <bill@gerrard.org>
Business::OnlinePayment Implementation Bill Gerrard <bill@gerrard.org>
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.
perl(1). Business::OnlinePayment.