Paypal沙箱IPN模拟器 - 502 Bad Gateway

jbr*_*777 6 paypal paypal-sandbox paypal-ipn

我刚刚完成了支持Paypal的支付网关服务器.该网关还具有用于Paypal和Skrill通知的自适应IPN服务器.在实施和测试期间,我使用了Paypal的IPN手册提供的文档.在测试期间,一切都"全部好".我用文档给出的例子"All Okay"测试它:

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
Run Code Online (Sandbox Code Playgroud)

当我们将网关部署到我们的生产服务器,并使用Paypal的IPN模拟器提供的模拟表格进行测试时,问题就出现了.好吧,当我点击Send IPN按钮时,消息没有到达我的服务器,几秒钟后(更像是分钟),出现HTTP错误状态响应: 在此输入图像描述

是的502 Bad Gateway!那是什么呀?!?消息甚至没有到达服务器.一些评论,我们没有使用标准的80/443端口,我们只支持"POST"消息.IPN消息再次进入我们的服务器,我们使用其他测试工具对其进行测试,并且消息成功到达.

请帮忙!

>>我们正在使用快速结账!

小智 -1

您应该避免将主机放入标头中。
改变这个:

    $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";
Run Code Online (Sandbox Code Playgroud)

为了这:

    $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";
Run Code Online (Sandbox Code Playgroud)