Paypal invalid host header |
04.01.2013 11:51 |
Недавно столкнулся с проблемой. Клиент написал что почему-то перстали работать проплаты на сайте. Ну конечно же пришлось дебажить IPN скрипт и в итоге нашел, что когда пригодят POST данные и формируется запрос для верефрикации на PayPal, то в ответ получает "Invalid host header". После того как добавил дополнительные данные в заголовок, все сразу заработало нормально. Так что теперь думаю прийдеться фиксить эту ошибку и на других сайтах.... <?php ... // post back to PayPal system to validate $header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Host: www.paypal.com\r\n"; // этой строчки не было раньше в документации, сейчас уже появилась : ))) $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30); if (!$fp) { // HTTP ERROR return false; } else { fputs($fp, $header . $req); while (!feof($fp)) { $res = fgets($fp, 1024); if (strcmp($res, "VERIFIED") == 0) { //do some operation } else if (strcmp($res, "INVALID") == 0) { // log for manual investigation } } } |