[ic] Preventing non-US orders from using realtimeprocessing
Steve Graham
icdev at mrlock.com
Wed Jun 21 14:50:26 EDT 2006
>
>Test at your own risk.....
There was some error in the nested [then] [/then] statement in the
previous code - I removed it and the following code has been working well...
[elsif variable MV_PAYMENT_MODE]
[if value country eq "US"]
[then]
[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]
Charging with payment mode=[var MV_PAYMENT_MODE]
[tmp name="charge_succeed"][charge route="[var
MV_PAYMENT_MODE]" amount="[scratch tmp_remaining]" order_id="[value
mv_transaction_id]"][/tmp]
[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]
[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]
As before,
- Test at your own risk
If anyone else has come up with a similar solution, I'd like to compare notes.
-Steve
More information about the interchange-users
mailing list