php实现通用的信用卡验证类
本篇章节讲解php实现通用的信用卡验证类。分享给大家供大家参考。 原文说明如下: Credit Card Validation Solution (PHP Edition) Version 3.5 Description Installation Instructions 具体代码如下: = 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 "
The Visa number entered,$Number,in is 14 digits long. Visa cards usually have 16 digits,though some have 13. Please check the number and try again. 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 " The first four digits of the number entered are $NumberLeft. If that's correct,we don't accept that type of credit card. If it's wrong,please try again. n"; return FALSE; } # 3) Is the number the right length? if ($NumberLength <> $ShouldLength) { $Missing = $NumberLength - $ShouldLength; if ($Missing < 0) { echo " The $CardName number entered,is missing " . abs($Missing) . " digit(s). Please check the number and try again. n"; } else { echo " The $CardName number entered,has $Missing too many digit(s). Please check the number and try again. n"; } return FALSE; } # 4) Does the number pass the Mod 10 Algorithm Checksum? if (Mod10Solution($Number) == TRUE) { return TRUE; } else { echo " The $CardName number entered,is invalid. Please check the number and try again. 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),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,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 " The $CardName number entered,is valid. n"; } } else { $Number = ""; } # Setup an input form. Posting it calls this page again. echo "Credit Card Number: n"; # # ------------ END SAMPLE USER INTERFACE SECTION ------------- ?> 希望本文所述对大家的php程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |