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.