From: ivan Date: Thu, 25 Jun 2009 19:47:48 +0000 (+0000) Subject: fix signups for the no-gateway-at-all case, RT#5673 X-Git-Tag: root_of_svc_elec_features~1093 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=e4a707839edd433eac3f766c6106e06842d7428e fix signups for the no-gateway-at-all case, RT#5673 --- diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm index 02aa5800b..d0ac419ec 100644 --- a/FS/FS/ClientAPI/Signup.pm +++ b/FS/FS/ClientAPI/Signup.pm @@ -286,11 +286,12 @@ sub signup_info { foreach my $payby (@{$signup_info->{payby}}) { warn "$me checking $payby payment fields\n" if $DEBUG > 1; my $hide = 0; - if (FS::payby->realtime($payby)) { + if ( FS::payby->realtime($payby) ) { my $payment_gateway = $agent->payment_gateway( 'method' => FS::payby->payby2bop($payby) ); - if ($payment_gateway->gateway_namespace eq - 'Business::OnlineThirdPartyPayment' + if ( $payment_gateway + && $payment_gateway->gateway_namespace + eq 'Business::OnlineThirdPartyPayment' ) { warn "$me hiding $payby payment fields\n" if $DEBUG > 1; $hide = 1; diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm index 5fbe2c46d..28d191a15 100644 --- a/FS/FS/agent.pm +++ b/FS/FS/agent.pm @@ -206,7 +206,10 @@ sub ticketing_queue { Returns a payment gateway object (see L) for this agent. -Currently available options are I, I, and I. +Currently available options are I, I, I, and I. + +If I is set, and no gateway is available, then the empty string +will be returned instead of throwing a fatal exception. If I is set to the number of an invoice (see L) then an attempt will be made to select a gateway suited for the taxes paid on @@ -276,8 +279,13 @@ sub payment_gateway { # agent_payment_gateway referenced payment_gateway my $conf = new FS::Conf; - die "Real-time processing not enabled\n" - unless $conf->exists('business-onlinepayment'); + unless ( $conf->exists('business-onlinepayment') ) { + if ( $options{'nofatal'} ) { + return ''; + } else { + die "Real-time processing not enabled\n"; + } + } #load up config my $bop_config = 'business-onlinepayment';