return svcnum from order_pkg, RT#9906
[freeside.git] / FS / FS / ClientAPI / MyAccount.pm
index 64c9421..5ecb71b 100644 (file)
@@ -632,7 +632,7 @@ sub process_payment {
     validate($payinfo)
       or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo
     return { 'error' => gettext('unknown_card_type') }
-      if cardtype($payinfo) eq "Unknown";
+      if $payinfo !~ /^99\d{14}$/ && cardtype($payinfo) eq "Unknown";
 
     if ( length($p->{'paycvv'}) && $p->{'paycvv'} !~ /^\s*$/ ) {
       if ( cardtype($payinfo) eq 'American Express card' ) {
@@ -683,7 +683,7 @@ sub process_payment {
                     stateid stateid_state );
       $new->set( 'payby' => $p->{'auto'} ? 'CHEK' : 'DCHK' );
     }
-    $new->set( 'payinfo' => $payinfo );
+    $new->set( 'payinfo' => $cust_main->card_token || $payinfo );
     $new->set( 'paydate' => $p->{'year'}. '-'. $p->{'month'}. '-01' );
     my $error = $new->replace($cust_main);
     if ( $error ) {
@@ -1181,6 +1181,7 @@ sub order_pkg {
       'svc_domain'   => [ qw( domain ) ],
       'svc_phone'    => [ qw( phonenum pin sip_password phone_name ) ],
       'svc_external' => [ qw( id title ) ],
+      'svc_pbx'      => [ qw( id name ) ],
     );
   
     my $svc_x = "FS::$svcdb"->new( {
@@ -1237,7 +1238,9 @@ sub order_pkg {
     $cust_pkg->reexport;
   }
 
-  return { error => '', pkgnum => $cust_pkg->pkgnum };
+  my $svcnum = $svc[0] ? $svc[0]->svcnum : '';
+
+  return { error=>'', pkgnum=>$cust_pkg->pkgnum, svcnum=>$svcnum };
 
 }