diff options
author | ivan <ivan> | 2008-03-01 23:30:44 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-03-01 23:30:44 +0000 |
commit | c21f9fadde9100aedb8c4cfc35629bc3294ba91e (patch) | |
tree | cd24df303dce5aaed107a9d0b1100a247a274c0c /FS/FS/payinfo_Mixin.pm | |
parent | 4f6170e806c20e9de9ce26b195d7f2e58b04a404 (diff) |
added a config value to control the extent of credit card masking, but since cust_main.paymask is in the db, need something to update it for all existing customers too
Diffstat (limited to 'FS/FS/payinfo_Mixin.pm')
-rw-r--r-- | FS/FS/payinfo_Mixin.pm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/FS/FS/payinfo_Mixin.pm b/FS/FS/payinfo_Mixin.pm index 2d7b4ff..15c4e39 100644 --- a/FS/FS/payinfo_Mixin.pm +++ b/FS/FS/payinfo_Mixin.pm @@ -160,10 +160,16 @@ sub mask_payinfo { } else { # if not, mask it... if ($payby eq 'CARD' || $payby eq 'DCRD' || $payby eq 'MCRD') { - # Credit Cards (Show first and last four) - $paymask = substr($payinfo,0,6). - 'x'x(length($payinfo)-10). - substr($payinfo,(length($payinfo)-4)); + # Credit Cards + my $conf = new FS::Conf; + my $mask_method = $conf->config('card_masking_method') || 'first6last4'; + $mask_method =~ /^first(\d+)last(\d+)$/ + or die "can't parse card_masking_method $mask_method"; + my($first, $last) = ($1, $2); + + $paymask = substr($payinfo,0,$first). + 'x'x(length($payinfo)-$first-$last). + substr($payinfo,(length($payinfo)-$last)); } elsif ($payby eq 'CHEK' || $payby eq 'DCHK' ) { # Checks (Show last 2 @ bank) my( $account, $aba ) = split('@', $payinfo ); |