2015-06-12 41 views
6

Właśnie zakończyłem wdrażanie serwera płatności Gateway obsługującego Paypal. Brama ma również adaptacyjny serwer IPN dla powiadomień Paypal i Skrill. Podczas wdrażania i testów korzystałem z dokumentacji dostarczonej przez Paypal: IPN manual. Podczas testów wszystko poszło "Wszystko w porządku". Przetestować go z przykładu podanego w dokumentacji „Wszystko OK”:Symulator IPN z piaskownicy Paypal - 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 

Problem zaczęło się, gdy wdrażane bramę do naszego serwera produkcyjnego i poszedł test z postaci symulacji przekazanych przez PayPal IPN Simulator. Cóż, po kliknięciu przycisku Send IPN komunikat nie osiągnął mój serwer, a po kilku sekundach (więcej podobnych minut), pojawiła się odpowiedź status błędu HTTP: enter image description here

Tak 502 Bad Brama ! Co to jest do cholery?!? Wiadomość nie dotarła nawet do serwera. Kilka uwag, nie używamy standardowych portów 80/443 i obsługujemy jedynie komunikaty "POST". Ponownie komunikat IPN nie dostaje się do naszego serwera, testujemy go za pomocą innych narzędzi testowych, a wiadomość przychodzi pomyślnie.

Proszę o pomoc!

>> Używamy Express Checkout przy okazji!

+0

Czy rozwiązać ten problem? Otrzymuję ten sam komunikat o błędzie. – kiriz

+0

Wpadłem na ten sam problem, a rozwiązanie dla mnie było odpowiedzią stąd: http://stackoverflow.com/questions/11609174/paypal-ipn-error-and-custom-port-ipn-url/17359452#17359452 – Andy

Odpowiedz

-1

Należy unikać umieszczania hosta w nagłówkach.
Zmień to:

$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"; 

W tym:

$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

Hej, NMOS, dziękuję za odpowiedź, ale myślę, że nie dostałeś pytania. Symulator IPN jest w rzeczywistości wnioskodawcą dla naszego słuchacza IPN. Oto nasza odpowiedź na każde żądanie serwera: 'Content-Length: 4 Content-Type: text/plain; zestaw znaków = ISO-8859-1 Połączenie: podtrzymywanie aktywności Data: niedz, 14 czerwca 2015 22:46:51 GMT Serwer: SIGMA-IPN-Server/1.0' – jbrios777