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.
$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('/[^\d]/', '', $number); $expiry = preg_replace('/[^\d]/', '', $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!