[ic] IC 5.4 Fraudulent attempts

Steve Graham icdev at mrlock.com
Sat Apr 7 12:13:13 EDT 2007


Any suggestions? Talking to self.....

Here is what I have now... seems to be working the way I need it: 
(Comments, Improvements.....)
This routine also compares the value of Country (which may be 
different than yours) We will accept international credit cards to 
accepted ship-to countries, and security verify the customers details 
after the sale......
 From recent experience, I think some sort of limit on automatic 
credit card verifications ought to be included here for the default 
IC store....... Steve

[elsif value mv_order_profile eq credit_card]
[if value country eq "US"]
   [then]
         [calc]
               $Scratch->{cc_attempts} = 0  unless defined 
$Scratch->{cc_attempts};
         [/calc]
         [perl]$Scratch->{cc_attempts}++; [/perl]

         [calc]
                 return if $Scratch->{tmp_total} == $Scratch->{tmp_remaining};
                 my $msg = sprintf "Your credit card was charged 
%.2f", $Scratch->{tmp_remaining};
                 $Scratch->{pay_cert_total} = $Scratch->{tmp_total} - 
$Scratch->{tmp_remaining};
                 $Scratch->{charge_total_message} = $msg;
                 return "Credit card will be charged 
$Scratch->{tmp_remaining}";
         [/calc]
         Country: [value country]
     [if scratch cc_attempts < 7]
         Charging with payment mode=[value mv_payment_route]
         [tmp name="charge_succeed"][charge route="[value 
mv_payment_route]" amount="[scratch tmp_remaining]" order_id="[value 
mv_transaction_id]"][/tmp]
      [else]
           [calc]
            die errmsg(
                                 "Real-time charge failed. - too many 
attempts\n",
                                 'too many failed charge attempts!',
                         );
           [/calc]
         [perl]$Session->{payment_error} = 'Too many failed attempts 
- please call in your order!'; [/perl]

       [/else]
      [/if]
         [if scratch charge_succeed]
           [set do_invoice]1[/set]
           [set do_payment]1[/set]
           Real-time charge succeeded. ID=[data session payment_id] 
amount=[scratch tmp_remaining]
          [else]
         Real-time charge FAILED. Reason: [data session payment_error]
         Failed charge count: [scratch cc_attempts]
        [calc]
                 for(qw/
                                 charge_total_message
                                 pay_cert_total
                 /)
                 {
                         delete $Scratch->{$_};
                 }
                 die errmsg(
                                 "Real-time charge failed. Reason: %s\n",
                                 errmsg($Session->{payment_error}),
                         );
         [/calc]
         [/else]
         [/if]
[/then]
[else]
Country: [value country]
Forcing Offline credit card [value mv_credit_card_type] [value 
mv_credit_card_reference].
         Payment: [value name=mv_payment set="credit_card"]
[/else]
[/if]
[/elsif]





More information about the interchange-users mailing list