martes, 5 de julio de 2016

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));
}


No hay comentarios:

Publicar un comentario