PayPal IPN in Magento debuggen

Über IPN (Sofortige Zahlungsbestätigung) versendet PayPal eine Nachricht wenn sich der Status einer Transaktion ändert. Dadurch werden Bestellungen in Magento bei der Zahlart PayPal auf „bezahlt“ gesetzt. Ab und zu läuft aber bei der Meldung etwas schief.

Im PayPal-Konto erhält man über Profil und Einstellungen -> Verkäufer/Händler -> Benachrichtigungen über Sofortzahlungen -> Aktualisieren -> Verlaufsseite für sofortige Zahlungsbestätigungen (IPN) eine Übersicht der IPN Meldungen. Hier kann man sehen welche IPN-Meldungen Probleme verursachen.

ipn-verlauf

Über die Detailseite der Nachrichten-ID kommt man an IPN-Nachricht.

ipn-details

Mit diesem Query-String öffnet man eine Magento-Testumgebung und bearbeitet die Datei app/code/core/Mage/Paypal/controllers/IpnController.php.

class Mage_Paypal_IpnController extends Mage_Core_Controller_Front_Action
{
    /**
     * Instantiate IPN model and pass IPN request to it
     */
    public function indexAction()
    {
        // Prüfung auf Post-Request deaktivieren.
        //if (!$this->getRequest()->isPost()) {
        //    return;
        //}

        try {
            // Manuellen Query-String nutzen.
            //$data = $this->getRequest()->getPost();
            $ipnMessage = 'hier-die-ipn-message-reinkopieren';
            parse_str($ipnMessage, $data);
            
            Mage::getModel('paypal/ipn')->processIpnRequest($data, new Varien_Http_Adapter_Curl());
        } catch (Exception $e) {
            Mage::logException($e);
            $this->getResponse()->setHttpResponseCode(500);
        }
    }
}

Dann noch einen Breakpoint innerhalb der Action-Methode setzen und los geht es mit dem Debugging einer IPN-Nachricht. Die Action wird aufgerufen über: http://www.magentoshop.dev/paypal/ipn.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: