From 6309ab261ddcac0a07609f13744864094acb0718 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 5 Nov 2007 05:27:44 +0000 Subject: [PATCH] add process_payment_order_pkg method --- FS/FS/ClientAPI/MyAccount.pm | 26 +++++++++-- fs_selfservice/FS-SelfService/SelfService.pm | 69 ++++++++++++++-------------- 2 files changed, 56 insertions(+), 39 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; diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 061bdac7a..0c8ec8b6e 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -21,40 +21,41 @@ $socket .= '.'.$tag if defined $tag && length($tag); #maybe should ask ClientAPI for this list %autoload = ( - 'passwd' => 'passwd/passwd', - 'chfn' => 'passwd/passwd', - 'chsh' => 'passwd/passwd', - 'login' => 'MyAccount/login', - 'logout' => 'MyAccount/logout', - 'customer_info' => 'MyAccount/customer_info', - 'edit_info' => 'MyAccount/edit_info', #add to ss cgi! - 'invoice' => 'MyAccount/invoice', - 'invoice_logo' => 'MyAccount/invoice_logo', - 'list_invoices' => 'MyAccount/list_invoices', #? - 'cancel' => 'MyAccount/cancel', #add to ss cgi! - 'payment_info' => 'MyAccount/payment_info', - 'process_payment' => 'MyAccount/process_payment', - 'process_prepay' => 'MyAccount/process_prepay', - 'list_pkgs' => 'MyAccount/list_pkgs', #add to ss cgi (added?) - 'list_svcs' => 'MyAccount/list_svcs', #add to ss cgi (added?) - 'list_svc_usage' => 'MyAccount/list_svc_usage', - 'list_support_usage' => 'MyAccount/list_support_usage', - 'order_pkg' => 'MyAccount/order_pkg', #add to ss cgi! - 'change_pkg' => 'MyAccount/change_pkg', - 'order_recharge' => 'MyAccount/order_recharge', - 'cancel_pkg' => 'MyAccount/cancel_pkg', #add to ss cgi! - 'charge' => 'MyAccount/charge', #? - 'part_svc_info' => 'MyAccount/part_svc_info', - 'provision_acct' => 'MyAccount/provision_acct', - 'provision_external' => 'MyAccount/provision_external', - 'unprovision_svc' => 'MyAccount/unprovision_svc', - 'myaccount_passwd' => 'MyAccount/myaccount_passwd', - 'signup_info' => 'Signup/signup_info', - 'new_customer' => 'Signup/new_customer', - 'agent_login' => 'Agent/agent_login', - 'agent_logout' => 'Agent/agent_logout', - 'agent_info' => 'Agent/agent_info', - 'agent_list_customers' => 'Agent/agent_list_customers', + 'passwd' => 'passwd/passwd', + 'chfn' => 'passwd/passwd', + 'chsh' => 'passwd/passwd', + 'login' => 'MyAccount/login', + 'logout' => 'MyAccount/logout', + 'customer_info' => 'MyAccount/customer_info', + 'edit_info' => 'MyAccount/edit_info', #add to ss cgi! + 'invoice' => 'MyAccount/invoice', + 'invoice_logo' => 'MyAccount/invoice_logo', + 'list_invoices' => 'MyAccount/list_invoices', #? + 'cancel' => 'MyAccount/cancel', #add to ss cgi! + 'payment_info' => 'MyAccount/payment_info', + 'process_payment' => 'MyAccount/process_payment', + 'process_payment_order_pkg' => 'MyAccount/process_payment_order_pkg', + 'process_prepay' => 'MyAccount/process_prepay', + 'list_pkgs' => 'MyAccount/list_pkgs', #add to ss (added?) + 'list_svcs' => 'MyAccount/list_svcs', #add to ss (added?) + 'list_svc_usage' => 'MyAccount/list_svc_usage', + 'list_support_usage' => 'MyAccount/list_support_usage', + 'order_pkg' => 'MyAccount/order_pkg', #add to ss cgi! + 'change_pkg' => 'MyAccount/change_pkg', + 'order_recharge' => 'MyAccount/order_recharge', + 'cancel_pkg' => 'MyAccount/cancel_pkg', #add to ss cgi! + 'charge' => 'MyAccount/charge', #? + 'part_svc_info' => 'MyAccount/part_svc_info', + 'provision_acct' => 'MyAccount/provision_acct', + 'provision_external' => 'MyAccount/provision_external', + 'unprovision_svc' => 'MyAccount/unprovision_svc', + 'myaccount_passwd' => 'MyAccount/myaccount_passwd', + 'signup_info' => 'Signup/signup_info', + 'new_customer' => 'Signup/new_customer', + 'agent_login' => 'Agent/agent_login', + 'agent_logout' => 'Agent/agent_logout', + 'agent_info' => 'Agent/agent_info', + 'agent_list_customers' => 'Agent/agent_list_customers', ); @EXPORT_OK = ( keys(%autoload), qw( regionselector expselect popselector ) ); -- 2.11.0