Validación de números de tarjeta de crédito
Publicado por rafael amaris (2 intervenciones) el 20/05/2020 17:21:17
Una tarjeta de crédito válida del banco ABCD tiene las siguientes características:
Es una secuencia de 16 números enteros (del 0 al 9).
Dicha secuencia se divide en 4 grupos y cada grupo tiene 4 números, los grupos se dividen por alguno de los siguientes caracteres: "-", "_", " ".
En los grupos se pueden repetir los números, pero no puede existir 2 números repetidos consecutivos.
Adicionalmente el código de verificación contiene 4 elementos alfanuméricos en Mayúscula donde mínimo debe contener 1 letra y 1 número. El código de verificación no puede contener ningún elemento repetido.
Ejemplo de Números de tarjeta de crédito válidos:
1246-4398-0871-5645
4634 4597 8070 0201
0871_5645_4398_1246
Ejemplo de Números de tarjeta de crédito inválidos:
1246-4398-0871-56457 # Tiene 17 dígitos
4634459780700201 # Los grupos de números no estan divididos
0071_6645_4398_1246 # Existe más de 1 número repetivo consecutivo
Ejemplo de Códigos de Verificación de tarjeta de crédito válidos:
1HB2
I9LM
LMB4
Ejemplo de Códigos de Verificación de tarjeta de crédito inválidos:
HBDA # No contiene números
0201 # No contiene letras
bfg1 # Sus elementos estan en minúscula
GF89H # Tiene 5 elementos
esto es lo que he tratado hacer, perdon si esta confuso es que soy muy nuevo en python
Es una secuencia de 16 números enteros (del 0 al 9).
Dicha secuencia se divide en 4 grupos y cada grupo tiene 4 números, los grupos se dividen por alguno de los siguientes caracteres: "-", "_", " ".
En los grupos se pueden repetir los números, pero no puede existir 2 números repetidos consecutivos.
Adicionalmente el código de verificación contiene 4 elementos alfanuméricos en Mayúscula donde mínimo debe contener 1 letra y 1 número. El código de verificación no puede contener ningún elemento repetido.
Ejemplo de Números de tarjeta de crédito válidos:
1246-4398-0871-5645
4634 4597 8070 0201
0871_5645_4398_1246
Ejemplo de Números de tarjeta de crédito inválidos:
1246-4398-0871-56457 # Tiene 17 dígitos
4634459780700201 # Los grupos de números no estan divididos
0071_6645_4398_1246 # Existe más de 1 número repetivo consecutivo
Ejemplo de Códigos de Verificación de tarjeta de crédito válidos:
1HB2
I9LM
LMB4
Ejemplo de Códigos de Verificación de tarjeta de crédito inválidos:
HBDA # No contiene números
0201 # No contiene letras
bfg1 # Sus elementos estan en minúscula
GF89H # Tiene 5 elementos
esto es lo que he tratado hacer, perdon si esta confuso es que soy muy nuevo en python
1
2
3
4
5
6
7
8
9
10
11
12
13
class Generar_tarjeta():
def __init__(self,BIN, cantidad=1, solo_impresion=False):
self.BIN = BIN.replace(" ","")#Procesar espacios
self.db_bins = "db_bins.txt"
if(len(self.BIN) > 16 or len(self.BIN) < 15):#Tiene que tener la longitud indicada
print("Por favor revisa la longitud del BIN.")
elif(BIN[0].lower() == "x"):#Si no hay un bin especifico se elige uno de la db al azar
print("No hay un BIN asignado, eligiendo uno al azar de la base de datos")
bin_reg = list(self.BIN)
bin_nuevo = self.bin_al_azar()
for i in range(0,5):bin_reg[i] = bin_nuevo[i]
self.BIN = "".join([i for i in bin_reg])
Valora esta pregunta


0