这篇文章主要为大家详细介绍了php 一个通用信用卡验证类,具有一定的参考价值,可以用来参考一下。
对一个通用的信用卡验证php类感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
/**
* 一个通用的信用卡验证php类
*
* @param
* @arrange 512-笔记网: www.q1010.com
**/
function CCValidationSolution ($Number) {
global $CardName;
# 1) Get rid of spaces and non-numeric characters.
$Number = OnlyNumericSolution($Number);
# 2) Do the first four digits fit within proper ranges?
# If so, who's the card issuer and how long should the number be?
$NumberLeft = substr($Number, 0, 4);
$NumberLength = strlen($Number);
if ($NumberLeft >= 3000 and $NumberLeft <= 3059) {
$CardName = "Diners Club";
$ShouldLength = 14;
} elseif ($NumberLeft >= 3600 and $NumberLeft <= 3699) {
$CardName = "Diners Club";
$ShouldLength = 14;
} elseif ($NumberLeft >= 3800 and $NumberLeft <= 3889) {
$CardName = "Diners Club";
$ShouldLength = 14;
} elseif ($NumberLeft >= 3400 and $NumberLeft <= 3499) {
$CardName = "American Express";
$ShouldLength = 15;
} elseif ($NumberLeft >= 3700 and $NumberLeft <= 3799) {
$CardName = "American Express";
$ShouldLength = 15;
} elseif ($NumberLeft >= 3528 and $NumberLeft <= 3589) {
$CardName = "JCB";
$ShouldLength = 16;
} elseif ($NumberLeft >= 3890 and $NumberLeft <= 3899) {
$CardName = "Carte Blache";
$ShouldLength = 14;
} elseif ($NumberLeft >= 4000 and $NumberLeft <= 4999) {
$CardName = "Visa";
if ($NumberLength > 14) {
$ShouldLength = 16;
} elseif ($NumberLength < 14) {
$ShouldLength = 13;
} else {
echo "<br /><em>The Visa number entered, $Number, in is 14 digits long.<br />Visa cards usually have 16 digits, though some have 13.<br />Please check the number and try again.</em><br />n";
return FALSE;
}
} elseif ($NumberLeft >= 5100 and $NumberLeft <= 5599) {
$CardName = "MasterCard";
$ShouldLength = 16;
} elseif ($NumberLeft == 5610) {
$CardName = "Australian BankCard";
$ShouldLength = 16;
} elseif ($NumberLeft == 6011) {
$CardName = "Discover/Novus";
$ShouldLength = 16;
} else {
echo "<br /><em>The first four digits of the number entered are $NumberLeft. <br />If that's correct, we don't accept that type of credit card.<br />If it's wrong, please try again.</em><br />n";
return FALSE;
}
# 3) Is the number the right length?
if ($NumberLength <> $ShouldLength) {
$Missing = $NumberLength - $ShouldLength;
if ($Missing < 0) {
echo "<br /><em>The $CardName number entered, $Number, is missing " . abs($Missing) . " digit(s).<br />Please check the number and try again.</em><br />n";
} else {
echo "<br /><em>The $CardName number entered, $Number, has $Missing too many digit(s).<br />Please check the number and try again.</em><br />n";
}
return FALSE;
}
# 4) Does the number pass the Mod 10 Algorithm Checksum?
if (Mod10Solution($Number) == TRUE) {
return TRUE;
} else {
echo "<br /><em>The $CardName number entered, $Number, is invalid.<br />Please check the number and try again.</em><br />n";
return FALSE;
}
}
function OnlyNumericSolution ($Number) {
# Remove any non numeric characters.
# Ensure number is no more than 19 characters long.
return substr( ereg_replace( "[^0-9]", "", $Number) , 0, 19);
}
function Mod10Solution ($Number) {
$NumberLength = strlen($Number);
$Checksum = 0;
# Add even digits in even length strings
# or odd digits in odd length strings.
for ($Location = 1 - ($NumberLength % 2); $Location < $NumberLength; $Location += 2) {
$Checksum += substr($Number, $Location, 1);
}
# Analyze odd digits in even length strings
# or even digits in odd length strings.
for ($Location = ($NumberLength % 2); $Location < $NumberLength; $Location += 2) {
$Digit = substr($Number, $Location, 1) * 2;
if ($Digit < 10) {
$Checksum += $Digit;
} else {
$Checksum += $Digit - 9;
}
}
# Is the checksum divisible by ten?
return ($Checksum % 10 == 0);
}
# ----------- BEGIN SAMPLE USER INTERFACE SECTION ------------
#
# This section provides a simple sample user interface for the
# Credit Card Validation functions. It generates an HTML form
# where you enter a card number to check.
#
# If a number has been posted by the form, check it.
if ( isset($Number) ) {
# Get rid of spaces and non-numeric characters in posted
# numbers so they display correctly on the input form.
$Number = OnlyNumericSolution($Number);
if (CCValidationSolution($Number) == TRUE) {
echo "<br />The $CardName number entered, $Number, <em>is</em> valid.<br />n";
}
} else {
$Number = "";
}
# Setup an input form. Posting it calls this page again.
echo "<form method="post" action="$REQUEST_URI">n";
echo "<br />Credit Card Number: <input type="text" name="Number" value="$Number">n";
echo "<input type="Submit" name="submitr" value="Check its Validity">n";
echo "</form><br />n";
/*** 来自四海网(www.q1010.com) ***/
本文来自:http://www.q1010.com/173/850-0.html
注:关于php 一个通用信用卡验证类的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:信用卡
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。