Bom dia pessoal, tudo bem?
O módulo tem bastante tempo e, portanto, tem diferentes versões no mercado. As vezes atualizar não é uma boa, pois possui customizações. Então vou passar as instruções das duas versões mais predomintantemente utilizadas.
Na primeira versão deverá ser realizada a seguinte alteração, utilizando a extensão Curl do PHP:
No arquivo app/code/community/Query/Cielo/Model/WebServiceConnector.php (em versões muito antigas ele pode se chamar WebServiceOrder.php), na função construct:
Onde consta:
$curlInfo = curl_version();
if($curlInfo['version'] <= '7.26.0')
{
$this->_sslVersion = 1;
}
else
{
$this->_sslVersion = 4;
}
Deve passar a constar:
$curlInfo = curl_version();
if($curlInfo['version'] <= '7.26.0')
{
$this->_sslVersion = 1;
}
else
{
$this->_sslVersion = CURL_SSLVERSION_TLSv1_2;
}
Todavia, a partir de uma certa época, entendi que utilizar o Curl era uma solução mais sensível a versões do outras opções e passei a utilizar a conexão via soquete. Portanto, em muitas versões, esta variável foi inutilizada. Nestas versões, a alteração é a seguinte:
No arquivo app/code/community/Query/Cielo/Model/WebServiceConnector.php, na função _sendRequest:
Onde consta:
$config = array
(
'adapter' => Zend_Http_Client_Adapter_Socket,
'ssltransport' => 'tls'
);
Deve passar a constar:
$config = array
(
'adapter' => Zend_Http_Client_Adapter_Socket,
'ssltransport' => 'tlsv1.2'
);
Reparem que declaramos explicitamente o protocolo, mas confesso que não sei se o omitirmos fará com que a classe Zend_Http_Client detecte o protocolo aceito pelo servidor da Cielo. Se este for o caso, a melhor opção será oimitir o protocolo, removendo aquela linha de código que especifica o ssltransport.
Peço desculpas por não poder ajudar de forma mais eficiente, tenho ficado bem agarrado com outras questões.
Abs.
Fillipe.