Todas las tarjetas de
crédito funcionan bajo el Algoritmo
de Luhn que también es conocido como el “algoritmo
de módulo 10” es decir, es una fórmula matemática de suma de
verificación, utilizada para validar una diversidad de números de
identificación.
Algunos números de tarjetas de crédito válidos
Por ejemplo, los números de tarjetas de MasterCard generalmente
empezarán con un número 5, los de Visa en 4, los American Expressen 3.
NUMERO DE DÍGITO
Tarjetas de crédito Mastercard
- 5390700823285988
- 5232449742219221
Tarjetas de crédito Visa (16 dígitos)
- 4485715860868875
- 4485807618846392
Tarjetas de crédito Visa (13 dígitos)
- 4929280904778
- 4916697015082
Al momento de hacer una compra online con tarjeta de crédito o
débito, es necesario poner el número de tarjeta, nombre completo del
propietario, la fecha de vencimiento y el número secreto; estos tres últimos datos
también están en la tarjeta y son independientes del número principal de 16
dígitos, por eso no se pueden saber mediante un algoritmo, y solo lo saben los
dueños.
CÓDIGO DE IDENTIFICACIÓN
Mira el lado derecho de la banda de la firma en el reverso de una
tarjeta de crédito. Verás un número de 3 dígitos (a veces 4), posiblemente
precedido de los últimos 4 dígitos de tu número de cuenta. Este es el número de
identificación de la tarjeta de crédito. Se utiliza para transacciones que no
se hacen "en persona". Cuando usas tu tarjeta de crédito por teléfono
o en línea el comerciante debe solicitar este número.
VALIDACIÓN
La mayoría de las tarjetas de crédito se validan mediante el
algoritmo de Luhn o Mod 10, una vez comprobado el digito de validación
por medio del algoritmo y definida como una Tarjeta de Crédito Valida, se
procede a separar los componentes del número de tarjeta. Los Primeros
seis dígitos de la tarjeta corresponden al Bin bancario. (Estos son definidos
por instituciones las cuales llevan un control de los Bines bancarios); normalmente
si el BIN empieza con 4 es una tarjeta tipo VISA, 5 es Mastercard, 6 es de tipo
Discovery y así sucesivamente, los siguientes 5 dígitos del BIN determinan la entidad
bancaria y país de origen.
El ultimo digito, se conoce como digito de control o digito de validación,
es un número que es sacado mediante el algoritmo antes mencionado, cuya función
es detectar errores de captura de datos, ya que si se captura un solo número erróneo,
el algoritmo arrojara un error y se detectara como tarjeta invalida.
ALGORITMO DE LUHN
Así funciona el algoritmo
de Luhn
Explicare el algoritmo de validación con
un ejemplo.
Tenemos el número 49927398716.
1. Multiplicamos por 2 los dígitos que
ocupan las posiciones pares empezando por el final:
(1×2) = 2, (8×2) = 16, (3×2) = 6, (2×2)
= 4, (9×2) = 18
2. Sumamos los dígitos que ocupaban las
posiciones impares con los dígitos de los productos obtenidos:
6 + (2) + 7 + (1+6) + 9 + (6) + 7 + (4)
+ 9 + (1+8) + 4 = 70
3. Si el resto de dividir el total entre
10 es igual a cero, el número es correcto:
70 mod 10 = 0
Código en PHP para
implementar el Algoritmo de Luhn
function luhn($number) {
$odd = true;
$sum = 0;
foreach (
array_reverse(str_split($number)) as $num) {
$sum += array_sum(
str_split(($odd = !$odd) ? $num*2 : $num) );
}
return (($sum % 10 == 0)
&& ($sum != 0));
}


