X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FBilling_Realtime.pm;h=e5e5291c0abac2dafc73d7b7ca3092c8c3531150;hb=a0e00fa0547e99893c735ab3dbdacdb2bb054f5a;hp=804969b1695c7331f8a9b1d6cc85ac6dcff37668;hpb=e5d6af11f52aabe8c9e6e12ce43c3401ccf025a8;p=freeside.git diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index 804969b16..e5e5291c0 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -111,7 +111,7 @@ L for supported gateways. Required arguments in the hashref are I, and I -Available methods are: I, I and I +Available methods are: I, I, I, and I Available optional arguments are: I, I, I, I, I, I, I @@ -317,6 +317,7 @@ my %bop_method2payby = ( 'CC' => 'CARD', 'ECHECK' => 'CHEK', 'LEC' => 'LECB', + 'PAYPAL' => 'PPAL', ); sub realtime_bop { @@ -506,8 +507,13 @@ sub realtime_bop { (exists($options{'paytype'}) && $options{'paytype'}) ? uc($options{'paytype'}) : uc($self->getfield('paytype')) || 'PERSONAL CHECKING'; - $content{account_name} = $self->getfield('first'). ' '. - $self->getfield('last'); + + if ( $content{account_type} =~ /BUSINESS/i && $self->company ) { + $content{account_name} = $self->company; + } else { + $content{account_name} = $self->getfield('first'). ' '. + $self->getfield('last'); + } $content{customer_org} = $self->company ? 'B' : 'I'; $content{state_id} = exists($options{'stateid'}) @@ -612,6 +618,7 @@ sub realtime_bop { %$bop_content, 'reference' => $cust_pay_pending->paypendingnum, #for now 'callback_url' => $payment_gateway->gateway_callback_url, + 'cancel_url' => $payment_gateway->gateway_cancel_url, 'email' => $email, %content, #after ); @@ -1003,8 +1010,9 @@ sub _realtime_bop_result { } else { - my $perror = $payment_gateway->gateway_module. " error: ". - $transaction->error_message; + my $perror = $transaction->error_message; + #$payment_gateway->gateway_module. " error: ". + # removed for conciseness my $jobnum = $cust_pay_pending->jobnum; if ( $jobnum ) { @@ -1102,7 +1110,11 @@ sub _realtime_bop_result { } $cust_pay_pending->status('done'); - $cust_pay_pending->statustext("declined: $perror"); + $cust_pay_pending->statustext($perror); + #'declined:': no, that's failure_status + if ( $transaction->can('failure_status') ) { + $cust_pay_pending->failure_status( $transaction->failure_status ); + } my $cpp_done_err = $cust_pay_pending->replace; if ( $cpp_done_err ) { my $e = "WARNING: $options{method} declined but pending payment not ".