self-service API: allow changing CVV with edit_info, RT#36795
authorIvan Kohler <ivan@freeside.biz>
Mon, 15 Jun 2015 19:04:21 +0000 (12:04 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 15 Jun 2015 19:04:21 +0000 (12:04 -0700)
FS/FS/ClientAPI/MyAccount.pm

index 36989db..85a96c7 100644 (file)
@@ -822,16 +822,16 @@ sub edit_info {
 
     if ( $new->payinfo eq $cust_main->paymask ) {
       $new->payinfo($cust_main->payinfo);
+      $new->paycvv( $p->{'paycvv'} || $cust_main->paycvv );
     } else {
       $new->payinfo($p->{'payinfo'});
+      return { 'error' => 'CVV2 is required' }
+        if ! $p->{'paycvv'} && $conf->exists('selfservice-onfile_require_cvv');
+      $new->paycvv( $p->{'paycvv'} )
     }
 
     $new->set( 'payby' => $p->{'auto'} ? 'CARD' : 'DCRD' );
 
-    if ( $conf->exists('selfservice-onfile_require_cvv') ){
-      return { 'error' => 'CVV2 is required' } unless $p->{'paycvv'};
-    }
-
   } elsif ( $payby =~ /^(CHEK|DCHK)$/ ) {
 
     my $payinfo;