Tema: Compilar cgi
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/10/2006, 04:22
Molxa
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 20 años, 3 meses
Puntos: 1
Compilar cgi

Buenos días: estoy montandome la pasarela de pago de banesto en un servidor linux, que es donde esta alojada mi web. No tengo ni idea de cgi, lo mio son otros lenguajes y tengo que compilar este archivo con estas instrucciones:

" Compilar el cgi-bin vuelta. Para ello habrá que editar previamente el fichero fuente
vuelta.c, y modificar la línea 4 indicando en el define PATH_RESULTADO el directorio
donde se encuentra el fichero comercio.log.AAMMDD, que será el directorio en donde se
ejecute el demonio TPV_Virtual . Comprobar además que el cgi-bin vuelta tiene permiso
de lectura para dicho fichero y acceso a todos los subdirectorios del path donde se
encuentra dicho fichero. De no hacer esta modificación y estas comprobaciones se
producirá un error V0 al ejecutarse el cgi-bin vuelta. Para compilarlo escribir: make -f
makevuelta."

Archivo vuelta.c
Código:
#include <stdio.h>
#include <string.h>

#define PATH_RESULTADO "../demonio"


char *path_resultado = PATH_RESULTADO;


main()
{
	int valor;
	char texto[1000];
	char *comercio;
	char *referencia;
	char *fecha;
	char *resultado;
	char *codigo;
	char *importe;
	char *moneda;
	char *error;
	char *resto;


	/********************************************************/
	/* Invocamos a la funcion leer_resultado() para obtener */
	/* el resultado de la transaccion. Devuelve 1 si no se  */
	/* produjo ningun error, y -1 en caso contrario.        */
	/********************************************************/
 	valor = leer_resultado(&comercio, &referencia, &fecha, &resultado, &codigo, &importe, &moneda, &error, &resto);


	/****************************************************************/
	/* Una vez leido del fichero comercio.log.AAMMDD el resultado   */
	/* de la transaccion, se muestra una pagina con dicho resultado */ 	
	/*                                                              */
	/* El codigo que aparece a continuacion puede ser sustituido    */
	/* por otro para mostrar las paginas con el resultado segun el  */
	/* disenyo deseado. Tener en cuenta que:                        */
	/*                                                              */
	/*  - resultado puede valer 'OK' o 'KO' segun la transaccion    */
	/*    haya sido o no autorizada.                                */
	/*                                                              */
	/*  - si resultado vale 'OK', codigo contendra el codigo de     */
	/*    autorizacion que el centro autorizador asigno a la tran-  */
	/*    saccion.                                                  */
	/*                                                              */
	/*  - importe contiene el importe por el que se autorizo la     */	
	/*    transaccion.                                              */
	/*                                                              */
	/*  - si se produjo algun error en la ejecucion del cgi-bin     */	
	/*    vuelta, contiene el codigo de error en caso contrario     */
	/*    su contenido es indeterminado.                            */
	/*                                                              */	
	/*  - Si al invocar al cgi-bin 'totalizacion' se paso el para-  */
	/*    metro 'resto', el cgi-bin 'vuelta' sera invocado desde    */
	/*    el servidor del banco pasandole un parametro 'resto' con  */
	/*    el mismo valor con el que se invoco al cgi-bin 'totaliza- */
	/*    cion'. El valor de este parametro es devuelto por la fun- */
	/*    cion 'leer_resultado' en la variable 'resto'. Si no se    */
	/*    especifico el parametro 'resto' al invocar a 'totaliza-   */
	/*    cion', la variable 'resto' valdra NULL tras la invocacion */
	/*    a la funcion 'leer_resultado'                             */
	/*                                                              */
	/****************************************************************/

	if (valor != 1 )
	{
		sprintf(texto, "Se ha producido un error. Codigo de error: %s", error);
		Sacar_mensaje(texto);
	}
	else
	{
	        if (!strcmp(resultado, "KO"))
                	sprintf(texto,"Transaccion no autorizada.<br> Razon:%s", codigo);
        	else
        	{
                        sprintf(texto,"Transaccion autorizada");
			strcat(texto, "<br>Codigo de autorizacion: ");
			strcat(texto, codigo);
		}

		strcat(texto, "<br>Comercio: ");
		strcat(texto, comercio);
		strcat(texto, "<br>Referencia: ");
		strcat(texto, referencia);
		strcat(texto, "<br>Importe de la transaccion: ");
		strcat(texto, importe);
		strcat(texto, "<br>Moneda: ");
		strcat(texto, moneda);

              	Sacar_mensaje(texto);

	}


	/*****************************************************************************/
	/* Incluir aqui el codigo necesario para actualizar bases de datos locales,  */
	/* borrar ficheros temporales, o cualquier accion que se considere necesaria */
	/* tras conocer la denegacion o autorizacion de la transaccion en curso      */ 
	/*****************************************************************************/


	exit(0);
}
No tngo ni idea de como se compila esto, dicen las instrucciones "Para compilarlo escribir: make -f makevuelta..." pero ni idea de donde se escribe eso ni porqué...
Gracias por adelantado.