X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FSignup.pm;h=595f4fb405031a8e511c03391a8b353d256343a6;hb=aed8ec35ccb9cdeb7ea0cb6ff2946f9d83d582f6;hp=50b0b5df04a8900d30baf85ff1b69f3dfccba25b;hpb=8cec20dd7f69a3fb7b6a5e6a853747833e8a7784;p=freeside.git diff --git a/FS/FS/ClientAPI/Signup.pm b/FS/FS/ClientAPI/Signup.pm index 50b0b5df0..595f4fb40 100644 --- a/FS/FS/ClientAPI/Signup.pm +++ b/FS/FS/ClientAPI/Signup.pm @@ -22,6 +22,7 @@ use FS::acct_snarf; use FS::queue; use FS::reg_code; use FS::payby; +use FS::banned_pay; $DEBUG = 0; $me = '[FS::ClientAPI::Signup]'; @@ -562,6 +563,7 @@ sub new_customer { payinfo paycvv paydate payname paystate paytype paystart_month paystart_year payissue payip + override_ban_warn referral_custnum comments ) @@ -586,7 +588,8 @@ sub new_customer { unless grep { $_ eq $packet->{'payby'} } $conf->config('signup_server-payby'); - if (FS::payby->realtime($packet->{payby})) { + if (FS::payby->realtime($packet->{payby}) + and not $conf->exists('signup_server-third_party_as_card')) { my $payby = $packet->{payby}; my $agent = qsearchs('agent', { 'agentnum' => $agentnum }); @@ -806,6 +809,18 @@ sub new_customer { $error = $placeholder->delete; return { 'error' => $error } if $error; + if ( $conf->exists('signup-duplicate_cc-warn_hours') ) { + my $hours = $conf->config('signup-duplicate_cc-warn_hours'); + my $ban = new FS::banned_pay $cust_main->_new_banned_pay_hashref; + $ban->end_date( int( time + $hours*3600 ) ); + $ban->bantype('warn'); + $ban->reason('signup-duplicate_cc-warn_hours'); + $error = $ban->insert; + warn "WARNING: error inserting temporary banned_pay for ". + " signup-duplicate_cc-warn_hours (proceeding anyway): $error" + if $error; + } + my %return = ( 'error' => '', 'signup_service' => $svc_x, 'custnum' => $cust_main->custnum, @@ -903,8 +918,8 @@ sub capture_payment { return { error => '_decline', bill_error => $bill_error }; } - if ($cust_pay_pending->status ne 'pending') { - my $bill_error = "Payment with id $paypendingnum is not pending, but ". + if ($cust_pay_pending->status ne 'thirdparty') { + my $bill_error = "Payment with id $paypendingnum is not thirdparty, but ". $cust_pay_pending->status. "; Transaction aborted."; return { error => '_decline', bill_error => $bill_error }; }