- $required{CC_20} = [ qw( ePayAccountNum Password OrderNumber
- TransactionAmount AccountNumber ExpirationDate
+ $required{CC_20} = [ qw( ePayAccountNum Password OrderNum
+ TransactionAmount CardAccountNum ExpirationDate
MerchantCustServNum ) ];
$required{CC_30} = [ qw( ePayAccountNum Password TransactionCode OrderNum
TransactionAmount CardAccountNum ExpirationDate
MerchantCustServNum ) ];
$required{CC_30} = [ qw( ePayAccountNum Password TransactionCode OrderNum
TransactionAmount CardAccountNum ExpirationDate
ReferenceNum ) ];
$required{ECHECK_20} = [ qw( ePayAccountNum Password AccountNumber
RoutingNumber DollarAmount OrderNumber
ReferenceNum ) ];
$required{ECHECK_20} = [ qw( ePayAccountNum Password AccountNumber
RoutingNumber DollarAmount OrderNumber
$required{ECHECK_32} = [ qw( ePayAccountNum Password OrderNumber
AccountNumber RoutingNumber CheckNumber
DollarAmount CustomerName CustomerAddress
$required{ECHECK_32} = [ qw( ePayAccountNum Password OrderNumber
AccountNumber RoutingNumber CheckNumber
DollarAmount CustomerName CustomerAddress
RoutingNumber => 'routing_code',
AccountNumber => \$account_number,
RoutingNumber => 'routing_code',
AccountNumber => \$account_number,
CheckNumber => \$check_number,
CardHolderName => 'name',
CheckNumber => \$check_number,
CardHolderName => 'name',
- my %params = $self->get_fields( @{$required{$type_action}},
- @{$optional{$type_action}},
- );
+ tie my %params, 'Tie::IxHash',
+ $self->get_fields( @{$required{$type_action}},
+ @{$optional{$type_action}},
+ );
$params{TestTransaction}='Y' if $self->test_transaction;
$params{InstallmentNum} = $params{InstallmentOf} = '01'
unless ($params{InstallmentNum} && $params{InstallmentOf});
$params{TestTransaction}='Y' if $self->test_transaction;
$params{InstallmentNum} = $params{InstallmentOf} = '01'
unless ($params{InstallmentNum} && $params{InstallmentOf});
if ( $type_action eq "CC_30" || $type_action eq "CC_32" ) {
$self->path($self->path."elink/authpd.asp");
} elsif ( $type_action eq "CC_61" ) {
if ( $type_action eq "CC_30" || $type_action eq "CC_32" ) {
$self->path($self->path."elink/authpd.asp");
} elsif ( $type_action eq "CC_61" ) {
if ( $type_action eq "CC_30" || $type_action eq "CC_32" ) {
my ($format,$account,$tcode,$seq,$moi,$cardnum,$exp,$authamt,$authdate,
$authtime,$tstat,$custnum,$ordernum,$refnum,$rcode,$authsrc,$achar,
$transid,$vcode,$sic,$country,$avscode,$storenum,$cvv2resp,$cavvcode,
$crossrefnum,$etstat,$cavvresponse,$xid,$eci,@junk)
if ( $type_action eq "CC_30" || $type_action eq "CC_32" ) {
my ($format,$account,$tcode,$seq,$moi,$cardnum,$exp,$authamt,$authdate,
$authtime,$tstat,$custnum,$ordernum,$refnum,$rcode,$authsrc,$achar,
$transid,$vcode,$sic,$country,$avscode,$storenum,$cvv2resp,$cavvcode,
$crossrefnum,$etstat,$cavvresponse,$xid,$eci,@junk)
- my ($format,$account,$tcode,$voidamt,$seq,$voiddate,$voidtime,$tstat,
+ $self->avs_code('');
+ $self->cvv2_response('');
+ my ($format,$account,$tcode,$seq,$voiddate,$voidtime,$tstat, # flaky docs
$refnum,$filler1,$filler2,$filler3,$etstat,@junk)
= split '\|', $page;
$self->result_code( $status = $etstat );
$self->order_number( $refnum );
$refnum,$filler1,$filler2,$filler3,$etstat,@junk)
= split '\|', $page;
$self->result_code( $status = $etstat );
$self->order_number( $refnum );
my ($format,$account,$tcode,$seq,$moi,$authamt,$authdate,$authtime,
$tstat,$refnum,$crossrefnum,$custnum,$ordernum,$etstat,@junk)
= split '\|', $page;
$self->result_code( $status = $etstat );
$self->order_number( $refnum );
my ($format,$account,$tcode,$seq,$moi,$authamt,$authdate,$authtime,
$tstat,$refnum,$crossrefnum,$custnum,$ordernum,$etstat,@junk)
= split '\|', $page;
$self->result_code( $status = $etstat );
$self->order_number( $refnum );
my ($responsecode,$response,$transactionid,$note,$errors,@junk)
= split '\|', $page;
my ($responsecode,$response,$transactionid,$note,$errors,@junk)
= split '\|', $page;
+ $self->authorization('');
+ $errors = $errors ? $errors : '';
+ $self->error_message("$response $errors");
+ $self->junk( \@junk );
+
+ } elsif ( $type_action eq "ECHECK_20" ) {
+ my ($response,$transactionid,$note,$errors,@junk) # very flaky docs
+ = split '\|', $page;
+ $self->avs_code('');
+ $self->cvv2_response('');
+ $self->result_code( $status = $response );
+ $self->order_number( $transactionid );
+ $self->authorization('');
+ $errors = $errors ? $errors : '';