≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

php 一个通用信用卡验证类

人气:464 时间:2018-09-22

这篇文章主要为大家详细介绍了php 一个通用信用卡验证类,具有一定的参考价值,可以用来参考一下。

对一个通用的信用卡验证php类感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
一个通用的信用卡验证的PHP类 信用卡验证解决方案(PHP版) 3.5版
描述 信用卡验证解决方案?采用了四步过程,以确保信用卡号码键入正确。这个程序准确地从美国运通,澳大利亚银行卡,点菜布拉切,大莱卡,发现/诺瓦斯,JCB,MasterCard和Visa卡检查。 欲了解更多信息,请阅读代码本身的注释。
安装说明 选择所指出的,下面的两行之间的文本。 复制的文本。 打开一个文本编辑器。 粘贴的文本。 保存该文件。当保存,确保: 它保存在网络服务器上的目录,并 与你的服务器会识别需要通过PHP解析扩展的名字。 要看到它在行动,在你的网页browswer打开该文件。

/**
 * 一个通用的信用卡验证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 信用卡识别和验证类用法示例
上一篇:PHP 通过回溯法解决0-1背包问题实现方法
下一篇:php 通过正则进行字符串搜索示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。