⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc_validation.php

📁 每个RFC 3261信息头有一个相应的存取标识. 但是,许多信息头拥有同样的形式。 例如。To和From的信息头都是由显示名和一个URI组成。 To和From信息头用来管理与处理NameAddr实例的
💻 PHP
字号:
<?php/*  $Id: cc_validation.php,v 1.3 2003/02/12 20:43:41 hpdl Exp $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2003 osCommerce  Released under the GNU General Public License*/  class cc_validation {    var $cc_type, $cc_number, $cc_expiry_month, $cc_expiry_year;    function validate($number, $expiry_m, $expiry_y) {      $this->cc_number = ereg_replace('[^0-9]', '', $number);      if (ereg('^4[0-9]{12}([0-9]{3})?$', $this->cc_number)) {        $this->cc_type = 'Visa';      } elseif (ereg('^5[1-5][0-9]{14}$', $this->cc_number)) {        $this->cc_type = 'Master Card';      } elseif (ereg('^3[47][0-9]{13}$', $this->cc_number)) {        $this->cc_type = 'American Express';      } elseif (ereg('^3(0[0-5]|[68][0-9])[0-9]{11}$', $this->cc_number)) {        $this->cc_type = 'Diners Club';      } elseif (ereg('^6011[0-9]{12}$', $this->cc_number)) {        $this->cc_type = 'Discover';      } elseif (ereg('^(3[0-9]{4}|2131|1800)[0-9]{11}$', $this->cc_number)) {        $this->cc_type = 'JCB';      } elseif (ereg('^5610[0-9]{12}$', $this->cc_number)) {         $this->cc_type = 'Australian BankCard';      } else {        return -1;      }      if (is_numeric($expiry_m) && ($expiry_m > 0) && ($expiry_m < 13)) {        $this->cc_expiry_month = $expiry_m;      } else {        return -2;      }      $current_year = date('Y');      $expiry_y = substr($current_year, 0, 2) . $expiry_y;      if (is_numeric($expiry_y) && ($expiry_y >= $current_year) && ($expiry_y <= ($current_year + 10))) {        $this->cc_expiry_year = $expiry_y;      } else {        return -3;      }      if ($expiry_y == $current_year) {        if ($expiry_m < date('n')) {          return -4;        }      }      return $this->is_valid();    }    function is_valid() {      $cardNumber = strrev($this->cc_number);      $numSum = 0;      for ($i=0; $i<strlen($cardNumber); $i++) {        $currentNum = substr($cardNumber, $i, 1);// Double every second digit        if ($i % 2 == 1) {          $currentNum *= 2;        }// Add digits of 2-digit numbers together        if ($currentNum > 9) {          $firstNum = $currentNum % 10;          $secondNum = ($currentNum - $firstNum) / 10;          $currentNum = $firstNum + $secondNum;        }        $numSum += $currentNum;      }// If the total has no remainder it's OK      return ($numSum % 10 == 0);    }  }?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -