# Business::FraudDetect - perldoc - [phpMan]

## NAME
    [Business::FraudDetect](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AFraudDetect/markdown) - A cohort to [Business::OnlinePayment](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown)

## 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](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown)($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](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown). See
    [Business::OnlinePayment](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown).

    The user instantiates a [Business::OnlinePayment](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown) 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 <<lawrence@cluon.com>>

    Current maintainer: Ivan Kohler <<ivan-bop@420.am>> as part of the [Business::OnlinePayment](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown)
    distribution.

## DISCLAIMER
    THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
    WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    PURPOSE.

## SEE ALSO
    [Business::OnlinePayment](https://www.chedong.com/phpMan.php/perldoc/Business%3A%3AOnlinePayment/markdown), <http://perl.business/onlinepayment>

