add process_payment_order_pkg method
authorivan <ivan>
Mon, 5 Nov 2007 05:27:44 +0000 (05:27 +0000)
committerivan <ivan>
Mon, 5 Nov 2007 05:27:44 +0000 (05:27 +0000)
FS/FS/ClientAPI/MyAccount.pm
fs_selfservice/FS-SelfService/SelfService.pm

index 592b494..058c0b8 100644 (file)
@@ -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;
index 061bdac..0c8ec8b 100644 (file)
@@ -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 ) );