User Guide

Table Of Contents
Fraud Management Filters June 23, 2009 39
Customizing Websites to use Fraud Management Filters
Handling FMF Errors in Payment API Operations
...
if (DPRes.Ack == AckCodeType.Success) // No error
{
// Run success code
// Let buyer know, mark the order as complete in database, etc.
}
else if (DPRes.Ack == AckCodeType.SuccessWithWarning) // May be pended
{
// Test for pended transaction
bool isFMFPended = false;
for (int z = 0; z < DPRes.Errors.Length; z++)
{
if (DPRes.Errors[z].ErrorCode == "11610")
{
isFMFPended = true; // Transaction was pended
}
}
if (isFMFPended == true)
{
// Keep information about filters causing transaction to be pended
if (DPRes.FMFDetails.PendingFilters != null)
{
for (int x = 0; x < DPRes.FMFDetails.PendingFilters.Length; x++)
{
// Useful information to be kept:
// DPRes.FMFDetails.PendingFilters[x].Description;
// DPRes.FMFDetails.PendingFilters[x].Id;
// DPRes.FMFDetails.PendingFilters[x].Name;
}
}
}
}
else if (DPRes.Ack == AckCodeType.Failure ||
DPRes.Ack == AckCodeType.FailureWithWarning) // Definite failure
{
// Test for denied transaction
bool isFMFDenied = false;
for (int z = 0; z < DPRes.Errors.Length; z++)
{
if (DPRes.Errors[z].ErrorCode == "11611")
{
isFMFDenied = true; // Denied by FMF
}
}
if (isFMFDenied == true)
{
// Keep information about filters causing transaction to be denied
if (DPRes.FMFDetails.DenyFilters != null)
{
for (int x = 0; x < DPRes.FMFDetails.DenyFilters.Length; x++)