Result Objects
Note
API calls that don't have validations, such as searches, will return
a collection of requested objectsinstead of a result object.
Success results
If the API call was successful, the `IsSuccess()` on the result will return
{true}.
- C#
bool success = result.IsSuccess();
Transaction transaction = result.Target;
- C#
Result<customer> customerResult = gateway.Customer.Create(new CustomerRequest()); Customer customer = customerResult.Target; Result<transaction> transactionResult = gateway.Transaction.Sale( new TransactionRequest() ); Transaction transaction = transactionResult.Target;
Error results
If the API call was not successful, the success on the result will return
{false}. An error may be due to:
- A validation error caused by invalid parameters
- A processor decline or gateway rejection
- Other exceptional conditions
- C#
if (!result.IsSuccess()) {
ValidationErrors errors = result.Errors;
}
- C#
var request = new CustomerRequest {
Email = "invalid_email",
CreditCard = new CreditCardRequest {
Number = "not_numeric"
}
};
Result<customer> result = gateway.Customer.Create(request);
foreach (ValidationError error in result.Errors.DeepAll()) {
Console.WriteLine(error.Attribute);
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
var customerErrors = result.Errors.ForObject("Customer");
foreach (ValidationError error in customerErrors.All()) {
Console.WriteLine(error.Attribute);
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
var creditCardErrors = customerErrors.ForObject("CreditCard");
foreach (ValidationError error in creditCardErrors.All()) {
Console.WriteLine(error.Attribute);
Console.WriteLine(error.Code);
Console.WriteLine(error.Message);
}
Message
The message on the error result gives a human-readable description of what went wrong,
regardless of the cause and nature of the error.
- C#
Console.WriteLine(result.Message); // "Amount is required.\nCredit card number is invalid."
Note
This was added in version {{sdkVersionForDate "Jul09_2010"}}
Params
Error results include the parameters that were submitted. This can be useful during
Transparent Redirects to repopulate your form if validations fail.
- C#
foreach (var param in result.Parameters) {
Console.WriteLine(param.Key + "=" + param.Value);
} // transaction[type]=sale // transaction[amount]=1000 // transaction[credit_card][expiration_date]=05/2012