Problem mit der Session ID

Huhu!

Bin derzeit dabei ein Payment Modul zu schreiben - dazu muss ich mich wie auch in den Tutorials erklärt in die getNextStep Funktion der Order Klasse reinhängen - das ganze funktioniert eigentlich soweit ganz gut einziges Problem was ich jetzt habe ist wenn die Antwort vom Payment Anbieter kommt - da übergebe ich zwar die Session ID mit aber bei der Antwort (Benutzer wird zurückgeleitet auf den Shop) geht die Session verloren.

So nun habe ich mal ganz einfach folgendes ausprobiert:

Ich gehe auf den Shop -> Bekomme SessionID xyz
Ich surfe im Shop -> SessionID bleibt xyz
Ich logg mich ein -> SessionID ändert sich -> Neue ID abc
Ich surfe im Shop -> SessionID bleibt abc
Ich wechsle die Website (gehe z.b. auf Google.de)
Ich surfe den Shop wieder an
Ich erhalte eine neue SessionID -> cde
und bin nicht mehr eingeloggt

wieso passiert das ganze?!? Normalerweise sollte der doch eigentlich erkennen dass ich bereis eine Session auf dem Shop habe und diese weiterverwenden (Cookie ist vorhanden - aber ändert sich eben wie oben beschrieben).

Das ganze habe ich nun in einem anderen Oxid Shop der Referenzkunden verglichen - da passiert das ganze nicht…

also muss wohl etwas an der Serverconfig nicht stimmen ich weiss aber nicht was?!?

PHP Info: http://shop.maui.li/info.php

Ich bin über jede Hilfe dankbar, da ich im Moment echt nicht mehr weiss was tun…

lg
Manuel

Hallo Manuel,
in config.inc.php.


// in case session must be started on first user page visit
$this->blForceSessionStart = false;

Grüße
Rafig

An das dachte ich auch schon - leider bringt hier weder “true” noch “false” eine Änderung :confused:

Sollte vlt. noch dazu erwähnen dass es sich um die EE handelt mit ERP Schnittstelle (wobei dort eine aktivierung/deaktivierung auch nichts verändert).

Wenn sich die Session ID ändert dann liegt dass immer daran dass die Funktion oxSession::start entweder keine Session ID findet oder eine Client Änderung feststellt. Debugge mal diesen Teil des Core direkt - dann wirst du bestimmt raus finden warum das passiert.

So kurzes Feedback - habs nun gelöst!

Grund für das ganze war, dass ich die Session ID beim Redirect mitgegeben habe - sobald ich das gemacht hab (URL Param SID) wurde eine neue ID beim Redirect-Back erzeugt.

Sprich:

OXID -> REDIRECT -> XYZ?sid=xyz
XYZ -> REDIRECT -> OXID => NEUE Session

sobald ich das Param weggelassen habe hats funktioniert :slight_smile:

lg
Manuel

Jo, wahrscheinlich weil er dann einfach den Session Cookie nimmt - das funktioniert aber nur solang einwandfrei bis der User zu lange braucht bis zum Redirect. Das solltest du bedenken.