Credit Card Validator in C#
I needed a credit card validator for a few of my projects. I found a few snippets of code throughout google, but nothing really just giving me what I needed, so I wanted to post my class. Maybe it will help others doing the same thing I did.
public class CardValidator
{
public string CardType { get; private set; }
public bool IsValid { get; private set; }
public string ResultingError { get; private set; }
public string CardNumber { get; set; }
public DateTime CardExpiration { get; set; }
public void Validate()
{
IsValid = false;
if (string.IsNullOrEmpty(CardNumber))
{
ResultingError = "Card number empty....";
return;
}
if (CardNumber.Length > 16)
{
ResultingError = "Card number too long";
return;
}
foreach (char digit in CardNumber)
{
if (!char.IsDigit(digit))
{
ResultingError = "Card number contains invalid characters";
return;
}
}
if (CardExpiration < DateTime.Now)
{
ResultingError = "Card has expired.";
return;
}
int sum = 0;
for (int i = CardNumber.Length - 1; i >= 0; i--)
{
if (i % 2 == CardNumber.Length % 2)
{
int n = int.Parse(CardNumber.Substring(i, 1)) * 2;
sum += (n / 10) + (n % 10);
}
else
{
sum += int.Parse(CardNumber.Substring(i, 1));
}
}
IsValid = (sum % 10 == 0);
if (IsValid == true)
{
switch (CardNumber.Substring(0, 1))
{
case "3":
CardType = "AMEX/Diners Club/JCB";
break;
case "4":
CardType = "VISA";
break;
case "5":
CardType = "MasterCard";
break;
case "6":
CardType = "Discover";
break;
default:
CardType = "Unknown";
break;
}
}
else
{
CardType = "Invalid";
}
}
}
Credits to http://volatile-minds.blogspot.com/2009/11/credit-card-validator-in-c.html
Sunday, November 8, 2009
Sunday, November 1, 2009
install ubuntu without cd
netboot
install bootp
vim /etc/bootptab
bootp start file
install bootp
vim /etc/bootptab
client:\
ha="00:22:15:75:BC:B1":\
ip=192.168.3.107:\
gw=192.168.3.1:\
sm=255.255.255.0:\
td=/: hd=/: bf=pxelinux.0
bootp start file
vDaemon=bootpd
vCd=/var/lib/tftpboot
Start () {
echo -n "Starting $vDaemon: default current directory is at $vCd ... :"
/usr/sbin/$vDaemon -d 4 -c $vCd >/tmp/$vDaemon.log 2>/tmp/$vDaemon.err &
sleep 1
Status
}
Stop () {
echo "Stopping $vDaemon ..."
kill `pidof $vDaemon`
}
Reload () {
if [ "`pidof $vDaemon`" ] ; then
echo "Reloading config file for $vDaemon ..."
kill -HUP "`pidof $vDaemon`"
fi
Status
}
Status () {
vPid="`pidof $vDaemon`"
if [ "$vPid" ] ; then
echo "$vDaemon running, pid=$vPid"
else
echo "$vDaemon not running"
fi
}
case "$1" in
start) Start ;;
stop) Stop ;;
reload) Reload ;;
restart) Stop ; sleep 2; Start ;;
status) Status ;;
""|*) echo `basename $0` parameter: start stop status reload or restart ;;
esac
Subscribe to:
Posts (Atom)
