Foros del Web » Programando para Internet » PHP »

Generar número de tarjeta

Estas en el tema de Generar número de tarjeta en el foro de PHP en Foros del Web. Estoy trabajando en un sistema que genera tarjetas de descuentos. Cada tarjeta tiene que tener un número único de 16 dígitos y un código de ...
  #1 (permalink)  
Antiguo 22/04/2014, 08:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 1 mes
Puntos: 0
Generar número de tarjeta

Estoy trabajando en un sistema que genera tarjetas de descuentos.
Cada tarjeta tiene que tener un número único de 16 dígitos y un código de seguridad de 3 dígitos.
¿Con qué criterio podría generar los dos números? Sé que el último dígito del número de la tarjeta es, en general, un código verificador calculado con Mod10 a partir de los 15 restantes, pero no sé cómo generar esos 15 y los 3 de seguridad. Había pensado que pueden ser aleatorios, pero me imagino que debe haber una mejor forma de generarlos.

Gracias!
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #2 (permalink)  
Antiguo 22/04/2014, 09:01
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 84
Respuesta: Generar número de tarjeta

Hace tiempo que tengo ganas de crear un sistema que cubra esta necesidad.

Lo que he pensado, es lo siguiente.

Problemas planteados
-Es un número de 16 cifras (1000 millones de números).
-¿Aleatorio?, ¿consecutivo? o ¿una mezcla de aleatoriedad y consecutividad?
-No es factible contrastar con la BD en busca de un número de 16 cifras repetido cada vez que haya que generar un número.
-Tampoco es factible volver a generar un número si resulta que el generado ya está en la BD.

Lo único a favor
-El cliente no puede elegir el número de su tarjeta.

Opción
-El ID de un descuento (por ejemplo se promocionan 1000 descuentos) es el número de tarjeta del descuento.
-Si por ejemplo genera el número 1000, que en realidad es el ID, el resto de "huecos" hasta llegar a 16 dígitos los tiene que rellenar el programa con ceros, como resultado: 1000-0000-0000-0000.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 22/04/2014, 09:08
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Generar número de tarjeta

Por ahora lo que voy a hacer es usar un número fijo para los primeros cuatro dígitos y completar el resto con el id del usuario, completando con ceros como en tu ejemplo.
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #4 (permalink)  
Antiguo 22/04/2014, 10:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Generar número de tarjeta

Estoy de acuerdo que el "numero" generado debe ser grande..... pero para no hacerlo tannnnn grande e incluso facilitar las cosas..... seria mejor alfanumerico, con solo 10 caracteres de longitud usando [0-9A-F] .. cuantas combinaciones tenes ? (unas 1.099.511.627.776)

Los codigos de descuento tienen que estar en la base de datos para mas seguridad por lo planteado de que puedes exigir que no puedan repetirse......

Pueden estar distribuidos de forma completamente aleatoriamente excepto por algun(os) caracter(es) adicional(es) que podrian codificar la fecha de emision, validez, etc ... tal y como un codigo de barras
__________________
Salu2!

Etiquetas: tarjeta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:12.