Business-OnlinePayment-ElavonVirtualMerchant
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
ElavonVirtualMerchant.pm view on Meta::CPAN
package Business::OnlinePayment::ElavonVirtualMerchant;
use base qw(Business::OnlinePayment::viaKLIX);
use strict;
use vars qw( $VERSION %maxlength );
$VERSION = '0.03';
$VERSION = eval $VERSION;
=head1 NAME
Business::OnlinePayment::ElavonVirtualMerchant - Elavon Virtual Merchant backend for Business::OnlinePayment
=head1 SYNOPSIS
use Business::OnlinePayment::ElavonVirtualMerchant;
my $tx = new Business::OnlinePayment("ElavonVirtualMerchant", { default_ssl_userid => 'whatever' });
$tx->content(
type => 'VISA',
login => 'testdrive',
password => '', #password or transaction key
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',
cvv2 => '1234', #optional
);
$tx->submit();
if($tx->is_success()) {
print "Card processed successfully: ".$tx->authorization."\n";
} else {
print "Card was rejected: ".$tx->error_message."\n";
}
=head1 DESCRIPTION
This module lets you use the Elavon (formerly Nova Information Systems) Virtual Merchant real-time payment gateway, a successor to viaKlix, from an application that uses the Business::OnlinePayment interface.
You need an account with Elavon. Elavon uses a three-part set of credentials to allow you to configure multiple 'virtual terminals'. Since Business::OnlinePayment only passes a login and password with each transaction, you must pass the third item,...
Elavon offers a number of transaction types, including electronic gift card operations and 'PINless debit'. Of these, only credit card transactions fit the Business::OnlinePayment model.
Since the Virtual Merchant API is just a newer version of the viaKlix API, this module subclasses Business::OnlinePayment::viaKlix.
This module does not use Elavon's XML encoding as this doesn't appear to offer any benefit over the standard encoding.
=head1 SUBROUTINES
=head2 set_defaults
Sets defaults for the Virtual Merchant gateway URL.
=cut
sub set_defaults {
my $self = shift;
my %opts = @_;
$self->SUPER::set_defaults(%opts);
# standard B::OP methods/data
$self->server("www.myvirtualmerchant.com");
$self->port("443");
$self->path("/VirtualMerchant/process.do");
}
=head2 _map_fields
Converts credit card types and transaction types from the Business::OnlinePayment values to Elavon's.
=cut
sub _map_fields {
my ($self) = @_;
my %content = $self->content();
#ACTION MAP
my %actions = (
'normal authorization' => 'CCSALE', # Authorization/Settle transaction
'credit' => 'CCCREDIT', # Credit (refund)
);
$content{'ssl_transaction_type'} = $actions{ lc( $content{'action'} ) }
|| $content{'action'};
# TYPE MAP
my %types = (
'visa' => 'CC',
'mastercard' => 'CC',
'american express' => 'CC',
'discover' => 'CC',
'cc' => 'CC',
);
$content{'type'} = $types{ lc( $content{'type'} ) } || $content{'type'};
$self->transaction_type( $content{'type'} );
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.867 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )