2015-06-12 11 views
6

Ich habe gerade fertig mit der Implementierung eines Payment Gateway Server, der Paypal unterstützt. Das Gateway verfügt außerdem über einen adaptiven IPN-Server für Paypal- und Skrill-Benachrichtigungen. Während der Implementierung und Tests habe ich die Dokumentation von Paypal IPN manual verwendet. Während der Tests lief alles "Alles okay". Ich teste es mit dem Beispiel der Dokumentation gegeben, „All Ok“:Paypal Sandbox IPN Simulator - 502 Bad Gateway

mc_gross=19.95&protection_eligibility=Eligible&address_status=confirmed&payer_id=LPLWNMTBWMFAY&tax=0.00&address_street=1+Main+St&payment_date=20%3A12%3A59+Jan+13%2C+2009+PST&payment_status=Completed&charset=windows-1252&address_zip=95131&first_name=Test&mc_fee=0.88&address_country_code=US&address_name=Test+User&notify_version=2.6&custom=&payer_status=verified&address_country=United+States&address_city=San+Jose&quantity=1&verify_sign=AtkOfCXbDm2hu0ZELryHFjY-Vb7PAUvS6nMXgysbElEn9v-1XcmSoGtf&payer_email=gpmac_1231902590_per%40paypal.com&txn_id=61E67681CH3238416&payment_type=instant&last_name=User&address_state=CA&receiver_email=gpmac_1231902686_biz%40paypal.com&payment_fee=0.88&receiver_id=S8XGHLYDW9T3S&txn_type=express_checkout&item_name=&mc_currency=USD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00&transaction_subject=&payment_gross=19.95&shipping=0.00 

Das Problem begann, als wir das Tor zum Produktionsserver bereitgestellt, und gingen Tests mit der von Paypals IPN Simulator bereitgestellt Simulation Form. Nun, wenn ich die Send IPN Schaltfläche geklickt hat die Nachricht meinem Server nicht erreicht, und nach ein paar Sekunden (mehr wie Minuten), eine HTTP-Fehlerstatusantwort erschienen: enter image description here

Ja 502 Bad Gateway ! Was zum Henker ist das?!? Die Nachricht ist nicht einmal zum Server gekommen. Ein paar Anmerkungen, wir verwenden nicht die Standard 80/443 Ports, und wir unterstützen nur "POST" Nachrichten. Wieder kommt die IPN-Nachricht nicht in unseren Server, wir testen sie mit anderen Test-Tools und die Nachricht kommt erfolgreich an.

Bitte helfen!

>> Wir verwenden Express Checkout übrigens!

+0

Haben Sie dieses Problem gelöst? Ich bekomme die gleiche Fehlermeldung. – kiriz

+0

Gerade lief in das gleiche Problem und die Lösung für mich war die Antwort von hier: http://stackoverflow.com/questions/11609174/paypal-ipn-error-and-custom-port-ipn-url/17359452#17359452 – Andy

Antwort

-1

Sie sollten vermeiden, den Host in Ihre Header zu setzen. diese
Wechsel:

$header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; 
    $header .= "Host: www.paypal.com\r\n"; *****DELETE THIS LINE***** 
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 

Dazu:

$header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; 
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; 
+0

Hey nmos, danke für deine Antwort, aber ich denke, du hast die Frage nicht bekommen. Der IPN-Simulator ist eigentlich der Anforderer für unseren IPN-Listener. Dies ist unsere Antwort für jeden Serveranfrag: 'Content-Length: 4 Content-Type: text/plain; charset = ISO-8859-1 Verbindung: Keep-Alive- Date: Sun, 14. Juni 2015 22.46.51 GMT Server: SIGMA-IPN-Server/1.0' – jbrios777