X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main.pm;h=d437db69481a102e8dd74e6cbc898d230fdd810e;hb=fce19eeca97b74dbc3706da931d6cdf4bf7f0337;hp=f6270e1d41e7e62f8b85843a76ff723cf496163e;hpb=587f0384fb03179f6b504daeada93e193d2ea27f;p=freeside.git diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index f6270e1d4..d437db694 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -21,6 +21,7 @@ use Date::Parse; use String::Approx qw(amatch); use Business::CreditCard 0.28; use Locale::Country; +use Data::Dumper; use FS::UID qw( getotaker dbh ); use FS::Record qw( qsearchs qsearch dbdef ); use FS::Misc qw( send_email ); @@ -2767,6 +2768,42 @@ sub realtime_bop { my $perror = "$processor error: ". $transaction->error_message; + unless ( $transaction->error_message ) { + + my $t_response; + #this should be normalized :/ + # + # bad, ad-hoc B:OP:PayflowPro "transaction_response" BS + if ( $transaction->can('param') + && $transaction->param('transaction_response') ) { + $t_response = $transaction->param('transaction_response') + + # slightly better, ad-hoc B:OP:TransactionCentral without "param" + } elsif ( $transaction->can('response_page') ) { + $t_response = { + 'page' => ( $transaction->can('response_page') + ? $transaction->response_page + : '' + ), + 'code' => ( $transaction->can('response_code') + ? $transaction->response_code + : '' + ), + 'headers' => ( $transaction->can('response_headers') + ? $transaction->response_headers + : '' + ), + }; + } else { + $t_response .= + "No additional debugging information available for $processor"; + } + + $perror .= "No error_message returned from $processor -- ". + ( ref($t_response) ? Dumper($t_response) : $t_response ); + + } + if ( !$options{'quiet'} && !$realtime_bop_decline_quiet && $conf->exists('emaildecline') && grep { $_ ne 'POST' } $self->invoicing_list