diff options
| author | ivan <ivan> | 2007-11-05 05:27:49 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2007-11-05 05:27:49 +0000 | 
| commit | 24124c9ce42fd848e53e18b5f2f09df6a6a2a735 (patch) | |
| tree | 3f0278fbdc2a61d5e506a1bbfadec8632323bee3 | |
| parent | 1fde795a0f53b498959353c9be619a43a141fdf8 (diff) | |
add process_payment_order_pkg method
| -rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 26 | ||||
| -rw-r--r-- | fs_selfservice/FS-SelfService/SelfService.pm | 67 | 
2 files changed, 55 insertions, 38 deletions
| diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index edb26ef8a..c9ab5bf7e 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -273,14 +273,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; @@ -331,21 +331,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') } @@ -409,6 +416,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 6bf3ad2eb..95a14315c 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -21,39 +21,40 @@ $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',    -  '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',    +  '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 ) ); | 
