THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline

#1 atos worldline SIPS 2

(21-06-2022 09:52:12)


Bonjour,

J'utilise le module de paiement Atos pour la solution sherlock's proposé par le LCL depuis plus de 10 ans sur thelia v1 puis v2.
Je dois migrer assez rapidement vers une nouvelle plateforme (sherlock's 2) qui repose désormais sur SIPS 2

De nouveaux modules Atos worldline ont été développé pour d'autres CMS mais je ne trouve rien pour thelia v2

Savez-vous si le module Atos actuel est compatible SIPS 2 ?

Si ce n'est pas le cas, comment avez-vous fait ? Je ne dois pas être le seul dans cette situation.

Par avance merci pour vos réponses.

Offline

#2 Re: atos worldline SIPS 2

(21-06-2022 10:36:04)


Le module Mercanet (https://github.com/thelia-modules/Mercanet) utilise la plate-forme SIPS 2.0. Actuellement, l'URL du serveur de production est codée en dur (ici : https://github.com/thelia-modules/Merca … i.php#L27), mais je suppose qu'on pourrait la passer dans un paramètre du module pour supporter d'autres banques que la BNP.

Si tu peux essayer de ton côté, ça m'intéresse smile


OpenStudio Toulouse

Offline

#3 Re: atos worldline SIPS 2

(21-06-2022 10:51:27)


je vais regarder cela.
Merci

Offline

#4 Re: atos worldline SIPS 2

(22-06-2022 17:21:13)


Bonjour,

J'ai récupéré le module, je l'ai rendu plus générique en remplaçant Mercanet par Worldline.
J'ai imaginé ajouter à la page de config du module dans le back-office, deux champs pour les urls de prod et de test propre a chaque plateforme.

Avant cela, j'ai voulu tester le module en changeant directement les adresses des serveurs (test/prod) dans le code avec les adresses communiquées par ma banque.

J'ai utilisé les paramètres de test de ma banque (MerchantId, clé secrete, version de la clé).

J'obtiens une erreur sur le paramètre OrderId().
print screen 1


Pensant que j'avais fais une erreur en modifiant le module, j'ai fais lme meme test avec le module Mercanet et j'obtiens la même erreur.

print screen 2

J'ai bien regardé aux lignes indiquées dans chaque fichier mais je ne sais pas interpréter ces erreurs et les corriger.

Offline

#5 Re: atos worldline SIPS 2

(23-06-2022 08:26:03)


L'exception vient de ce bout de code dans local/modules/Mercanet/Api/MercanetApi.php ligne 364 :

    public function setOrderId(int $orderId)
    {
        $this->parameters['orderId'] = $orderId;
    }

Tu utilises certainement PHP 5.6, qui ne supporte pas les déclarations de types scalaires (int, en l’occurrence).

Deux solutions :

1) Tu passes en PHP 7 (7.0 est le minimum pour un Thelia 2.4, 7.1 le max pour un Thelia 2.3, donc je dirais PHP 7.1) <---- solution recommandée, plus personne ne devrait utiliser PHP 5.
2) Tu modifies la signature de la méthode comme ci-dessous

public function setOrderId($orderId)

OpenStudio Toulouse

Offline

#6 Re: atos worldline SIPS 2

(23-06-2022 18:48:19)


Bonjour,

Merci pour les conseils, je suis passé en PHP 7.1 ! il était temps.
Plus de problème sur OrderId().

En revanche, je rencontre les problèmes suivants :
(cache>prod cache>dev sont vidé entre chaque essai)

En mode prod avec l'option migration simplifié de 1.0 à 2.0 coché dans le BO du module
au clic sur "proceed to payment" -> la meme page (order/invoice) se recharge

En mode dev avec l'option migration simplifié de 1.0 à 2.0 coché dans le BO du module
au clic sur "procced to payment" -> page d'erreur de la banque avant paiement avec message
print screen

En mode prod avec l'option migration simplifié de 1.0 à 2.0 NON coché  dans le BO du module
au clic sur "proceed to payment" -> la meme page (order/invoice) se recharge

En mode dev avec l'option migration simplifié de 1.0 à 2.0 NON coché dans le BO du module
au clic sur proceed to payment ->  redirection vers page de paiement -> validation paiement de test-> retour sur thelia ->page erreur avec l'info "ce numero de commande ne correspond pas à ce client" ,la commande ne passe pas au statut payé dans le back office et le client qui a passé la commande est déconnecté du front.
print screen

à deux reprises, retour sur thelia-> merci pour votre commande et commande payée dans le BO sans comprendre pourquoi.

Je ne sais pas ou agir..

Offline

#7 Re: atos worldline SIPS 2

(24-06-2022 08:04:06)


Le problème "missing transaction key" est lié au mode de "migration simplifiée". Il faut comprendre ce qu'est une migration simplifiée. C'est expliqué ici : https://documentation.sips.worldline.co … s-2.0.html. En gros, on continue à utiliser le un ID de transaction via le champ s10TransactionId. Cette migration simplifiée doit avoir été mise en place par la banque, ce n'est pas toi qui décide de l'utiliser ! Donc vérifie d'abord le type de compte SIPS V2 avec la banque (simplifié ou pas) et configure le module en fonction.

Et si tu as des comportements différents entre le mode prod et le mode dev, alors vide les caches !!

Ensuite, l'erreur sur  /order/placed vient certainement d'une configuration incorrecte des cookies. Depuis un peu plus d'un an (en fonction des version des navigateurs), quand le serveur de la banque redirige le client vers /order/placed ou /order/cancel, le navigateur ne transmet plus le cookie de session PSPSESSID. Résultat: le client n'a plus de session, et voit une erreur qui peut lui faire penser que son paiement a échoué. Ceci concerne tous les sites Thelia qui utilisent des systèmes de paiement avec une redirection finale du client depuis le site de paiement vers la boutique, quelque soit la version.

La solution est d'ajouter SameSite=None; Secure au cookie de session (pour faire court. Les détails ici: https://web.dev/samesite-cookies-explained)

download

Tu peux configurer ton Apache pour qu'il configure automatiquement tes cookies avec cette directive dans le httpd.conf :

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure;SameSite=None

OpenStudio Toulouse