¿Cómo verificas un número de tarjeta de crédito?

La única forma de validar una tarjeta es ejecutar una transacción y ver si se realiza. Esto es, desafortunadamente, más complicado de lo que debería ser. Aquí hay un vistazo rápido a lo que suelen hacer los sistemas de comercio electrónico.

  • La forma ideal de autorizar una tarjeta es a través de las Autorizaciones Zero Dollar (o ZDA), pero el problema es que este método todavía no es compatible en todas partes. El siguiente hilo del sitio web para desarrolladores de PayPal (si tiene unos minutos para leerlo) le dará una buena idea del desorden que aún rodea a las ZDA: https://www.x.com/thread/40318
  • Una alternativa popular es una Autorización de $ 1 , donde la transacción generalmente se anula inmediatamente después de que la autorización sea exitosa. Las autorizaciones de $ 1 (incluso si se anulan de inmediato) crean muchos dolores de cabeza tanto para los clientes (que están confundidos por las extrañas transacciones pendientes de $ 1 que aparecen en sus extractos de tarjeta de crédito en línea) como para los comerciantes (que deben asumir los costos de proporcionar una explicación a los clientes realmente confundidos que se ponen en contacto con ellos sobre las transacciones fantasmas de $ 1).

El problema con las autorizaciones de $ 1 no es solo con la confusión que crean (y los costos relacionados con el servicio al cliente), sino también con las tarifas adicionales que se introdujeron en 2009, que las hacen más caras que las ZDA. Para obtener detalles sobre estas tarifas, consulte: http: //www.themerchantsguide.com…

Con suerte, los procesadores de tarjetas de crédito pronto admitirán las ZDA. Hasta entonces, una forma de operar un sistema de comercio electrónico es intentar una ZDA, luego volver a una autorización de $ 1 si la ZDA no es compatible.

Verificar que un número de tarjeta tenga un formato válido es bastante sencillo. Hay tres cosas principales para validar.

1. Longitud : Visa / MC / Discover / JCB son 16 dígitos. Amex tiene 15 dígitos, y ciertas tarjetas Diners Club y Carte Blanche tienen 14 dígitos.

2. Marca de la tarjeta : cada marca de tarjeta tiene diferentes rangos de números iniciales. Por ejemplo:
American Express – 34xx o 37xx
Visa – 4xxx
MasterCard – 5xxx
Descubrir – 64xx o 65xx

3. Suma de verificación : el último dígito de un número de tarjeta es una suma de verificación. Esto permite que el número de tarjeta se verifique para detectar errores simples (errores de un solo dígito o la mayoría de las transposiciones adyacentes) utilizando el algoritmo de Luhn, que es un algoritmo de suma de verificación aritmética modular muy simple. Hay un código de muestra fácilmente disponible para los principales lenguajes de programación si busca el “algoritmo de Luhn” en un motor de búsqueda.

Nota: Verificar que un número de tarjeta sea válido usando las técnicas anteriores no significa que la tarjeta esté activa y se pueda usar para pagar . El comerciante aún necesita solicitar autorización del banco emisor (a través de la red de tarjetas) para poder realizar un cargo.

Existe un algoritmo llamado LUHN Check http://www.beachnet.com/~hstiles … que permitirá realizar una verificación fuera de línea para validar si un número de tarjeta de crédito ingresado es válido o no, es decir, es una Visa o Amex válida Número de tarjeta de crédito. Sin embargo, eso no significa que sea un número de tarjeta legítimo, que solo puede verificarse intentando realizar una autorización contra el número de tarjeta.