Mi estimado el primer argumento que le pasas no es un script, debe ser una función de javascript, y como veo que le estas poniendo algunas valores por php puedes asignarle los valores antes en una variable y después le pasas ese parametro a la funcion que pongas en el setTimeout. También estas concatenando variables de php con javascript,
osea no manches.
Has algo así:
Código Javascript
:
Ver originalvar valor = ""+<?php echo codifico($Compra->getidcompra();)?>;
setTimeout(miFuncion(valor),100);
function miFuncion(val) {
window.location = "paga_producto.php?c="+val;
}
Creo que deberias separar bien tu codigo, esta no es una muy buena practica de programación, no lo hagas a prueba y error, aprende bien los lenguajes y despues haces tus metodos de trabajo.