Ich habe eine PayPal-Bestellung getestet (unter Verwendung des Standard-One-Page-Checkout und des Standard-Paypal-Zahlungsstandards), wenn IPN aktiviert ist und der Status ordnungsgemäß aktualisiert wird, sodass IPN zu funktionieren scheint.
PayPal sendet jedoch regelmäßig über diese E-Mail:
Lieber xxxx,
Bitte überprüfen Sie Ihren Server, der PayPal Instant Payment Notifications (IPN) verarbeitet. Sofortige Zahlungsbenachrichtigungen, die an die folgenden URLs gesendet werden, schlagen fehl:
http: // xxxx / paypal / ipn /
Wenn Sie diese URL nicht erkennen, verwenden Sie möglicherweise einen Dienstanbieter, der IPN in Ihrem Namen verwendet. Bitte wenden Sie sich mit den oben genannten Informationen an Ihren Diensteanbieter. Wenn dieses Problem weiterhin besteht, sind IPNs möglicherweise für Ihr Konto deaktiviert.
Vielen Dank für Ihre schnelle Aufmerksamkeit für dieses Problem.
Mit freundlichen Grüßen PayPal
Nach etwa einer Woche wird IPN automatisch deaktiviert, wodurch die ordnungsgemäße Aktualisierung von PayPal-Bestellungen verhindert wird.
Wenn Sie system.log überprüfen, werden einige Hinweise angezeigt
2014-02-12T20:29:54+00:00 ERR (3): Notice: Undefined index: invoice in /var/www/windswept/app/code/core/Mage/Paypal/Model/Ipn.php on line 171
Es gibt ungefähr 50 dieser Fehler (einen alle 15/20 Minuten), während wir kürzlich eine kleine Anzahl von Paypal-Bestellungen hatten.
Hat jemand einen Einblick in dieses Problem?
quelle
Antworten:
Wenn Ihre URL korrekt ist, hat Keyur Shah dies bereits kommentiert, war aber wahrscheinlich nicht klar genug. Wenn Sie IPN aktiviert haben und Zahlungen von verschiedenen Quellen (ebay, Magento und andere) an dasselbe PayPal-Konto erhalten, versucht PayPal leider weiterhin, Benachrichtigungen zu dieser Bestellung an den Magento Store zu senden, in dem diese Bestellungen nicht vorhanden sind.
Eine mögliche Lösung ist das Erstellen eines zentralisierten IPN-Empfängers. Unter dieser URL finden Sie ein sehr nützliches Skript, mit dem Sie beginnen können. http://codeseekah.com/2012/02/11/how-to-setup-multiple-ipn-receivers-in-paypal/
quelle
Wie von @Keyur Shah hervorgehoben, wurden diese Bestellungen nicht bei Magento aufgegeben. (In meinem Fall werden sie wahrscheinlich von M2E importiert.)
Magento weiß nichts über sie und erwartet, dass das Feld
invoice
besiedelt wird. So etwas passiert:invoice
Feld.Mage_Paypal_Model_Ipn::_getOrder()
Erwarten Sie dasinvoice
Feld und erzeugen Sie eine AusnahmeMage_Paypal_IpnController
schickte ein503 Service Unavailable
an Paypal zurückUmschreiben der Lösung
Mage_Paypal_Model_Ipn::processIpnRequest()
Ich erkläre nicht die vollständige Prozedur, da es viele Tutorials gibt, die zeigen, wie ein Modul erstellt wird, das eine Kerndatei neu schreibt.
Dieser Mod:
invoice
Feld nicht vorhanden ist und protokollieren Sie diese Auftrags-IDHier die Klassendatei:
quelle
Sie müssen eine Verbindung zu Ihrem Paypal-Konto herstellen, auf das Profil klicken und die IPS-URL wie folgt festlegen
YOUR_BASE_URL/index.php/paypal/ipn/index/
oder wenn es nicht funktioniert
YOUR_BASE_URL/paypal/ipn/
siehe diesen Link
quelle
Sie können die URL wie folgt ausprobieren: Wenn Sie URL ReWrite (suchmaschinenfreundliche URLs) verwenden, lautet unsere IPN-URL:
YOUR_BASE_URL/paypal/standard/ipn/
Wenn Sie keine URL-Umschreibungen verwenden, sollte Ihre Adresse wie folgt lauten: (Ich denke, das ist richtig, habe es nicht vollständig ausprobiert.)
YOUR_BASE_URL/index.php/paypal/standard/ipn/
Weitere Details finden Sie hier
quelle