Hola Ana,
Lo he reproducido y has dado con la causa así que gracias por el detalle del aviso que me ha ahorrado media tarde de búsqueda.
Con la CSP que trae Vigilante por defecto, form-action 'self' https:, Chrome bloquea el envío del formulario a javascript:jetIframeValidated(). El token se genera bien, como dices, pero el pago no continúa porque el navegador corta justo ahí.
Un apunte por si te sirve para entender por qué no le pasa a todo el mundo con PAYCOMET. Solo afecta al modo Jet Iframe. En el ajuste «Integration with» del plugin de Paycomet hay tres opciones (Iframe, Paycomet a pantalla completa y Jet Iframe), y las dos primeras envían el formulario a una URL https normal, que la CSP permite sin problema. Solo la tercera usa ese action="javascript:".
Ojo con dos cosas que parece que deberían funcionar y no funcionan, que las he probado. Ni form-action * ni añadir 'unsafe-inline' desbloquean nada, porque el comodín solo cubre esquemas de red. Hay que listar javascript: de forma explícita.
Hoy Vigilante no tiene campo para editar directivas, solo activar o desactivar la CSP entera, así que mientras lo añado tienes dos caminos.
1. Con un codiguillo, que es lo que yo haría, porque conservas la CSP completa y abres solo esa directiva. Lo puedes meter con un mu-plugin, algún plugin personalizado, o con Code Snippets o similar si ya lo usas para otras cosas, sería este:
add_action( 'admin_init', function () {
$o = get_option( 'vigilante_options' );
if ( ! is_array( $o ) ) { return; }
$quiere = "'self' https: javascript:";
$hay = isset( $o['security_headers']['csp']['directives']['form-action'] )
? $o['security_headers']['csp']['directives']['form-action'] : '';
if ( $hay === $quiere ) { return; }
$o['security_headers']['csp']['directives']['form-action'] = $quiere;
update_option( 'vigilante_options', $o );
if ( class_exists( 'Vigilante_Settings' ) && class_exists( 'Vigilante_Security_Headers' ) ) {
$h = new Vigilante_Security_Headers( new Vigilante_Settings() );
$h->apply_rules();
}
} );
Entra al escritorio una vez después de activarlo y listo, porque cambia el ajuste y regenera el .htaccess él solo. Se puede quedar puesto, que comprueba antes de escribir y no repite el trabajo en cada carga.
Un matiz por si lo intentas por tu cuenta desde la base de datos, y es que borrar la directiva no sirve de nada, porque Vigilante repone el valor por defecto al leer los ajustes, hay que sobrescribirla, así que no pierdas el tiempo por esa vía, mejor el código, o sino lo siguiente…
2. Sin tocar código, desmarca solo la casilla «Activar CSP» en «Cabeceras de seguridad», pero no desactives el módulo entero de cabeceras de seguridad. Te quedas sin la CSP y conservas X-Frame-Options, nosniff, Referrer-Policy y Permissions-Policy, que también hacen su trabajo, tanto o más importantes.
Lo de poder editar las directivas desde los ajustes queda apuntado. No te doy fecha porque ando metido en otra versión, pero es la segunda vez que me lo piden y tiene todo el sentido.
Gracias por avisar, y me alegro de que el plugin te esté sirviendo 🙂
Fernando