Business::OnlinePaymet fix for processors w/o order numbers, like VirtualNet
[freeside.git] / FS / FS / cust_bill.pm
index fd79f23..d49657e 100644 (file)
@@ -674,14 +674,17 @@ sub realtime_card {
 
   if ( $transaction->is_success() && $action2 ) {
     my $auth = $transaction->authorization;
-    my $ordernum = $transaction->order_number;
+    my $ordernum = $transaction->can('order_number')
+                   ? $transaction->order_number
+                   : '';
 
     #warn "********* $auth ***********\n";
     #warn "********* $ordernum ***********\n";
     my $capture =
       new Business::OnlinePayment( $bop_processor, @bop_options );
 
-    $capture->content(
+    my %capture = (
+      type           => 'CC',
       action         => $action2,
       login          => $bop_login,
       password       => $bop_password,
@@ -689,8 +692,18 @@ sub realtime_card {
       amount         => $amount,
       authorization  => $auth,
       description    => $description,
+      card_number    => $cust_main->payinfo,
+      expiration     => $exp,
     );
 
+    foreach my $field (qw( authorization_source_code returned_ACI                                          transaction_identifier validation_code           
+                           transaction_sequence_num local_transaction_date    
+                           local_transaction_time AVS_result_code          )) {
+      $capture{$field} = $transaction->$field() if $transaction->can($field);
+    }
+
+    $capture->content( %capture );
+
     $capture->submit();
 
     unless ( $capture->is_success ) {
@@ -1101,7 +1114,7 @@ sub print_text {
 
 =head1 VERSION
 
-$Id: cust_bill.pm,v 1.40 2002-08-30 23:48:43 ivan Exp $
+$Id: cust_bill.pm,v 1.42 2002-09-10 03:31:00 ivan Exp $
 
 =head1 BUGS