THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 [Résolu] Retour Payzen

(03-04-2024 11:20:33)


Hello!

Je rencontre un souci avec le retour depuis le site de Payzen.

En effet, je perds la session thelia (donc forcément, thelia me dit que la commande ne correspond pas au client - car déconnecté).

J'avais le même souci sur thelia V1 que j'avais réussi à corriger en remontant le session_start dans le code. Mais sur la V2.. aucune idée de comment corriger le souci.

Une idée ?

Last edited by Elyos (12-04-2024 12:21:22)


Aide les autres, ils t'aideront en retour.

Offline

#2 Re: [Résolu] Retour Payzen

(05-04-2024 08:50:23)


C'est certainement un problème avec le cookie de session, qui n'est pas bien configuré.

Regarde ici : https://forum.thelia.net/viewtopic.php?pid=78083#p78083


OpenStudio Toulouse

Offline

#3 Re: [Résolu] Retour Payzen

(05-04-2024 09:53:47)


Merci!

Je mets en résolu quand j'aurais testé/vérifié wink


Aide les autres, ils t'aideront en retour.

Offline

#4 Re: [Résolu] Retour Payzen

(11-04-2024 15:11:28)


L'id de commande refusée n'appartient pas au client en cours

sad


Aide les autres, ils t'aideront en retour.

Offline

#5 Re: [Résolu] Retour Payzen

(12-04-2024 05:38:34)


J'ai tout fermé et relancé.

Au retour de la banque j'ai le samesite qui reste sur lax

Set-Cookie:PHPSESSID=[...]; path=/; httponly; samesite=lax


Aide les autres, ils t'aideront en retour.

Offline

#6 Re: [Résolu] Retour Payzen

(12-04-2024 06:20:32)


Dans le fichier symfony\http-kernel\EventListener\AbstractSessionListener.php (L.157)
Si je remplace

$sessionCookieSameSite = $sessionOptions['cookie_samesite'] ?? Cookie::SAMESITE_LAX;

par

$sessionCookieSameSite = Cookie::SAMESITE_NONE;

ça modifie bien les options des cookies PHPSESSID

Donc je devrais peut être voir au niveau de thelia où sont gérés les cookies pour mettre les bonnes options ?


Aide les autres, ils t'aideront en retour.

Offline

#7 Re: [Résolu] Retour Payzen

(12-04-2024 07:03:32)


Dans index.php, si je mets

if(isset($_COOKIE["PHPSESSID"])){
    header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None;Secure;HttpOnly');
}

ça résout le problème....

Mais je ne sais pas si c'est le mieux à faire ?


Aide les autres, ils t'aideront en retour.

Offline

#8 Re: [Résolu] Retour Payzen

(12-04-2024 09:30:55)


Elyos wrote:

Dans index.php, si je mets

if(isset($_COOKIE["PHPSESSID"])){
    header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None;Secure;HttpOnly');
}

ça résout le problème....

Mais je ne sais pas si c'est le mieux à faire ?

Fausse joie! A force de tester/modifier c'est revenu comme avant sans trop savoir pourquoi...

J'ai tout enlevé du coup...

Tout en haut de mon index.php j'ai mis :

session_set_cookie_params([
	'secure' => true,
	'httponly' => true,
	'samesite' => 'None'
]);

ça devrait aller du coup...


Aide les autres, ils t'aideront en retour.

Offline

#9 Re: [Résolu] Retour Payzen

(12-04-2024 10:25:42)


Et bah non... yikes yikes yikes


Aide les autres, ils t'aideront en retour.

Offline

#10 Re: [Résolu] Retour Payzen

(12-04-2024 11:41:33)


Sur le même serveur j'ai Thelia 1 et Thelia 2

Sur Thelia 1 : PHPSESSID => tout est vide (HttpOnly, Secure, SameSite)
Sur Thelia 2 : PHPSESSID => HttpOnly et Secure varie la définition que je donne mais SameSite reste indéfiniment sur "Lax"

via Chrome Version 123.0.6312.123

J'y comprends rien...

Code actuellement testé...

session_set_cookie_params([
    'path' => '/',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None'
]);
setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], ['samesite' => 'None', 'secure' => true]);

Aide les autres, ils t'aideront en retour.

Offline

#11 Re: [Résolu] Retour Payzen

(12-04-2024 11:58:19)


Je suis reparti dans le code de Symfony et c'est bien ce code qui prend le dessus...

private function getSessionOptions(array $sessionOptions): array
{
	$mergedSessionOptions = [];

	foreach (session_get_cookie_params() as $key => $value) {
		$mergedSessionOptions['cookie_'.$key] = $value;// <------------------------ SameSite = None 
	}

	foreach ($sessionOptions as $key => $value) {
		// do the same logic as in the NativeSessionStorage
		if ('cookie_secure' === $key && 'auto' === $value) {
			continue;
		}
		$mergedSessionOptions[$key] = $value;// <------------------------ SameSite = Lax
	}

	return $mergedSessionOptions;
}

Aide les autres, ils t'aideront en retour.

Offline

#12 Re: [Résolu] Retour Payzen

(12-04-2024 12:21:05)


J'ai supprimé tous les codes que j'avais mis pour corriger le souci.

J'ai modifié le fichier config\packages\framework.yaml
et j'ai mis :

session:
        handler_id: null
        cookie_secure: true
        cookie_samesite: none
        storage_factory_id: session.storage.factory.native

Et donc du coup ça fonctionne.

Roadster, ce fichier ne va pas être écrasé par une mise à jour ?


Aide les autres, ils t'aideront en retour.

Offline

#13 Re: [Résolu] Retour Payzen

(12-04-2024 14:34:42)


Sans doute.

Mais ça devrait être la config par défaut.


OpenStudio Toulouse