SYNOPSIS
my %processor_info = ( fraud_detection => 'preCharge',
maximum_fraud_score => 500,
preCharge_id => '1000000000000001',
preCharge_security1 => 'abcdef0123',
preCharge_security2 => '3210fedcba',
)
my $transaction = new Business::OnlinePayment($processor, %processor_info);
$transaction->content(
type => 'Visa',
amount => '49.95',
cardnumber => '1234123412341238',
expiration => '0100',
name => 'John Q Doe',
);
$transaction->submit();
if($transaction->is_success()) {
print "Card processed successfully: ".$transaction->authorization()."\n";
} else {
print "Card was rejected: ".$transaction->error_message()."\n";
}
DESCRIPTION
This is a module that adds functionality to Business::OnlinePayment. See Business::OnlinePayment.The user instantiates a Business::OnlinePayment object per usual, adding in three processor directives
-
fraud_detection
Which Fraud Detection module to use.
-
maximum_fraud_score
FraudDetection drivers are expected to return a numeric ``risk'' factor, this parameter allows you to set the threshold to reject the transaction based on that risk. Higher numbers are ``riskier'' transactions.
-
other driver-specific parameters.
Consult the specific Fraud Detection module you intend to use for its required parameters.
The $tx->submit() method is overridden to interpose a FraudDetection phase. A subordinate object is created using the same content as the parent OnlinePayment object, and a Fraud Detect action is run against that subordinate object. If the resulting fraud score is less than or equal to the maximum_risk parameter, the parent transaction will be allowed to proceed. Otherwise, a failure state will exist with a suitable error message.
METHODS
This module provides no new methods. It does, however override the submit method to interpose an additional Fraud Detection phase.AUTHORS
Original author: Lawrence Statton <[email protected]>Current maintainer: Ivan Kohler <[email protected]> as part of the Business::OnlinePayment distribution.