Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Prinzipien aller Arten der Kreditkartenüberprüfung

PHP implementiert die Prinzipien aller Arten der Kreditkartenüberprüfung

墨辰丷
墨辰丷Original
2018-06-12 10:01:402166Durchsuche

Dieser Artikel stellt hauptsächlich die PHP-Implementierung zur Überprüfung aller Arten von Kreditkartenklassen vor. Er analysiert die Implementierungsprinzipien und zugehörigen Verwendungstechniken von Kreditkartenklassen und hat einen gewissen Referenzwert >

Das Beispiel in diesem Artikel beschreibt die PHP-Implementierung zur Überprüfung aller Arten von Kreditkartenklassen. Teilen Sie es als Referenz mit allen. Die Details sind wie folgt:

Diese PHP-Klasse ist relativ vollständig und kann zur Überprüfung verschiedener Kreditkarten verwendet werden. Sie überprüft die allgemeinen Regeln von Kreditkartennummern und führt auch eine gezielte Identifizierung verschiedener Arten von Kreditkarten durch.

Der Code akzeptiert eine Kreditkartennummer und ein Ablaufdatum und gibt TRUE zurück, wenn beide gültig sind, andernfalls gibt er FALSE zurück.

Dieses Plug-in akzeptiert die folgenden Parameter:

$number stellt eine Zeichenfolge von Kreditkartennummern dar
$expiry Das Ablaufdatum der Kreditkarte im Format 07/12 oder 0712

<?php
// Plug-in 32: Validate Credit Card
// This is an executable example with additional code supplied
// To obtain just the plug-ins please click on the Download link
$card  = "4567 1234 5678 9101";
$exp  = "06/11";
echo "Validating: $card : $exp<br>";
$result = PIPHP_ValidateCC($card, $exp);
if ($result != FALSE) echo "Card Validated";
else echo "Card did not validate";
function PIPHP_ValidateCC($number, $expiry)
{
  // Plug-in 32: Validate Credit Card
  //
  // This plug-in accepts a credit card number and
  // an expiry date and returns TRUE or FALSE,
  // depending on whether the details pass date
  // and checksum validation. The arguments required
  // are:
  //
  //  $number: Credit Card Number
  //  $expiry: Expiry date in the form:
  //    07/12 or 0712 (for July, 2012)
  $number = preg_replace(&#39;/[^\d]/&#39;, &#39;&#39;, $number);
  $expiry = preg_replace(&#39;/[^\d]/&#39;, &#39;&#39;, $expiry);
  $left  = substr($number, 0, 4);
  $cclen = strlen($number);
  $chksum = 0;
  // Diners Club
  if (($left >= 3000) && ($left <= 3059) ||
    ($left >= 3600) && ($left <= 3699) ||
    ($left >= 3800) && ($left <= 3889))
   if ($cclen != 14) return FALSE;
  // JCB
  if (($left >= 3088) && ($left <= 3094) ||
    ($left >= 3096) && ($left <= 3102) ||
    ($left >= 3112) && ($left <= 3120) ||
    ($left >= 3158) && ($left <= 3159) ||
    ($left >= 3337) && ($left <= 3349) ||
    ($left >= 3528) && ($left <= 3589))
   if ($cclen != 16) return FALSE;
  // American Express
  elseif (($left >= 3400) && ($left <= 3499) ||
      ($left >= 3700) && ($left <= 3799))
   if ($cclen != 15) return FALSE;
  // Carte Blanche
  elseif (($left >= 3890) && ($left <= 3899))
   if ($cclen != 14) return FALSE;
  // Visa
  elseif (($left >= 4000) && ($left <= 4999))
   if ($cclen != 13 && $cclen != 16) return FALSE;
  // MasterCard
  elseif (($left >= 5100) && ($left <= 5599))
   if ($cclen != 16) return FALSE;
  // Australian BankCard
  elseif ($left == 5610)
   if ($cclen != 16) return FALSE;
  // Discover
  elseif ($left == 6011)
   if ($cclen != 16) return FALSE;
  // Unknown
  else return FALSE;
  for ($j = 1 - ($cclen % 2); $j < $cclen; $j += 2)
   $chksum += substr($number, $j, 1);
  for ($j = $cclen % 2; $j < $cclen; $j += 2)
  {
   $d = substr($number, $j, 1) * 2;
   $chksum += $d < 10 ? $d : $d - 9;
  }
  if ($chksum % 10 != 0) return FALSE;
  if (mktime(0, 0, 0, substr($expiry, 0, 2), date("t"),
   substr($expiry, 2, 2)) < time()) return FALSE;
  return TRUE;
}
?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Definition und Verwendung der Funktion „curl_setopt“ in PHP

Kurze Beschreibung der PHP-Abfragedatenbank zur Rückgabe von JSON-Daten

Kurze Beschreibung der PHP-Klassen für den Betrieb der MySQL-Datenbank

Das obige ist der detaillierte Inhalt vonPHP implementiert die Prinzipien aller Arten der Kreditkartenüberprüfung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn