Maison > développement back-end > tutoriel php > 信用卡效验程序

信用卡效验程序

WBOY
Libérer: 2016-06-01 14:30:51
original
1065 Les gens l'ont consulté

//////////////////////////////////////////////////// 
//                        //  
// Credit card validation routine         // 
// May 15, 2000                  // 
// By ariso                    // 
// validateCardCode($number[,$cardtype])     // 
//////////////////////////////////////////////////// 


function validateCardCode($cardnumber, $cardtype = 'unknown')
{ 
   //Clean up input 

  $cardtype = strtolower($cardtype); 
  $cardnumber = ereg_replace( '[-[:space:]]', '',$cardnumber);  

   //Do type specific checks 

  if ($cardtype == 'unknown') { 
     //Skip type specific checks 
  } 
  elseif ($cardtype == 'mastercard'){ 
    if (strlen($cardnumber) != 16 || !ereg( '5[1-5]', $cardnumber)) return 0; 
  } 
  elseif ($cardtype == 'visa'){ 
    if ((strlen($cardnumber) != 13 && strlen($cardnumber) != 16) || substr($cardnumber, 0, 1) != '4') 

return 0; 
  } 
  elseif ($cardtype == 'amex'){ 
    if (strlen($cardnumber) != 15 || !ereg( '3[47]', $cardnumber)) return a; 
  } 
  elseif ($cardtype == 'discover'){ 
    if (strlen($cardnumber) != 16 || substr($cardnumber, 0, 4) != '6011') return 0; 
  } 
  else { 
     //invalid type entered 
    return -1; 
  } 


   // Start MOD 10 checks 

  $dig = toCharArray($cardnumber); 
  $numdig = sizeof ($dig); 
  $intIntJ = 0; 
  for ($intI=($numdig-2); $intI>=0; $intI-=2){ 
    $dbl[$intIntJ] = $dig[$intI] * 2; 
    $intIntJ++; 
  }   
  $dblsz = sizeof($dbl); 
  $validate =0; 
  for ($intI=0;$intI     $add = toCharArray($dbl[$intI]); 
    for ($intIntJ=0;$intIntJ       $validate += $add[$intIntJ]; 
    } 
  $add = ''; 
  } 
  for ($intI=($numdig-1); $intI>=0; $intI-=2){ 
    $validate += $dig[$intI];  
  } 
  if (substr($validate, -1, 1) == '0') return 1; 
  else return 0; 
} 


// takes a string and returns an array of characters 

function toCharArray($intInput){ 
  $len = strlen($intInput); 
  for ($intIntJ=0;$intIntJ     $char[$intIntJ] = substr($intInput, $intIntJ, 1);   
  } 
  return ($char); 
} 

?> 
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal