| 0 comments ]


function to validate the a given credit card based on the card type and based on luhns algorithm



/**
* function to validate a given credit card based on the card type and based                    on luhns algorithm
*
* @param $c_number credit card number
* @param $c_type credit card type
* @return boolean. true or false.
*
*/


function validateCreditCard($c_number,$c_type='')
{
$cc_num = $number;
if($c_type == "American") 
    {
$denum = "American Express";
elseif($c_type == "Dinners") 
{
$denum = "Diner's Club";
elseif($c_type == "Discover") 
{
$denum = "Discover";
elseif($c_type == "Master") 
{
$denum = "Master Card";
elseif($c_type == "Visa") 
{
$denum = "Visa";
else
{
}
// checking card types and its length based on card type
if($type == "American") 
{
$pattern = "/^([34|37]{2})([0-9]{13})$/"; //American Express
if (preg_match($pattern,$cc_num)) 
{
$verified = true;
} else 
{
$verified = false;
}
elseif($type == "Dinners") 
{
$pattern = "/^([30|36|38]{2})([0-9]{12})$/"; //Diner's Club
if (preg_match($pattern,$cc_num)) 
{
$verified = true;
} else {
$verified = false;
}
elseif($type == "Discover") 
{
$pattern = "/^([6011]{4})([0-9]{12})$/"; //Discover Card
if (preg_match($pattern,$cc_num)) 
{
$verified = true;
} else {
$verified = false;
}
elseif($type == "Master") 
{
$pattern = "/^([51|52|53|54|55]{2})([0-9]{14})$/"; //Mastercard
if (preg_match($pattern,$cc_num)) 
{
$verified = true;
} else 
{
$verified = false;
}
elseif($type == "Visa") 
{
$pattern = "/^([4]{1})([0-9]{12,15})$/"; //Visa
if (preg_match($pattern,$cc_num)) 
{
$verified = true;
else 
{
$verified = false;
}
}
if($verified == false) 
{
return false;
else 
// checking the card number with luhns algorithm
$stack = 0;
$number = str_split(strrev($number), 1);
if(array_sum($number) == 0)
{
return false;
}
foreach ($number as $key => $value)
{
if ($key % 2 != 0)
{
$value = array_sum(str_split($value * 2, 1));
}
$stack += $value;
}
if($stack%10 == 0)
{
return true;
}
return false;
}
}

Sample code to use the function.

if(validateCreditCard("340000000000009","American"))
{
echo "Yeah Its a valid credit card number";
}
else
{
echo "Oops, Its not a valid credit card number";
}




0 comments

Post a Comment

Please put your comments here. your questions, your suggestions, also what went wrong with me.