proposed Business::OnlinePayment fraud detection API
my $transaction = Business::OnlinePayment( $gateway, 'fraud_detection' => 'preCharge', 'preCharge_id' =>, 'preCharge_security_1' => , 'preCharge_security_2 => );
Business::FraudDetect::preCharge @ISA Business::OnlinePayment::HTTPS in order to use the HTTPS base class stuff. It can be written just like a Business::OnlinePayment gateway module, with a new action "Fraud Detect". That way gateways which support internal fraud detection can just add the new action.
When passed a fraud_detection argument, Business::OnlinePayment would look for a matching Business::FraudDetect::$module and then a Business::OnlinePayment::$module, and then run a "Fraud Detect" transaction against it, then run the real transaction if the fraud detection came back okay.
The new modules should go in the Business-OnlinePayment distribution (checked into CVS for now, uploaded to CPAN upon project completion), so that an installation of Business::OnlinePayment gives you Business::FraudDetect::preCharge as well.