Добрый день.
Тут на форуме есть похожая тема: [URL=https://dev.1c-bitrix.ru/support/forum/forum6/topic97363/]https://dev.1c-bitrix.ru/support/forum/forum6/topic97363/[/URL]
но не нашел на решения.
Суть проблемы: установил систему оплаты яндекс касса (от 3), все прописал правильно
[URL=http://prntscr.com/r6r1dt]http://prntscr.com/r6r1dt[/URL]
[URL=http://prntscr.com/r6r1oy]http://prntscr.com/r6r1oy[/URL]
об этом мне даже сказала служба поддержки яндекс кассы
Система оплаты видна на сайта при оформлении заказа, ее можно выбрать и оформить с ней заказ, но после на странице где есть переход на саму оплату и при попытки перейти к оплате ( /personal/order/payment/?ORDER_ID=50&PAYMENT_ID=50/1 ) - происходит ошибка Socket connection error (только эта строка и выходит, на этой странице просто вызов bitrix:sale.order.payment, он и вызывает эту ошибку)
сайт на https, при проверке в админке битрикса ошибок сокетов нету
я попробовал найти в коде эту ошибку, и обнаружил следующее
если запустить такой код:[CODE]<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetTitle("test");
use \Bitrix\Main\Application,
\Bitrix\Main\Web\Uri,
\Bitrix\Main\Web\HttpClient;
function PRX($e) {
echo "<pre>".print_r($e,true)."</pre>";
}
// опции по умолчанию:
$options = array(
"redirect" => true, // true, если нужно выполнять редиректы
"redirectMax" => 5, // Максимальное количество редиректов
"waitResponse" => true, // true - ждать ответа, false - отключаться после запроса
"socketTimeout" => 30, // Таймаут соединения, сек
"streamTimeout" => 60, // Таймаут чтения ответа, сек, 0 - без таймаута
"version" => HttpClient::HTTP_1_0, // версия HTTP (HttpClient::HTTP_1_0 или HttpClient::HTTP_1_1)
"proxyHost" => "", // адрес
"proxyPort" => "", // порт
"proxyUser" => "", // имя
"proxyPassword" => "", // пароль
"compress" => false, // true - принимать gzip (Accept-Encoding: gzip)
"charset" => "", // Кодировка тела для POST и PUT
"disableSslVerification" => false, // true - отключить проверку ssl (с 15.5.9)
);
$httpClient = new HttpClient($options);
$params = array( 'a'=> 1 );
$url = 'https://winkyou.ru';
$postData = json_encode($params);
$response = $httpClient->post($url, $postData);
if ($response === false){
$errors = $httpClient->getError();
PRX( $errors );
} else {
PRX("OK");
}
$url = 'https://payment.yandex.net/api/v3/payments';
echo $url;
$postData = json_encode($params);
$response = $httpClient->post($url, $postData);
if ($response === false){
$errors = $httpClient->getError();
PRX( $errors );
}else {
PRX("OK");
}
$url = 'https://myeggershop.ru';
echo $url;
$postData = json_encode($params);
$response = $httpClient->post($url, $postData);
if ($response === false){
$errors = $httpClient->getError();
PRX( $errors );
}else {
PRX("OK");
}
[/CODE]( по сути такие же запросы и компонент кассы юзает )
то этот код выводит следующее:
[QUOTE][URL=https://winkyou.ru]https://winkyou.ru[/URL]
OK
[URL=https://payment.yandex.net/api/v3/payments]https://payment.yandex.net/api/v3/payments[/URL]
Array
(
[SOCKET] => Socket connection error.
)
[URL=https://myeggershop.ru]https://myeggershop.ru[/URL]
OK[/QUOTE]
т.е. проблема именно когда идет обращение к яндекс кассе, при этом такая же ошибка возникает, если обратиться например по несуществующему адресу например: [URL=https://asdfasdfa.ru]https://asdfasdfa.ru[/URL]
[URL=https://payment.yandex.net/api/v3/payments]https://payment.yandex.net/api/v3/payments[/URL] - этот адрес юзается яндекс кассой, однако выдает ошибку, поддержка яндекса пишет - что проблема не у них (наш домен не забанен), хостер тоже пишет, что де мол https в норме.
редакция битрикса: 1С-Битрикс: Управление сайтом 20.0.450. © Битрикс, 2016
еще попробовал установить модуль [URL=https://marketplace.1c-bitrix.ru/mibok.pay]Мибок: Платежный модуль для сайта[/URL] (mibok.pay) - тоже для яндекс кассы, но эффект тот же самый.
В чем может быть проблема?
поддержка яндекс касса послала к поддержке битрикса, поддержка битрикса - говорит мол очень плотный график, в течении 4 дней ответят