changes to support PayPal, #22395
[freeside.git] / fs_selfservice / FS-SelfService / cgi / selfservice.cgi
old mode 100644 (file)
new mode 100755 (executable)
index 58f2d0f..40fe98a
@@ -476,7 +476,21 @@ sub process_order_recharge {
 }
 
 sub make_payment {
-  payment_info( 'session_id' => $session_id );
+
+  my $payment_info = payment_info( 'session_id' => $session_id );
+
+  my $tr_amount_fee = mason_comp(
+    'session_id' => $session_id,
+    'comp'       => '/elements/tr-amount_fee.html',
+    'args'       => [ 'amount' => $payment_info->{'balance'},
+                    ],
+  );
+
+  $tr_amount_fee = $tr_amount_fee->{'error'} || $tr_amount_fee->{'output'};
+
+  $payment_info->{'tr_amount_fee'} = $tr_amount_fee;
+
+  $payment_info;
 }
 
 sub payment_results {
@@ -493,7 +507,7 @@ sub payment_results {
 
   my $payinfo = $cgi->param('payinfo');
   $payinfo =~ s/[^\dx]//g;
-  $payinfo =~ /^([\dx]{13,16})$/
+  $payinfo =~ /^([\dx]{13,16}|[\dx]{8,9})$/
     #or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
     or die "illegal card"; #!!!
   $payinfo = $1;
@@ -653,12 +667,15 @@ sub make_thirdparty_payment {
 }
 
 sub post_thirdparty_payment {
-  $cgi->param('payby_method') =~ /^(CC|ECHECK)$/
+  $cgi->param('payby_method') =~ /^(CC|ECHECK|PAYPAL)$/
     or die "illegal payby method";
   my $method = $1;
   $cgi->param('amount') =~ /^(\d+(\.\d*)?)$/
     or die "illegal amount";
   my $amount = $1;
+  # realtime_collect() returns the result from FS::cust_main->realtime_collect
+  # which returns realtime_bop()
+  # which returns a hashref of popup_url, collectitems, and reference
   my $result = realtime_collect( 
     'session_id' => $session_id,
     'method' => $method, 
@@ -722,7 +739,7 @@ sub provision_svc {
 
   my $result = part_svc_info(
     'session_id' => $session_id,
-    map { $_ => $cgi->param($_) } qw( pkgnum svcpart ),
+    map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum ),
   );
   die $result->{'error'} if exists $result->{'error'} && $result->{'error'};
 
@@ -756,7 +773,7 @@ sub process_svc_phone {
            'session_id' => $session_id,
            'bulkdid' => [ @bulkdid ],
            'countrycode' => '1',
-            map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum )
+            map { $_ => $cgi->param($_) } qw( pkgnum svcpart phonenum svcnum email forwarddst )
        );
     }
 
@@ -765,7 +782,7 @@ sub process_svc_phone {
        return {
          $cgi->Vars,
          %{ part_svc_info( 'session_id' => $session_id,
-                        map { $_ => $cgi->param($_) } qw( pkgnum svcpart )
+                        map { $_ => $cgi->param($_) } qw( pkgnum svcpart svcnum )
              )
          },
          'error' => $result->{'error'},
@@ -829,7 +846,7 @@ sub real_port_graph {
            'session_id'  => $session_id,
            'svcnum'      => $svcnum,
            'beginning'   => str2time($cgi->param('start')." 00:00:00"),
-           'ending'    => str2time($cgi->param('end')." 23:59:59"),
+           'ending'      => str2time($cgi->param('end')  ." 23:59:59"),
            );
     my @usage = @{$res->{'usage'}};
     my $png = $usage[0]->{'png'};
@@ -859,6 +876,7 @@ sub view_cdr_details {
     'svcnum'      => $cgi->param('svcnum'),
     'beginning'   => $cgi->param('beginning') || '',
     'ending'      => $cgi->param('ending') || '',
+    'inbound'     => $cgi->param('inbound') || 0,
   );
 }