Ir al contenido


Foto

Controlar Periodo de uso del sistema


  • Por favor identifícate para responder
3 respuestas en este tema

#1 el-mono

el-mono

    Advanced Member

  • Miembros
  • PipPipPip
  • 148 mensajes

Escrito 06 febrero 2017 - 04:48

Buenas tardes/ noches para todos y todas. Aunque pensándolo bien al parecer no hay en este foro mujeres ? :( 

 

 Bueno a tema:

 

Tengo una aplicación de escritorio que funciona en Red local y la cual hasta ahora la estaba comercializando como un producto sin suscripciones ni abonos mensuales solo un único pago y por actualizaciones un porcentaje sobre el costo original.

 

Lo que quiero ahora a partir de este año (y aquí es donde necesito de sus consejos u observaciones) es poder cobrar una suscripción por el uso del sistema un canon anual o mensual, pero me encuentro con el problema de como mi sistema funciona en Local (por ahora no tengo tiempo de adaptar todo el sistema a la bendita Nube). Como podría hacer para controlar su uso, yo había pensado una tabla en algún servidor en la nube donde leer y preguntar por el cliente, pero no se si es lo adecuado.

 

La pregunta:

 

Como harían ustedes en este caso ? 

Alguien tiene algo parecido a mi caso ?

Algun consejo ?

 

(y)

 

 

 


  • 0

#2 FerCastro

FerCastro

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 636 mensajes
  • LocationCiudad de México

Escrito 07 febrero 2017 - 11:22

Hola Mono,
 
Tuve hace unos años la necesidad de implementar una solución como la que tu planteas y lo que hice fue lo siguiente:
 
- Una tabla local en SQLite encriptada, con la fecha de activación del sistema. 
- Una llamada a una función en mi página web que te devuelve la fecha. Usas Indy y la función en PHP.
- Cuando el cliente desea hacer una actualización y ya pasó un año, pues el sistema le avisa.
 
La verdad es que no es nada complicado:
 


php
  1. procedure TFMain.bUpdateClick(Sender: TObject);
  2.   var
  3.   lHTTP: TIdHTTP;
  4.   Result :String;
  5.   nPos: Integer;
  6.   nAnio: String;
  7.   nMes: String;
  8.   nDia: String;
  9.   odFechaActual : TDateTime;
  10. begin
  11.  
  12.   Try
  13.     lHTTP := TIdHTTP.Create(nil);
  14.     try
  15.        Result := lHTTP.Get('http://www.midireccion.com/fecha.php');
  16.     finally
  17.       lHTTP.Free;
  18.     end;
  19.   Except
  20.     MessageBox(handle, 'No ha podido validarse el sistema. Revise su conexión a internet',FMain.oVariables.cVersion, MB_ICONWARNING or MB_OK);
  21.     EXIT;
  22.   End;
  23.   //-- <isotime>2014-11-20
  24.   //-- Buscar la cadena de la fecha local
  25.   nAnio := AnsiMidStr(Result,2, 4);
  26.   nMes :=AnsiMidStr(Result, 6, 2);
  27.   nDia :=AnsiMidStr(Result, 8, 2);
  28.   odFechaActual :=  StrToDate(nDia+'/'+nMes+'/'+nAnio);
  29.   //-- Se modifica el now por la fecha obtenida del web service de la página web
  30.   //-- Vamos a revisar que el sistema tenga menos de un año
  31.   If DaysBetween(odFechaActual, FMain.oVariables.dFechaRegistro) <= 365 then
  32.     auAutoUpgrader1.Checkupdate
  33.   else
  34.     Begin
  35.       //-- Manejador de licencias
  36.       FManejoLicencias.Show;
  37.     End;
  38.   //-------------------------------------------------------------------------------------------------------
  39.  

Y la parte de php es simple:

 


php
  1. <?php
  2. $header = "Content-Type: application/json";
  3. header($header);
  4.  
  5.  
  6. $date = date("Ymd");
  7. print json_encode($date);
  8. ?>

Cuando inicio mi aplicación leo el dato de la tabla sqlite, lo convierto a fecha para usarlo cuando se desea generar la actualización del sistema. Si el cliente paga la renovación del soporte y actualización, se le envía una llave con los datos de renovación, entre ellos la fecha de renovación la cual se actualiza y listo.

 

Si tienes dudas por favor contactame, será una placer ayudarte, y si alguien tiene una idea para agregar seguridad a este método de validación, bienvenido.

 

 


  • 1

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 07 febrero 2017 - 12:04

Buenas tardes/ noches para todos y todas. Aunque pensándolo bien al parecer no hay en este foro mujeres ? :(

 

 

Si que las hay :)

 

Saludos


  • 0

#4 el-mono

el-mono

    Advanced Member

  • Miembros
  • PipPipPip
  • 148 mensajes

Escrito 07 febrero 2017 - 02:30

FerCastro muchísimas gracias hermano. 


  • 0




IP.Board spam blocked by CleanTalk.