diff options
author | ivan <ivan> | 2007-11-05 05:27:44 +0000 |
---|---|---|
committer | ivan <ivan> | 2007-11-05 05:27:44 +0000 |
commit | 6309ab261ddcac0a07609f13744864094acb0718 (patch) | |
tree | f9ffb31d4990698bc83c81252bc787be8f536728 /FS | |
parent | 6175f114362b87bbebedde79018bd99589c4c431 (diff) |
add process_payment_order_pkg method
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 592b4940f..058c0b824 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -297,14 +297,14 @@ sub payment_info { if ( $cust_main->payby =~ /^(CARD|DCRD)$/ ) { $return{card_type} = cardtype($cust_main->payinfo); - $return{payinfo} = $cust_main->payinfo; + $return{payinfo} = $cust_main->paymask; @return{'month', 'year'} = $cust_main->paydate_monthyear; } if ( $cust_main->payby =~ /^(CHEK|DCHK)$/ ) { - my ($payinfo1, $payinfo2) = split '@', $cust_main->payinfo; + my ($payinfo1, $payinfo2) = split '@', $cust_main->paymask; $return{payinfo1} = $payinfo1; $return{payinfo2} = $payinfo2; $return{paytype} = $cust_main->paytype; @@ -354,21 +354,28 @@ sub process_payment { my $paycvv = ''; if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) { - $p->{'payinfo1'} =~ /^(\d+)$/ + $p->{'payinfo1'} =~ /^([\dx]+)$/ or return { 'error' => "illegal account number ". $p->{'payinfo1'} }; my $payinfo1 = $1; - $p->{'payinfo2'} =~ /^(\d+)$/ + $p->{'payinfo2'} =~ /^([\dx]+)$/ or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} }; my $payinfo2 = $1; $payinfo = $payinfo1. '@'. $payinfo2; + + $payinfo = $cust_main->payinfo + if $cust_main->paymask eq $payinfo; } elsif ( $payby eq 'CARD' || $payby eq 'DCRD' ) { $payinfo = $p->{'payinfo'}; - $payinfo =~ s/\D//g; + $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; + validate($payinfo) or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo return { 'error' => gettext('unknown_card_type') } @@ -432,6 +439,15 @@ sub process_payment { } +sub process_payment_order_pkg { + my $p = shift; + + my $hr = process_payment($p); + return $hr if $hr->{'error'}; + + order_pkg($p); +} + sub process_prepay { my $p = shift; |