2015-06-12 27 views
6

Ho appena finito di implementare un Payment Gateway Server che supporta Paypal. Il gateway ha anche un server IPN adattivo per le notifiche Paypal e Skrill. Durante l'implementazione e i test, ho utilizzato la documentazione fornita da Paypal IPN manual. Durante i test, tutto è andato "All Okay". I test con l'esempio dato dalla documentazione, "Tutto Ok":Sandbox Paypal Simulatore IPN - 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 

Il problema è iniziato quando abbiamo implementato il gateway per il nostro server di produzione, e siamo andati test con il modulo di simulazione fornito da Paypal di IPN Simulator. Beh, quando ho cliccato il pulsante Send IPN, il messaggio non ha raggiunto il mio server, e dopo pochi secondi (più come minuti), una risposta di stato di errore HTTP è apparso: enter image description here

502 Gateway ! Che diamine è quello?!? Il messaggio non è arrivato nemmeno al server. Alcune osservazioni, non stiamo utilizzando le porte 80/443 standard e supportiamo solo i messaggi "POST". Ancora una volta il messaggio IPN non entra nel nostro server, lo testiamo con altri strumenti di test e il messaggio arriva correttamente.

Si prega di aiuto!

>> Stiamo usando pagamento rapido tra l'altro!

+0

avete risolto questo problema? Sto ottenendo lo stesso messaggio di errore. – kiriz

+0

Ho appena incontrato lo stesso problema e la soluzione per me è stata la risposta da qui: http://stackoverflow.com/questions/11609174/paypal-ipn-error-and-custom-port-ipn-url/17359452#17359452 – Andy

risposta

-1

È consigliabile evitare di inserire l'host nelle intestazioni.
Modifica questo:

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

Per questo:

$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

Ehi, grazie per la tua risposta, ma penso che tu non abbia avuto la domanda. IPN Simulator è in realtà il richiedente per il nostro listener IPN. Queste sono le nostre risposte per ogni richiesta del server: 'Content-Length: 4 Content-Type: text/plain; charset = ISO-8859-1 Connessione: keep-alive Data: dom, 14 giu 2015 22:46:51 GMT Server: SIGMA-IPN-Server/1.0' – jbrios777