Validación de Tarjetas de Crédito en C# - MasterCard
MasterCard
- Características:
- Prefijos de cuentas que empiezan por: 51, 52, 53, 54, 55
- Tamaño mínimo: 16
- Tamaño máximo: 19
- Código de las características en C#:
public struct CreditCardValidationType
{
public struct MasterCard
{
public static int[] StartWith => new[] {51, 52, 53, 54, 55};
public static int? MinLength => 16;
public static int? MaxLength => 19;
}
}
- Código de verificación en C#:
public class MasterCardValidationRule : IValidationRule
{
public bool IsValid(string input)
{
if (string.IsNullOrEmpty(input)) return false;
StringBuilder digitsOnly = new StringBuilder();
input.ForEach(c =>
{
if (Char.IsDigit(c)) digitsOnly.Append(c);
});
var creditCardNumber = digitsOnly.ToString();
var checkCreditCard = LuhnAlgorithm.CheckCreditCard(creditCardNumber);
if (!checkCreditCard) return false;
if (!CreditCardValidationType.MasterCard.StartWith.Any(c => creditCardNumber.StartsWith(c.ToString())))
return false;
if (CreditCardValidationType.MasterCard.MinLength != null)
{
if (creditCardNumber.Length != CreditCardValidationType.MasterCard.MinLength &&
creditCardNumber.Length != CreditCardValidationType.MasterCard.MaxLength)
{
return false;
}
}
else
{
if (creditCardNumber.Length != CreditCardValidationType.MasterCard.MaxLength) return false;
}
return true;
}
}
Comentarios
Publicar un comentario