fix errors paying with an on-file card through self-service
authorivan <ivan>
Wed, 2 Jul 2008 02:55:49 +0000 (02:55 +0000)
committerivan <ivan>
Wed, 2 Jul 2008 02:55:49 +0000 (02:55 +0000)
FS/FS/ClientAPI/MyAccount.pm

index 099affa..395450b 100644 (file)
@@ -420,6 +420,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' ) {
@@ -438,14 +439,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') }