diff options
| -rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index f2340a1e8..696467538 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -371,6 +371,7 @@ sub process_payment {      or return { 'error' => "illegal_payby " . $p->{'payby'} };    my $payby = $1; +  #false laziness w/process/payment.cgi    my $payinfo;    my $paycvv = '';    if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) { @@ -389,14 +390,15 @@ sub process_payment {    } elsif ( $payby eq 'CARD' || $payby eq 'DCRD' ) {      $payinfo = $p->{'payinfo'}; -    $payinfo =~ s/[^\dx]//g; -    $payinfo =~ /^(\d{13,16})$/ -      or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo -    $payinfo = $1;      $payinfo = $cust_main->payinfo        if $cust_main->paymask eq $payinfo; +    $payinfo =~ s/\D//g; +    $payinfo =~ /^(\d{13,16})$/ +      or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo +    $payinfo = $1; +      validate($payinfo)        or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo      return { 'error' => gettext('unknown_card_type') }  | 
