diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2016-05-13 00:19:21 -0500 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2016-05-13 00:19:21 -0500 |
commit | 093747609fc543f09353f32c0ff0a1d47925dafc (patch) | |
tree | 13320162b1e006365d56998275141a0d6b0cc845 /FS/FS/cust_payby.pm | |
parent | 12a1fd3b75876dd3ec5449bc87fd8313da1b750b (diff) |
RT#42394: paycvv during cust_payby replace (v4+ only)
Diffstat (limited to 'FS/FS/cust_payby.pm')
-rw-r--r-- | FS/FS/cust_payby.pm | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm index 5bfb4af3f..fd75567e6 100644 --- a/FS/FS/cust_payby.pm +++ b/FS/FS/cust_payby.pm @@ -196,10 +196,6 @@ sub replace { ? shift : $self->replace_old; - if ( length($old->paycvv) && $self->paycvv =~ /^\s*[\*x]*\s*$/ ) { - $self->paycvv($old->paycvv); - } - if ( $self->payby =~ /^(CARD|DCRD)$/ && ( $self->payinfo =~ /xx/ || $self->payinfo =~ /^\s*N\/A\s+\(tokenized\)\s*$/ @@ -221,6 +217,17 @@ sub replace { $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*$/ ) { + $self->paycvv($old->paycvv); + } + } + local($ignore_expired_card) = 1 if $old->payby =~ /^(CARD|DCRD)$/ && $self->payby =~ /^(CARD|DCRD)$/ |