X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fprocess%2Fpayment.cgi;h=a6046a0dcd7901cff2da1b76d2741b8cf28a0a99;hb=b31719ae093ed10ceaaf0def79f8c3d3f0fb7c7e;hp=0b0dffd261e70c6c0f0d72f4ab5d90ec1da91cfa;hpb=163d6b01bcfcd1fc78724248ebe6b451ae402d45;p=freeside.git diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 0b0dffd26..a6046a0dc 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -135,14 +135,22 @@ if ( $payby eq 'CHEK' ) { $payinfo =~ s/\D//g; $payinfo =~ /^(\d{13,16}|\d{8,9})$/ - or errorpage(gettext('invalid_card')); # . ": ". $self->payinfo; + or errorpage(gettext('invalid_card')); $payinfo = $1; validate($payinfo) - or errorpage(gettext('invalid_card')); # . ": ". $self->payinfo; + or errorpage(gettext('invalid_card')); - errorpage(gettext('unknown_card_type')) - if $payinfo !~ /^99\d{14}$/ #token - && cardtype($payinfo) eq "Unknown"; + unless ( $payinfo =~ /^99\d{14}$/ ) { #token + + my $cardtype = cardtype($payinfo); + + errorpage(gettext('unknown_card_type')) + if $cardtype eq "Unknown"; + + my %bop_card_types = map { $_=>1 } values %{ card_types() }; + errorpage("$cardtype not accepted") unless $bop_card_types{$cardtype}; + + } if ( defined $cust_main->dbdef_table->column('paycvv') ) { #is this test necessary anymore? if ( length($cgi->param('paycvv') ) ) { @@ -190,7 +198,6 @@ if ( $cgi->param('save') ) { 'payinfo' => $payinfo, 'paymask' => $paymask, 'payname' => $payname, - 'paytype => $paytype, %saveopt );