Открыть URL с помощью HTTPS

#php #http-post

#php #http-post

Вопрос:

Я пытаюсь отправить post-запрос на URL-адрес с помощью HTTPS, и я продолжаю получать сообщение об ошибке.

Это мой код:

 function do_post_request($data, $optional_headers = null)   {
    $params = array('http' => array(
            'method' => 'POST',
            'content' => http_build_query($data)
            ));


    $url = 'https://url';

    $ctx = stream_context_create($params);

    $fp = @fopen($url, 'rb', false, $ctx); 

    fpassthru($fp);
    if (!$fp) {<--- falls here
        throw new Exception("Problem with $url, $php_errormsg");
    }
    $response = @stream_get_contents($fp);

    if ($response === false) {
        throw new Exception("Problem reading data from $url, $php_errormsg");
    }
    return array(substr(trim(strip_tags($response)),0,3), trim(strip_tags($response)));
}
  

Ошибка, которую я получаю, это:

 Fatal error: Uncaught exception 'Exception' with message 'Problem with https://gateWay.pelecard.biz/PayProcess/English, ' in C:PelecardProjectsaspsitePostPHPPayEng.php:103 Stack trace: #0 C:PelecardProjectsaspsitePostPHPPayEng.php(83): do_post_request(Array) #1 {main}
  

Я где-то читал, что мне нужно включить расширение php OpenSSL, может быть?

Комментарии:

1. Отключите функции (удалите @ перед ними), а затем посмотрите, какие ошибки возникают.

Ответ №1:

Решаемая, моя конфигурация https не была хорошей.

Выполнил следующие шаги

1. Переименуйте php.ini-production в php.ini (в папке php)

2. Отредактируйте php.ini и раскомментируйте extension_dir=ext.

3. раскомментировать extension=php_openssl.dll .

4. добавлено libeay32.dll и ssleay32.dll чтобы C:WINDOWSsystem32inetsrv