您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php怎么實現信用卡校驗位算法”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“php怎么實現信用卡校驗位算法”這篇文章吧。
按照ISO 2894中支付卡校驗位的算法 The Luhn Mod-10 Method 規定:
1、對卡號上的每位數字乘以權重。其規則是,如果卡號數字個數是偶數,則第一位乘以2,否則就乘以1,然后以后分別是,1,2,1,2,1,2;
2、如果每位數字乘以權重后超過9 ,則需要減去 9;
3、將所有的處理過的加權數字求和,用 數字 10 求模運算;
4、余數應該是0,否則可能是輸入錯誤。也可能是一個假號。
順手PHP簡單實現下,實際場景前端驗證好一些,例如JS。
function check_card($card){ if (!is_numeric($card)) return False; $card_len = strlen($card); $i = 0; $num_i = array(); do{ if (!$i){ $num_x = $card_len % 2 ? 1 : 2; } else { $num_x = $num_x == 1 ? 2 : 1; } $num_i[$i] = (int)$card[$i] * $num_x; $num_i[$i] = $num_i[$i] > 9 ? $num_i[$i] - 9 : $num_i[$i]; }while(isset($card[++$i])); $num_sum = array_sum($num_i); return $num_sum % 10 ? False : True; }
以上是“php怎么實現信用卡校驗位算法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。