$amount = sprintf('%.2f', $amount + $fee);
}
-$cgi->param('year') =~ /^(\d+)$/
+$cgi->param('year') =~ /^(\d{4})/
or errorpage("illegal year ". $cgi->param('year'));
my $year = $1;
-$cgi->param('month') =~ /^(\d+)$/
+$cgi->param('month') =~ /^(\d{2})/
or errorpage("illegal month ". $cgi->param('month'));
my $month = $1;
#false laziness w/FS:;cust_main::realtime_bop - check both to make sure
# working correctly
if ( $payby eq 'CARD' &&
- grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save') ) {
+ ( (grep { $_ eq cardtype($payinfo) } $conf->config('cvv-save'))
+ || $conf->exists('business-onlinepayment-verification')
+ )
+ ) {
$new->set( 'paycvv' => $paycvv );
} else {
$new->set( 'paycvv' => '');
if ( $payby eq 'CARD' ) {
my $bill_location = FS::cust_location->new;
- $bill_location->set( $_ => $cgi->param($_) )
+ $bill_location->set( $_ => scalar($cgi->param($_)) )
foreach @{$payby2fields{$payby}};
$new->set('bill_location' => $bill_location);
# will do nothing if the fields are all unchanged
} else {
- $new->set( $_ => $cgi->param($_) ) foreach @{$payby2fields{$payby}};
+ $new->set( $_ => scalar($cgi->param($_)) ) foreach @{$payby2fields{$payby}};
}
my $error = $new->replace($cust_main);
#and generate an invoice for it now too
$error = $cust_main->bill( 'pkg_list' => [ $cust_pkg ] );
- errorpage("payment processed and fee ordered sucessfully, but error billing fee: $error")
+ errorpage("payment processed and fee ordered successfully, but error billing fee: $error")
if $error;
}