Maison > Article > développement back-end > PHP implémente les principes de tous les types de vérification de carte de crédit
Cet article présente principalement l'implémentation PHP pour vérifier tous les types de classes de cartes de crédit. Il analyse les principes de mise en œuvre et les techniques d'utilisation associées des classes de cartes de crédit avec des exemples. Il a une certaine valeur de référence. >
L'exemple de cet article décrit l'implémentation PHP pour vérifier tous les types de classes de cartes de crédit. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants : Cette classe php est relativement complète et peut être utilisée pour vérifier diverses cartes de crédit. Elle vérifie les règles générales des numéros de carte de crédit et effectue également une identification ciblée des différents types de cartes de crédit.Le code accepte un numéro de carte de crédit et une date d'expiration, et renvoie VRAI si les deux sont valides, sinon il renvoie FAUX.
$number représente une chaîne de numéros de carte bancaire
$expiry La date d'expiration de la carte bancaire, au format 07/12 ou 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; } ?>
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :Définition et utilisation de la fonction curl_setopt en PHP
Brève description de la base de données de requêtes php pour renvoyer des données json
Brève description des classes PHP pour faire fonctionner la base de données MySQL
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!