En una aplicación de comercio electrónico o una aplicación que necesite validar el número de una tarjeta de crédito, se puede hace uso del algoritmo ISO 2894. Este algoritmo permite comprobar que la numeración de la tarjeta es correcta, pero obviamente no indica si la tarjeta sigue siendo válida (no ha sido anulada, ha caducado, etc.).
A continuación, se muestra el código Visual Basic para comprobar la validez en la numeración de una tarjeta de crédito:
Crea un nuevo módulo y añada una caja de texto y un botón.
Pegue el siguiente código:
' Valida la tarjeta de crédito de acuerdo con el algoritmo ISO 2894 ' El algoritmo es: ' 1. Calcular el peso para el primer dígito: si el número de dígitos ' es par el primer peso es 2 de lo contrario es 1. Después los ' pesos alternan entre 1, 2, 1, 2, 1 ... ' 2. Multiplicar cada dígito por su peso ' 3. Si el resultado del 2º paso es mayor que 9, restar 9 ' 4. Sumar todos los dígitos ' 5. Comprobar que el resultado es divisible por 10 Function EsCCValido(sTarjeta As String) As Boolean Dim iPeso As Integer Dim iDigito As Integer Dim iSuma As Integer Dim iContador As Integer Dim sNuevaTarjeta As String Dim cCaracter As String * 1 iPeso = 0 iDigito = 0 iSuma = 0 'Reemplazar cualquier no digito por una cadena vacía For iContador = 1 To Len(sTarjeta) cCaracter = Mid(sTarjeta, iContador, 1) If IsNumeric(cCaracter) Then sNuevaTarjeta = sNuevaTarjeta & cCaracter End If Next iContador ' Si es 0 devolver Falso If sNuevaTarjeta = 0 Then EsCCValido = False Exit Function End If ' Si el número de dígitos es par el primer peso es 2, de lo ' contrario es 1 If (Len(sNuevaTarjeta) Mod 2) = 0 Then iPeso = 2 Else iPeso = 1 End If For iContador = 1 To Len(sNuevaTarjeta) iDigito = Mid(sNuevaTarjeta, iContador, 1) * iPeso If iDigito > 9 Then iDigito = iDigito - 9 iSuma = iSuma + iDigito ' Cambiar peso para el siguiente dígito If iPeso = 2 Then iPeso = 1 Else iPeso = 2 End If Next iContador ' Devolver verdadero si la suma es divisible por 10 If (iSuma Mod 10) = 0 Then EsCCValido = True Else EsCCValido = False End If End Function Private Sub btnComprobarCC_Click() If EsCCValido(Text1) Then MsgBox "Tarjeta válida" Else MsgBox "Tarjeta inválida" End If End Sub
En la caja de texto introduzca el número de la tarjeta de crédito y pulse el botón de comprobación. Puedes probar con 4242 4242 4242 4242 que es un número válido
Fuente: usuarios.lycos.es/pfn
Posted by lumbanico
Filed in Microsoft Access
Tags: codigo, comprobar, crédito, maccess, tarjeta, verificar
1 Comment » Filed in Microsoft Access
Tags: codigo, comprobar, crédito, maccess, tarjeta, verificar
11.04.2009 at 19:47
numeros de mi tarjeta