Business-OnlinePayment-Vanco
view release on metacpan or search on metacpan
package Business::OnlinePayment::Vanco;
use strict;
use Carp;
use Tie::IxHash;
use XML::Simple;
use XML::Writer;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common qw (POST);
use Date::Calc qw(Add_Delta_YM Add_Delta_Days);
use Business::OnlinePayment;
#use Business::OnlinePayment::HTTPS;
use vars qw($VERSION $DEBUG @ISA $me);
@ISA = qw(Business::OnlinePayment); # Business::OnlinePayment::HTTPS
$VERSION = '0.02';
$DEBUG = 0;
$me = 'Business::OnlinePayment::Vanco';
sub set_defaults {
my $self = shift;
my %opts = @_;
# standard B::OP methods/data
$self->server('www.vancoservices.com') unless $self->server;
$self->port('443') unless $self->port;
$self->path('/cgi-bin/ws.vps') unless $self->path;
$self->build_subs(qw( order_number avs_code cvv2_response
response_page response_code response_headers
));
# module specific data
foreach (qw( ClientID ProductID )) {
$self->build_subs($_);
if ( $opts{$_} ) {
$self->$_( $opts{$_} );
delete $opts{$_};
}
}
}
sub map_fields {
my($self) = @_;
my %content = $self->content();
my $action = lc($content{'action'});
# ACTION MAP
my %actions =
( 'normal authorization' => 'EFTAddCompleteTransaction',
'recurring authorization' => 'EFTAddCompleteTransaction',
'cancel recurring authorization' => 'EFTDeleteTransaction',
);
$content{'RequestType'} = $actions{$action} || $action;
# TYPE MAP
my %types = ( 'visa' => 'CC',
'mastercard' => 'CC',
'american express' => 'CC',
'discover' => 'CC',
'check' => 'ECHECK',
);
$content{'type'} = $types{lc($content{'type'})} || $content{'type'};
$self->transaction_type($content{'type'});
# CHECK/TRANSACTION TYPE MAP
( run in 1.218 second using v1.01-cache-2.11-cpan-ff9377addf4 )