微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php实现通用的信用卡验证类

本文实例讲述了PHP实现通用的信用卡验证类。分享给大家供大家参考。

原文说明如下:

Credit Card Validation Solution (PHP Edition) Version 3.5

Description
Credit Card Validation Solution™ uses a four step process to ensure credit card numbers are keyed in correctly. This procedure accurately checks cards from American Express,Australian BankCard,Carte Blache,Diners Club,discover/Novus,JCB,MasterCard and Visa.
For more information,please read the comments in the code itself.

Installation Instructions
Select the text between the two lines indicated,below.
copy the text.
Open up a text editor.
Paste the text.
Save that file. When saving it,make sure to:
save it in a directory on your webserver,and
name it with an extension that your server will recognize needs parsing by PHP.
To see it in action,open up that file in your web browswer.

具体代码如下:

rush:PHP;"> = 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程序设计有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐