sberbank-acquiring-client icon indicating copy to clipboard operation
sberbank-acquiring-client copied to clipboard

Could not resolve host: securepayments.sberbank.ru

Open PankovAlxndr opened this issue 2 years ago • 8 comments

При попытке отправить запрос registerOrder получаю Curl error: Could not resolve host: securepayments.sberbank.ru; Unknown error

PankovAlxndr avatar Feb 26 '22 16:02 PankovAlxndr

@PankovAlxndr, это проблема с DNS (может быть и с curl), библиотека тут ни при чем.

voronkovich avatar Feb 26 '22 23:02 voronkovich

У меня похожая ошибка при запросе на register

Curl error: OpenSSL SSL_connect: Connection reset by peer in connection to 3dsec.sberbank.ru:443

Причем ошибка не постоянно а через раз

djklim87 avatar Mar 07 '22 08:03 djklim87

Причем переключение на Guzzle решило проблему

djklim87 avatar Mar 07 '22 08:03 djklim87

@djklim87, Спасибо за сообщение! Я посмотрел настройки Guzzle для curl и не нашёл в чём может быть дело, и почему клиент от Guzzle работает лучше.

Полагаю, что проблемы всё-таки связаны с сетью и возможно с DDOS-атаками на сервера Сбербанка (в свете последних событий это весьма вероятно).

voronkovich avatar Mar 09 '22 23:03 voronkovich

Вполне возможно. Я думаю задачу можно закрыть. Если будет какая то конкретика - отпишу. Спасибо за старания)

djklim87 avatar Mar 10 '22 09:03 djklim87

Ой я чуть поспешил, это ж не я открыват тикет) В любом случае спасибо)

djklim87 avatar Mar 10 '22 09:03 djklim87

Скорее всего ошибка связана с IP6. Если принудительно выставить в клиент \CURLOPT_IPRESOLVE=>\CURL_IPRESOLVE_V4 - то все работает, без этой настройки получаю такую же ошибку(Could not resolve host)

freefess avatar Apr 02 '22 07:04 freefess

@freefess, возможно, вы правы. Можете попробовать с Guzzle? Непонятно почему для Guzzle все работает нормально, хотя никаких опций связанных с IPv6/IPv4 там не используется. См. https://github.com/guzzle/guzzle/blob/82ca75f0b1f130f018febdda29af13086da5dbac/src/Handler/CurlFactory.php#L422

// CURL default value is CURL_IPRESOLVE_WHATEVER
if (isset($options['force_ip_resolve'])) {
    if ('v4' === $options['force_ip_resolve']) {
        $conf[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V4;
    } elseif ('v6' === $options['force_ip_resolve']) {
        $conf[\CURLOPT_IPRESOLVE] = \CURL_IPRESOLVE_V6;
    }
}

Какая у вас версия библиотеки libcurl?

curl --version

Например, у меня всё работает нормально и выводит следующее:

curl 7.74.0 (x86_64-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1l zlib/1.2.11 brotli/1.0.9 libidn2/2.3.1 libpsl/0.21.0 (+libidn2/2.3.0) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3
Release-Date: 2020-12-09
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets

voronkovich avatar Apr 02 '22 16:04 voronkovich