Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Suporte para extensões de Formas de Pagamento
Por fetutti
#50451
O meu e ixwebhosting! Vc entrou em contato com o seu hosting?
Entrei em contato 3 vezes e falaram pra entrar em contato com developer?!?!?!
1) primeiro falaram que e uma atualização. fizeram a atualização la e nada de resolver...
2) falaram que e o SSL que esta vencido, mas não e o SSL, pois tive que desativa-lo a mais de 6 meses pois estava dando problema com o site e ja esta vencido a 30 dias e o problema so chegou ontem.
#50453
Pessoal, o problema é na intermitência do webservice do pagseguro - enviei diversos e-mails a eles ainda sem sucesso.

De qualquer forma se você está perdendo vendas como eu estava, segue uma implementação para reconexão (funcionou aqui)

Alterações na classe system\library\PagSeguroLibrary\utils\PagSeguroHttpConnection.class.php
1. Aumentar variavel $timeout nos métodos post e get para 40

2. Alteração no método curlConnection

2.1 Descomentar a seguinte linha no método curlConnection
CURLOPT_TIMEOUT => $timeout

2.2
Alterar
Código: Selecionar todos
	if ($error) {
		 throw new Exception("CURL can't connect: $errorMessage");

Para:
Código: Selecionar todos
if ($error) {
           
	        if (strtoupper($method) === 'POST'){
		        
	         	 return $this->curlReConnection('POST', $url, $data, $timeout, $charset);
        	}else{
	       		 return $this->curlReConnection('GET', $url, null, $timeout, $charset);
        	}

3. Criar novo método:
Código: Selecionar todos
private function curlReConnection($method, $url, array $data, $timeout, $charset)
    {

        if (strtoupper($method) === 'POST') {
            $postFields = ($data ? http_build_query($data, '', '&') : "");
            $contentLength = "Content-length: " . strlen($postFields);
            $methodOptions = array(
                CURLOPT_POST => true,
                CURLOPT_POSTFIELDS => $postFields,
            );
        } else {
            $contentLength = null;
            $methodOptions = array(
                CURLOPT_HTTPGET => true
            );
        }

        $options = array(
            CURLOPT_HTTPHEADER => array(
                "Content-Type: application/x-www-form-urlencoded; charset=" . $charset,
                $contentLength,
                'lib-description: php:' . PagSeguroLibrary::getVersion()
            ),
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HEADER => false,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_CONNECTTIMEOUT => $timeout,
            CURLOPT_TIMEOUT => $timeout
            );

        // adding module version
        if (!is_null(PagSeguroLibrary::getModuleVersion())) {
            array_push($options[CURLOPT_HTTPHEADER], 'module-description: ' . PagSeguroLibrary::getModuleVersion());
        }

        // adding CMS version
        if (!is_null(PagSeguroLibrary::getCMSVersion())) {
            array_push($options[CURLOPT_HTTPHEADER], 'cms-description: ' . PagSeguroLibrary::getCMSVersion());
        }

        $options = ($options + $methodOptions);

        $curl = curl_init();
        curl_setopt_array($curl, $options);
        $resp = curl_exec($curl);
        $info = curl_getinfo($curl);
        $error = curl_errno($curl);
        $errorMessage = curl_error($curl);
        curl_close($curl);
        $this->setStatus((int) $info['http_code']);
        $this->setResponse((String) $resp);
        if ($error) {
	        
	        
            throw new Exception("CURL can't reconnect: $errorMessage");
        } else {
            return true;
        }
#50458
Pessoal, testei para um cliente meu e o problema não é na hospedagem e nem no módulo. O problema está na instabilidade do PagSeguro, esse erro é porque o CURL tenta conectar e não tem retorno do PagSeguro, as vezes ele volta e consegui por isso, basta pegar a URL do CURL e testar vc mesmo, tem hora que está on e algumas off. Essa medida do mateusjeronimo, ajuda a evitar o erro, mas quem tem que resolver é o PagSeguro.
#50459
Faltou só fechar um "}"
Mas o interessante é que:
fiz as alterações que o Mateusjeronimo aconselhou e funcionou, mas como disse antes tenho várias lojas e fiz as alterações em somente uma e o estranho é que as outras voltaram a funcionar. Vai entender!

Night games. One night, no worries Real Women P[…]

@Manoel Vidal Poderia me ajudar com 2 coisas n[…]

Looking for a partner for an unforgettable night? […]

Vou verificar, Obrigado