Announcement

Collapse
No announcement yet.

Kann man bei PHP 2 Session starten und verwalten?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kann man bei PHP 2 Session starten und verwalten?

    Hallo zusammen,

    ich habe folgendes Problem. In meinem Shop starte ich mit session_start() eine Session sobald die Startseite aufgerufen wird.

    Für die Zahlung mit PayPal habe ich eine Schnittstelle zu Paypal implementiert die noch mal die Funktion session_start() aufruft.

    Solange der Kunde eine Bestellung mit PayPal bezahlt funktioniert das auch. Das Problem ist wenn der Kunde eine weitere Bestellung
    macht ohne sich vorher auszuloggen. Dann kommt eine Fehlermeldung. PayPal braucht für jede Zahlungsabwicklung eine neue Session-ID.
    Damit das funktioniert muss ich einmal session_destroy() aufrufen.

    Das ist natürlich nicht schön weil der Kunde dann auch ausgeloggt wird und sich wieder anmelden muss.

    Kann man die Session für PayPal separat starten und dann nach dem Bestellvorgang wieder löschen?

    Gruß Nevada


  • #2
    Paypal braucht deine SessionID?
    Glaub ich eher nicht
    https://developer.paypal.com/docs/in...paypal-payment

    Vielmehr könnte es sein, das deine SessionID bei der Rückkehr von Paypal nicht mehr funktioniert.....
    Christian

    Comment


    • #3
      Hallo Christian,

      das ist das Script was die Session startet, hab ich so von PayPal bekommen:

      <?php
      require_once('checkout/pp_bootstrap.php');

      session_start();

      $patch = new paypal_patch();
      $patchops = array("shipping", "billing");
      $patch->patchTransaction($patchops, false);

      // OK! Perform redirect...
      $redir = new paypal_redirect();
      $redir->performRedirect();

      ?>

      Comment


      • #4
        Und wo bekommt da Paypal deine sessionID?
        Was sollte Paypal mit dieser machen?
        Christian

        Comment


        • #5
          Na in dem Script was ich Dir geschickt habe will Paypal eine Session-ID. Das Script ist so original von Paypal. Wenn ich das auskommentiere funktioniert nichts mehr.

          Auf der Startseite der index.php wird bei jedem Seitenaufruf immer session_start() ausgeführt.
          Wenn ich das richtig verstanden habe wird dann immer die selbe Session-ID verwendet bis ich session_destroy() ausführe.

          Vielleicht benötigt Paypal die Session-ID um gleichzeitige Zahlungen abzuwickeln. Das würde auch die Fehlermeldung erklären das ich keine weitere Zahlung machen kann
          wenn ich vorher nicht session_destroy() ausgeführt habe.

          Comment


          • #6
            Also ich habe bis auf die paar Zeilen oben #3 kein Script. Und #3 läuft wohl auf deiner Seite und nicht bei Paypal.
            Und ich kann halt nicht erkennen, wo Paypal deine sessionID bekommt. Paypal wird vermutlich bei patchTransaction aufgerufen
            Auf der Startseite der index.php wird bei jedem Seitenaufruf immer session_start() ausgeführt.
            Wenn ich das richtig verstanden habe wird dann immer die selbe Session-ID verwendet bis ich session_destroy() ausführe.
            Ja

            Könnte eher sein, dass der Browser nach dem Paypal Kontakt die sessionID verworfen hat.
            Das würde natürlich ein destroy und start helfen. Aber man könnte sich die id in einem Cookie merken und dann einfach wieder zuweisen

            https://www.php.net/manual/de/function.session-id.php
            Zuletzt editiert von Christian Marquardt; 25.08.2020, 12:20.
            Christian

            Comment

            Working...
            X