» Blog » Comercio electrónico

Crear números de tarjeta de crédito ficticias

03-10-2014

qr
Supongamos que estamos en el final de la integración de nuestra pasarela de pago bien sea por PayPal o bien sea por cualquiera de las que nos ofrece una entidad bancaria dada. En este punto tenemos que probar que todo está correcto, es decir, debemos pasar por todas las fases de la compra de nuestra web de pruebas para comprobar que no existen errores.

Naturalmente podemos forzar nuestro programa previamente para que obvie el paso del pago para comprobar el resto de las fases de la compra pero tarde o temprano tenemos que simular una compra completa. Por lo general, en las pasarelas de pago que ofrecen las entidades bancarias te suministran una tarjeta de crédito ficticia con el que puedes hacer tus pruebas (además de otros requisitos) pero ¿Qué ocurre con aquellas pasarelas que no te ofrecen dicha solución, por ejemplo, PayPal?

Buscando en Google encontraremos una gran cantidad de números de tarjetas de crédito ficticias pero lamentablemente veremos como, muy a nuestro pesar, dichos números ya han sido utilizados y no podemos volver a usarlos nosotros.

La solución pasa entonces por generarte un número por tu cuenta. Aquí también existe bastante información en internet pero no encontré (o no supe encontrar) algún artículo que describiera todos los pasos a seguir, con lo que, tras ir recopilando, organizando y probando la información obtenida, decidí compartir el nuevo conocimiento conseguido y publicar este post. Vamos a ello.

Para usar una tarjeta de crédito necesitamos un número, una fecha de caducidad y un código de seguridad CCV de 3 ó 4 dígitos. Las tarjetas VISA y MASTERCARD tienen 3 dígitos y la excepción la da AMERICAN EXPRESS con 4 dígitos. En este post voy a tratar sólo las VISA y MASTER CARD que son las más utilizadas y las que he probado con éxito.

El código CCV puede ser cualquier combinación de 3 dígitos inventados. Da igual los dígitos que sean. Por ejemplo 111.

La fecha de caducidad es cualquier fecha en el futuro en formato mm/aa. Por ejemplo 12/18 (caduca en diciembre de 2018).

Ahora vamos al número de la tarjeta, aquí está el meollo de la cuestión.

Debe empezar por 4 para las VISA y por 5 para las MASTERCARD.

Debe cumplir el algoritmo de Luhn o mod-10 cuya explicación está en http://en.wikipedia.org/wiki/Luhn_algorithm.


Nos inventamos un número de 16 dígitos que empiece por 4 ó 5, según queramos que sea VISA o MASTERCARD. La última cifra no la vamos a establecer porque será el dígito de control que aún no sabemos cuál es. Le llamaremos x. Ejemplo:

400315184868186x

Contando los dígitos de derecha a izquierda , empezando la numeración desde 1 y excluyendo el dígito de control x, iremos sumándolos de esta manera:

Para los dígitos en las posiciones 2,4,6,8 ... (es decir, posiciones pares) sumamos al resultado el valor numérico del dígito.

Para los dígitos en las posiciones 1,3,5,7 ... (es decir, posiciones impares), sumamos el doble del valor del dígito. Ahora bien, si el doble del valor del dígito es mayor que 9, entonces lo que hacemos es sumar las dos cifras de ese valor doble con objeto de seguir obteniendo un número de un solo dígito. Por ejemplo, si nuestro dígito fuera 8, al multiplicarlo por 2 daría 16, que sería mayor que 9, con lo que entonces sumaríamos sus dos cifras, 1+6 y obtendríamos 7 que sería lo que sumaríamos al resultado.

Siguiendo con el ejemplo, tenemos el número de la tarjeta al que le hemos quitado la cifra x del final

400315184868186

Como las posiciones se cuentan de derecha a izquierda, podemos invertir el número y separarlo en grupos de 4 para facilitar los cálculos. Eso depende de cada uno.

6818 6848 1513 004

Y aplicamos el algoritmo, dando como resultado de la suma 68

3 + 8 + 2 + 8 + 3 + 8 + 8 + 8 + 2 + 5 + 2 + 3 + 0 + 0 + 8 = 68

El resultado de esa peculiar suma de dígitos lo multiplicamos por 9, dando 612

68 x 9 = 612

Cogemos el primer dígito de la derecha de ese resultado que será 2. Ese será el dígito de control x de nuestro número de tarjeta y el que hará que cumpla el algoritmo de Luhn. En el ejemplo

4003151848681862

Juntando todos los datos obtenemos una tarjeta de crédito operativa para nuestras pruebas, por ejemplo para el sandbox de PayPal:

Tipo tarjeta: VISA
Número:      4003151848681862      ccv 111
Caducidad: 12/18