$self->payinfo($new_account.'@'.$new_aba);
}
- # don't preserve paycvv if it was passed blank and payinfo changed
- unless ( $self->payby =~ /^(CARD|DCRD)$/
- && $old->payinfo ne $self->payinfo
- && $old->paymask ne $self->paymask
- && $self->paycvv =~ /^\s*$/ )
- {
- if ( length($old->paycvv) && $self->paycvv =~ /^\s*[\*x]*\s*$/ ) {
+ # only unmask paycvv if payinfo stayed the same
+ if ( $self->payby =~ /^(CARD|DCRD)$/ and $self->paycvv =~ /^\s*[\*x]+\s*$/ ) {
+ if ( $old->payinfo eq $self->payinfo
+ && $old->paymask eq $self->paymask
+ ) {
$self->paycvv($old->paycvv);
+ } else {
+ $self->paycvv('');
}
}
'CARD' => 'DCRD',
'CHEK' => 'DCHK',
);
+ # the payby selector gives the choice of CARD or CHEK (or others, but
+ # those are the ones with auto and on-demand versions). if the user didn't
+ # choose a weight, then they mean DCRD/DCHK.
$hashref->{payby} = $noauto{$hashref->{payby}}
if ! $hashref->{weight} && exists $noauto{$hashref->{payby}};