TrogloGeek / prestashop-tggatos-module

TggAtos Module for Prestashop (1.4 to 1.7), ATOS SIPS 6xx payment gateway
61 stars 34 forks source link

Commande non créée malgré paiement validé #114

Open MacMah0n opened 2 years ago

MacMah0n commented 2 years ago

Bonjour,

J'ai un soucis depuis quelques temps peu avec un PrestaShop 1.6.1.22 et la version 4.1.3 du module tggatos. En effet, et c'est récurrent (1 fois sur 4 ou 5), le client valide bien le paiement mais la commande n'est pas enregistrée dans le BO de PrestaShop. Pas pratique pour traiter les commandes !

Pas d'erreur particulière dans les logs, je suis parti à la recherche d'une éventuelle erreur 500 ou d'une erreur envoyé par le module ou PrestaShop. Les commandes ne sont pas logguée non plus dans tggatos/log et pas d'erreur dans error.log.

Je cale un peu, malgré les logs que j'ai ajouté je ne vois pas la différence entre les fois où ça passe et les fois où ça ne passe pas.

Une idée ?

Merci d'avance !

TrogloGeek commented 2 years ago

Bonjour,

quels logs avez-vous regardés, ceux du serveur HTTP, de PHP ou PrestaShop ? Les logs PHP sont-ils au moins activés et forcés par des directives administratives ? (Sans quoi PrestaShop ou un autre module peut les désactiver)

Avez-vous vérifié la trace des requêtes HTTP de réponse silencieuse du serveur ATOS SIPS ? Si cette requête n'est pas reçue, le module ne peut pas connaître la réponse bancaire si l'utilisateur n'a pas cliqué sur le retour boutique.

Problème courant: PrestaShop ou un module greffé sur un hook de changement de statut de commande peut prendre trop de temps et déclencher un timeout PHP ou du daemon HTTP, interrompant le traitement courant et empêchant donc la validation de la commande.

Dans tggatos/log, seuls les commandes non validées sont-elles manquantes ou toutes ? Le logging est-il activé sur le module et les droits appropriés en place ? Si les commandes validées ont bien un log, ont-elle bien un log pour la réponse silencieuse ?

Il est facile de briser la réponse silencieuse lors de l'installation d'un certificat SSL pour HTTPS en forçant les redirections HTTP vers HTTPS, hors la réponse silencieuse utilise le verbe POST qui ne prévois pas de réémission du payload en cas de redirection. (cf documentation des cinématiques de communication entre serveur boutique, serveur bancaire et utilisateur acheteur dans la documentation fournie par la banque)