Jump to content

[Résolu] Technical error lors de la redirection vers systempay


Recommended Posts

Bonjour à toutes et à tous !

 

Je suis confronté à un problème avec un Prestashop en 1.5.6.2 et, en l’occurrence, Systempay.

Lorsque je sélectionne le mode de paiement Systempay et que la redirection vers la plateforme se lance, une fenêtre Ajax apparaît avec le message suivant :

 

TECHNICAL ERROR:
Details:
Error thrown;[object Object]
Text status: error
 
Lorsque je clique sur "ok" le message disparaît et la redirection se fait correctement. Il n'y a donc, en apparence, pas de problème fonctionnel mais ce message peut paraître déroutant pour l'utilisateur.
 
En observant les logs en direct via les outils de chrome, j'ai pu remarquer qu'une erreur js se produisait dans le fichier bibliothèque jquery-1.7.2.min.js. Cette erreur correspond à la ligne suivante :
h.send(c.hasContent&&c.data||null),

en version non compressée cela donne :

xhr.send( ( s.hasContent && s.data ) || null ); 

En recherchant de nouveau sur le net, j'ai cru comprendre que cela avait un rapport avec le "cross domain" (Ajax cross domain pour être précis). Mais là, ça me dépasse !

 

Y-a-t-il moyen de simplement masquer ce message ou le problème du cross domain peut être résolu ? Si quelqu'un a une idée je suis preneur ! :)

 

Ps : en pièce jointe une capture de l'erreur dans les logs (le fichier "jquery-1.7.2.min.js" correspondant à la version non compressée pour identifier l'erreur)

 

Merci d'avance,

Gautier

 

post-708079-0-03292200-1393325973_thumb.jpg

Edited by Gautierrr (see edit history)
Link to comment
Share on other sites

Via le back office mais j'ai toujours fait comme ça et je n'ai pas de problème sur mes autres boutiques, du moins je n'ai pas le message.

Et non ça ne vient pas directement du jQuery mais du cross domain (grossièrement le fait d'appeler des ressources Ajax sur un autre domaine et avec un protocole différent, pour le peu que j'ai compris).

 

Oui je pense que je vais les appeler en dernier recours, j'ai déjà eu besoin de les contacter et c'est vrai qu'ils sont efficaces ! Je vais refaire un essai sur un autre serveur avant pour voir si ça ne peut pas venir de l'hébergeur car en local je n'ai pas ce problème.

 

Merci pour ton aide.

Link to comment
Share on other sites

C'est par défaut je n'ai rien touché.

Bonjour, 

 

La page de redirection du module n'est pas censée faire de l'ajax, c'est une redirection HTML POST. L'appel ajax est effectué par un autre module. 

 

Peux-tu nous envoyer les appels XHR effectués au moment de l'affichage de la pop-up ? (onglet Réseau => icône entonnoir filtrer => onglet XHR)

 

Peux-tu nous envoyer également les fichiers JS chargés ? onglet Réseau => icône entonnoir filtrer => onglet Scripts)

 

c'est pour savoir depuis quel fichier l'appel XHR est parti. 

Link to comment
Share on other sites

Bonjour,

 

Alors, en pièce jointe, la capture des JS chargés. Par contre, j'ai fait plusieurs essais mais rien ne s'affiche dans les appels XHR...

 

Pour info, j'ai contacté les devs du module et le message ne s'est pas affiché chez eux. J'ai essayé sur les différents pc de mon entreprise, le message apparaît sur chacun d'entre eux seulement sous chrome (sans extension, navigateur à jour, cache vidé...). Donc sinon je vais essayer sur des ordis externes pour voir mais c'est quand même bizarre.

 

Merci quand même pour ton aide ! :)

post-708079-0-49016200-1393496906_thumb.jpg

Link to comment
Share on other sites

Hello,

 

Ce n’est pas jquery qui a un souci c'est comme vous le dites tous surement son envoi ou la réponse d'une requête ajax (surement celle du panier) qui le gène, juste avant la redirection ou pendant si celle ci l'annule vu qu'apparement elle est vide.

 

Pourquoi vous parlez de cross domain, cette requête part normalement vers le panier, pourquoi elle partirait vers un autre domaine ? On peut voir votre site ? Sinon le cross domain se contourne avec des htaccess mais d'abord il faudrait savoir pourquoi vous parlez de cross domain, car oui une requête annulée par Chrome peut très bien ressembler a cela. Il le dit d’ailleurs normalement dans la console qu'il bloqué une ressource ou une requête.

 

Donc soit une redirection qui annule la requête, soit la requête part vers un autre site et ça ça rickroll.

 

Cordialement

Link to comment
Share on other sites

Bonjour !

 

Je parlais de cross domain car après quelques recherches sur la ligne qui posait problème dans le js le cross domain était évoqué, simplement :)

 

Bref, après plusieurs échanges et tests avec les devs du module, le problème semble être résolu (bien qu’apparemment, il ne se posait que chez moi..)

La redirection se faisait directement au chargement de la page et empêchée cette dernière de se charger normalement, à priori. 

 

La solution ayant fonctionné pour résoudre mon problème est la suivante : modifier le script en bas du fichier redirect.tpl du module sytempay (dossier modules\systempay\views\templates\front) de cette manière :

 

Remplacer :

<script type="text/javascript">
	{literal}			
		$('#systempay_form').submit();
	{/literal}
</script>

Par :

<script type="text/javascript">
	$(function() {
		setTimeout(function() {
			$('#systempay_form').submit();
		}, 1000);
	});
</script>

Qui permet en fait de laisser la page se charger complètement avant la redirection automatique.

 

Voilà encore merci pour votre aide !

 

Gautier

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...