Russian (CIS)
 
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
    }

  }
}
 
reload Загадки, Афоризмы

Легче всего создаются трудности

Посещаемость

Яндекс.Метрика