Notre support est fréquemment contacté pour un problème de retour de banque après paiement réussi.

La banque ne parvient pas joindre le site après le paiement, la commande ne peut pas être actualisée, les e-mails WooCommerce ne sont pas envoyés.

La source du problème peut être très diverse, je vais lister les sources identifiées.

Source du problème

Solution

Le site n’est pas accessible à tous, mode maintenance efficace, htaccess, etc. Rendez votre site accessible le temps de tester le paiement si le site n’est pas en production
Passerelle Monetico, vous n’avez pas envoyé l’URL retour CGI2 à Monetico ou vous ne l’avez pas faite actualiser suite à un changement (passage https, changement domaine, etc.). Contactez Monetico (centrecom@e-i.com) pour leur communiquer l’URL retour CGI 2, elle est indiquée dans les réglages de votre passerelle.
Clouflare a blacklisté l’IP de la banque ! Demandez la liste des IP à autoriser à votre banque pour l’ajouter en liste blanche sur Clouflare.
Une extension de sécurité bloque les appels distants (WordFence, iTheme Security, Sucuri, etc.). Identifiez l’option qui va bien pour autoriser les appels distants ou au moins celui de la banque.
La banque rencontre une erreur SSL, par exemple SSL 104. Il y a visiblement un problème dans la gestion du SSL sur votre site, Really Simple SSL pourrait résoudre ce problème.
Atos Sips, le cgi response remonte une erreur. Vérifiez que le fichier n’est pas corrompu, qu’il est accessible, qu’il dispose de droits d’exécution.

Identification de la source

Effectuer un appel distant sur l’URL retour de la banque permet assez souvent d’identifier la source du problème.

Voici le code que nous utilisons pour cela, il faut l’exécuter depuis un autre site que la boutique et idéalement un autre serveur (IP différente).

[pastacode lang=”php” manual=”%2F%2F%20Exemple%20pour%20Atos%20Sips%0A%24url%20%3D%20%22https%3A%2F%2Fwww.site-internet.com%2F%3Fwc-api%3DWC_Gateway_Atos%22%3B%0A%24curl_connection%20%3D%20curl_init()%3B%0Acurl_setopt(%24curl_connection%2CCURLOPT_URL%2C%24url)%3B%0Acurl_setopt(%24curl_connection%2CCURLOPT_POST%2Ccount(%24post_string))%3B%0Acurl_setopt(%24curl_connection%2C%20CURLOPT_POSTFIELDS%2C%20%24post_string)%3B%0Acurl_setopt(%24curl_connection%2C%20CURLOPT_RETURNTRANSFER%2C%20true)%3B%0Acurl_setopt(%24curl_connection%2C%20CURLOPT_HEADER%2C%20true)%3B%0A%24result%20%3D%20curl_exec(%24curl_connection)%3B%0Aecho%20%24result%3B” message=”” highlight=”” provider=”manual”/]

Ce code renvoi l’entête de la page et son contenu. Le code retour doit être 200, ce qui indique que l’URL retour est accessible. Si le code est autre (301, 302, 403, etc.) il faut identifier le problème. Certains bloqueurs peuvent ce faire connaitre sur cette page (extension de sécurité, proxy). Un code 200 va vous conduire à la conclusion que le problème est spécifique au retour de la banque (erreur SSL, IP bancaire bannie, etc.).

[pastacode lang=”markup” manual=”HTTP%2F1.1%20200%20OK%20Date%3A%20Thu%2C%2007%20Jun%202018%2010%3A57%3A43%20GMT%20Server%3A%20Apache%20X-Powered-By%3A%20PHP%2F5.3.3%20Expires%3A%20Wed%2C%2011%20Jan%201984%2005%3A00%3A00%20GMT%20Cache-Control%3A%20no-cache%2C%20must-revalidate%2C%20max-age%3D0%20Content-Length%3A%200%20Content-Type%3A%20text%2Fhtml%3B%20charset%3DUTF-8″ message=”Exemple de résultat” highlight=”” provider=”manual”/]