protected string PadCardLast4(Enums.CreditCardType cardType, string last4) { string retVal = string.Empty; switch (cardType) { case Enums.CreditCardType.AmericanExpress: case Enums.CreditCardType.Discover: case Enums.CreditCardType.MasterCard: case Enums.CreditCardType.Visa: retVal = "XXXXXXXXXXXX" + last4; break; case Enums.CreditCardType.Unknown: default: break; } return(retVal); }
private Enums.CreditCardType ValidateCardNumber(string sCardNumber) { string cardNum = sCardNumber.Replace(" ", ""); Enums.CreditCardType retVal = Enums.CreditCardType.Unknown; //validate the type of card is accepted if (cardNum.StartsWith("4") == true && (cardNum.Length == 13 || cardNum.Length == 16)) { //VISA retVal = Enums.CreditCardType.Visa; } else if ((cardNum.StartsWith("51") == true || cardNum.StartsWith("52") == true || cardNum.StartsWith("53") == true || cardNum.StartsWith("54") == true || cardNum.StartsWith("55") == true) && cardNum.Length == 16) { //MasterCard retVal = Enums.CreditCardType.MasterCard; } else if ((cardNum.StartsWith("34") == true || cardNum.StartsWith("37") == true) && cardNum.Length == 15) { //Amex retVal = Enums.CreditCardType.AmericanExpress; } //else if ((cardNum.StartsWith("300") == true || // cardNum.StartsWith("301") == true || // cardNum.StartsWith("302") == true || // cardNum.StartsWith("304") == true || // cardNum.StartsWith("305") == true || // cardNum.StartsWith("36") == true || // cardNum.StartsWith("38") == true) && // cardNum.Length == 14) //{ // //Diners Club/Carte Blanche // retVal = Enums.CreditCardType.DinersClub; //} else if (cardNum.StartsWith("6011") == true && cardNum.Length == 16) { //Discover retVal = Enums.CreditCardType.Discover; } if (retVal != Enums.CreditCardType.Unknown) { int[] DELTAS = new int[] { 0, 1, 2, 3, 4, -4, -3, -2, -1, 0 }; int checksum = 0; char[] chars = cardNum.ToCharArray(); for (int i = chars.Length - 1; i > -1; i--) { int j = ((int)chars[i]) - 48; checksum += j; if (((i - chars.Length) % 2) == 0) { checksum += DELTAS[j]; } } if ((checksum % 10) != 0) { retVal = Enums.CreditCardType.Unknown; } } return(retVal); }