Validar Tarjeta de Crédito



Algoritmo a seguir

para entender mejor el método usaremos el número correcto (pero ficticio)4013 2002 0977 4812, al que me referiré a lo largo de todo el texto.
Para comprobar si una tarjeta de crédito es válida, usaremos este sencillo algoritmo:

Los cuatro primeros números indican el banco al cual pertenece la tarjeta. En nuestro ejemplo: Pertenece al banco 4013 (Bank of Baltimore).

El primer número identifica a la tarjeta:

si es un 3 la tarjeta es American Express si es un 4 la tarjeta es Visa si es un 5 la tarjeta es MasterCard si es un 6 la tarjeta es Discover

En nuestro ejemplo: 4, tarjeta Visa.

Ahora nos centraremos en todos los números que ocupan una posición impar en el número de la tarjeta:

Procederemos de la manera siguiente: a cada uno de estos números se le multiplica por dos. Si el número resultante es menor que nueve, se deja tal cual. En caso contrario, se le resta nueve

En nuestro ejemplo:

     4 * 2 = 8, como es menor que nueve, lo apuntamos y seguimos.
     0, ocupa posición par, por lo que continuamos
     1 * 2 = 2, <9, se apunta y sigue
     3, posición par
     2 * 2 = 4, se apunta
     0, posición par
     0 * 2 = 0, seguimos
     2, posición par
     0 * 2 = 0, seguimos
     9, posición. par
     7 * 2 = 14, mayor que nueve. Se restan 9: 14 - 9 = 5, se apunta
     7, posición par
     4 * 2 = 8
     8, posición. par
     1 * 2 = 2
     2, posición par

Con lo que obtenemos 8023 4002 0957 8822

Se suman entre sí todas las cifras del nuevo número obtenido.

En nuestro ejemplo:

     8 + 0 + 2 + 3 + 4 + 0 + 0 + 2 + 0 + 9 + 5 + 7 + 8 + 8 + 2 + 2 = 60

¡Y ya esta! Si el número resultante es múltiplo de 10 (X Mod 10 = 0) y a la vez menor o igual a 150, es un número de tarjeta válido.

En nuestro ejemplo: 60 Mod 10 = 0 & 60 

Ahora Vamos al Codigo:

Dim numeroTarjeta As String = txtNro.Text
Dim suma As Integer = 0
Dim numero As Integer = 0
Dim i As Integer
Dim opcion As Integer = 0

For i = 1 To 16
If i Mod 2 = 0 Then
numero = Integer.Parse(numeroTarjeta(i – 1))
suma += numero
Else
numero = Integer.Parse(numeroTarjeta(i – 1)) * 2

If numero
suma += numero
End If

If numero > 9 Then
numero = numero – 9
suma += numero
End If
End If
Next

If suma <= 150 And suma Mod 10 = 0 Then
opcion = Integer.Parse(numeroTarjeta(0))
Select Case opcion
Case 3
lblTipoTarjeta.Text = “American Express”
Case 4
lblTipoTarjeta.Text = “Visa”
Case 5
lblTipoTarjeta.Text = “MasterCard”
Case 6
lblTipoTarjeta.Text = “Discover”
End Select

lblMensaje.Text = “Tarjeta Valida”
End If

12 respuestas a Validar Tarjeta de Crédito

  1. juan dice:

    tengo un generador de banco si te interesa ablame lo ando vendiondo barato

  2. Jack dice:

    Hola que tal.
    ¿Que procede cuando la tarjeta solo tiene 15 digitos? Que es el caso de American Express.

    Saludos!

    • ModderClocker dice:

      Hola Jack… te cuento que no lo he probado con una American Express, pero prueba: en vez de setear el número en duro “16”, cuenta cuantos dígitos son los ingresados, lo que importa es el resultado final. comenta que tal te resulto😉

      saludos…!!!

  3. anonimo dice:

    pero te pide nombre y si pongo cualkiera me dice qe no esta valido

  4. Vanessa dice:

    hola!
    una pregunta, cuando un sitio me pregunta por número de credito, eso significa los 16 números que estan enfrente verdad?

    RESPONDAME PLEASE!

  5. omar dice:

    que lenguaje de programacion usaste para el algoritmo en la parte final? muy buena informacion gracias!

  6. Hello! Do you use Twitter? I’d like to follow you if that would be ok. I’m definitely enjoying
    your blog and look forward to new posts.

  7. This is a good tip particularly to those new to the blogosphere.
    Simple but very accurate information… Many thanks for sharing this one.
    A must read article!

  8. I am sure this piece of writing has touched all the internet viewers, its
    really really nice piece of writing on building up new webpage.

  9. shopping online

    Validar Tarjeta de Crédito | ..:: ModderClocker ::..

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: