VALIDACION NUMERO DE TARJETA DE CREDITO Public Class lenguaje2 Dim digito, numero As String Dim suma_digitos As Integer Dim longitud As Integer Dim primera_validacion As Boolean = False Dim segunda_validacion As Boolean = False Private Sub btn_verificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_verificar.Click Dim primer_digito, digitos As String Dim i As Integer numero = txt_numtarjeta.Text 'se obtiene el primer digito de la tarjeta de credito usando la funcion left primer_digito = Microsoft.VisualBasic.Left(numero, 1) 'se evalua el primer digito para determinar la casa emisora o si es invalido Select Case primer_digito Case "3" emisor = "American Express" primera_validacion = True Case "4" emisor = "Visa" primera_validacion = True Case "5" emisor = "MasterCard" primera_validacion = True Case Else 'si es invalido envia mensaje y sale del proceso de verificacion 'ya que no procede hacer la segunda verificacion MsgBox("No paso la primera verificacion, la tarjeta no es valida") Exit Sub End Select 'si pasa la primera verificacion envia mensaje con nombre de la cada emisora MsgBox("La casa emisora es " & emisor) 'como paso la primera verificacion se procede con la segunda validacion 'que es sumar todos los digitos que forman el numero de la tarjeta For i = 1 To longitud 'en la variable longitud se determino la longitud de 'la cadena de numero de tarjeta 'se extrae un digito en una posicion especifica digitos = Microsoft.VisualBasic.Mid(txt_numtarjeta.Text, i, 1) 'se va a sumar lo digitos pero se condiciona a que sean numeros y no guiones If digitos <> "-" Then suma_digitos = suma_digitos + CInt(digitos) End If Next lbl_suma.Text = CStr(suma_digitos)
'si la suma de esos digitos es menor a 90 pasa la segunda verificacion
If suma_digitos < 90 Then MsgBox("La tarjeta es valida") Else MsgBox("No paso la segunda verificacion, la tarjeta no es valida") End If End Sub Private Sub btn_nueva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_nueva.Click For Each Control As Control In Me.Controls If TypeOf Control Is TextBox Or TypeOf Control Is MaskedTextBox Then Control.Text = Nothing End If Next End Sub Private Sub txt_numtarjeta_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txt_numtarjeta.LostFocus 'se determina la longitud de la cadena numero de tarjeta usando la funcion Len longitud = Len(txt_numtarjeta.Text) If longitud < 19 Then 'si la longitud es menor a 19 es porque no se escribio un digito MsgBox("Numero invalido, debe tener 16 digitos") txt_numtarjeta.Clear() End If End Sub End Class