91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用php怎么編寫一個信用卡驗證類

發布時間:2021-01-27 16:08:51 來源:億速云 閱讀:155 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關使用php怎么編寫一個信用卡驗證類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

具體代碼如下:

<?php
# ------------------------------------------------------------------------
# Credit Card Validation Solution, version 3.5         PHP Edition
# 25 May 2000
#
# COPYRIGHT NOTICE:
# a) This code is property of The Analysis and Solutions Company.
# b) It is being distributed free of charge and on an "as is" basis.
# c) Use of this code, or any part thereof, is contingent upon leaving
#   this copyright notice, name and address information in tact.
# d) Written permission must be obtained from us before this code, or any
#   part thereof, is sold or used in a product which is sold.
# e) By using this code, you accept full responsibility for its use
#   and will not hold the Analysis and Solutions Company, its employees
#   or officers liable for damages of any sort.
# f) This code is not to be used for illegal purposes.
# g) Please email us any revisions made to this code.
#
# Copyright 2000         http://www.AnalysisAndSolutions.com/code/
# The Analysis and Solutions Company     info@AnalysisAndSolutions.com
# ------------------------------------------------------------------------
#
# 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.
#
# CAUTION:
# CCVS uses exact number ranges as part of the validation process. These
# ranges are current as of 20 October 1999. If presently undefined ranges
# come into use in the future, this program will improperly deject card
# numbers in such ranges, rendering an error message entitled "Potential
# Card Type Discrepancy." If this happens while entering a card & type
# you KNOW are valid, please contact us so we can update the ranges.
#
# POTENTIAL CUSTOMIZATIONS:
# * If you don't accept some of these card types, edit Step 2, using pound
# signs "#" to comment out the "elseif," "$CardName" and "$ShouldLength"
# lines in question.
# * Additional card types can be added by inserting new "elseif,"
# "$CardName" and "$ShouldLength" lines in Step 2.
# * The three functions here can be called by other PHP documents to check
# any number.
#
# CREDITS:
# We learned of the Mod 10 Algorithm in some Perl code, entitled
# "The Validator," available on Matt's Script Archive,
# http://worldwidemart.com/scripts/readme/ccver.shtml. That code was
# written by David Paris, who based it on material Melvyn Myers reposted
# from an unknown author. Paris credits Aries Solis for tracking down the
# data underlying the algorithm. At the same time, our code bears no
# resemblance to its predecessors. CCValidationSolution was first written
# for Visual Basic, on which Allen Browne and Rico Zschau assisted.
# Neil Fraser helped prune down the OnlyNumericSolution() for Perl.
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";
#
# ------------ END SAMPLE USER INTERFACE SECTION -------------
?>

看完上述內容,你們對使用php怎么編寫一個信用卡驗證類有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

江陵县| 仪陇县| 南充市| 舒兰市| 威远县| 阜阳市| 房产| 陆丰市| 松桃| 长泰县| 宁南县| 克拉玛依市| 卢湾区| 始兴县| 剑阁县| 邯郸市| 句容市| 茌平县| 临沂市| 嘉鱼县| 武城县| 通河县| 黑山县| 鄂伦春自治旗| 炉霍县| 博白县| 滕州市| 丽水市| 武宁县| 永吉县| 门源| 尚义县| 玉龙| 阿拉尔市| 马尔康县| 海阳市| 化隆| 南靖县| 开原市| 沁阳市| 张北县|