summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2008-07-02 02:55:49 +0000
committerivan <ivan>2008-07-02 02:55:49 +0000
commit9099272c0d3fa55ddcb9e0f8f42c93bb79a83fdc (patch)
tree8c92d3d312e5886ebc97ce23fa206ddb4e36a269 /FS
parentebd720750b01ea3fbdef6f09dd1446771b56f672 (diff)
fix errors paying with an on-file card through self-service
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm10
1 files changed, 6 insertions, 4 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 099affa..395450b 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -420,6 +420,7 @@ sub process_payment {
or return { 'error' => "illegal_payby " . $p->{'payby'} };
my $payby = $1;
+ #false laziness w/process/payment.cgi
my $payinfo;
my $paycvv = '';
if ( $payby eq 'CHEK' || $payby eq 'DCHK' ) {
@@ -438,14 +439,15 @@ sub process_payment {
} elsif ( $payby eq 'CARD' || $payby eq 'DCRD' ) {
$payinfo = $p->{'payinfo'};
- $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;
+ $payinfo =~ s/\D//g;
+ $payinfo =~ /^(\d{13,16})$/
+ or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo
+ $payinfo = $1;
+
validate($payinfo)
or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo
return { 'error' => gettext('unknown_card_type') }