Можете ли вы попробовать удалить номер порта :443
из $this->gateway['callback_url']
?
$this->gateway['callback_url'] = 'ssl://ipnpb.paypal.com';
Порт 443
уже передан в fsockopen
вызове функции.
$fp= fsockopen($this->gateway['callback_url'], 443, $error_no, $error_msg, 60);
Редактировать : (Редактирование ответа, поскольку в комментариях теперь разрешены новые строки)
Есть ли что-нибудь еще вокруг этой части этого кода?
- отсутствует точка с запятой (;) в конце второй строки
- не определен $ req.
Тот же код, заключенный в класс с 3предложенные выше изменения работают для меня.(возвращает ресурс типа stream)
<?php
class abc {
public $gateway;
public function __construct() {
$req = 'ABCD';
$this->gateway['submit_url'] = 'https://www.paypal.com/cgi-bin/webscr';
$this->gateway['callback_url'] = 'ssl://ipnpb.paypal.com';
//headers
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host www.ipnpb.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($this->gateway['callback_url'], 443, $error_no, $error_msg, 60);
var_dump($fp);
}
}
$a = new abc();