Página 1 de 2
Erro com o pagseguro
Enviado: 13 Abr 2014, 01:24
por azerdran
Fatal error: Uncaught exception 'Exception' with message 'CURL can't connect: connect() timed out!' in /home/xxxxx/public_html/system/library/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php:120 Stack trace: #0 /home/xxxxx/public_html/system/library/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php(59): PagSeguroHttpConnection->curlConnection('POST', 'https://ws.pags...', Array, 20, 'UTF-8') #1 /home/xxxxx/public_html/system/library/PagSeguroLibrary/service/PagSeguroPaymentService.class.php(78): PagSeguroHttpConnection->post('https://ws.pags...', Array, 20, 'UTF-8') #2 /home/xxxxx/public_html/system/library/PagSeguroLibrary/domain/PagSeguroPaymentRequest.class.php(626): PagSeguroPaymentService::createCheckoutRequest(Object(PagSeguroAccountCredentials), Object(PagSeguroPaymentRequest)) #3 /home/xxxxx/public_html/catalog/controller/payment/pagseguro.php(170): PagSeguroPaymentRequest->register(Object(PagSeguroAccountCredentials)) #4 /home/xxxxx/public_html/system/engine/controller.php(43): Co in /home/xxxxx/public_html/system/library/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php on line 120
Utilizei o Pagseguro da
http://www.lojaopencart.com.br/ uma vez que a versão do site oficial não funcionou tb
Versão OpenCart: 1.5.6.1
Alguma ajuda?
Re: Erro com o pagseguro
Enviado: 13 Abr 2014, 03:32
por azerdran
Testei novamente (6 horas depois) e funcionou. sem nenhuma modificação.
Era problema com o pagseguro?
Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 09:35
por mateusjeronimo
Azerdran , você resolveu o problema ou ele desapareceu ?
Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 09:43
por tavolomoveis
Estou com o mesmo problema, alguem poderia me ajudar ??
Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 10:30
por mateusjeronimo
O problema ainda nao foi resolvido, mas a solução de contorno é:
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
if ($error) {
throw new Exception("CURL can't connect: $errorMessage");
Para
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:
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;
}
Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 11:06
por flaviot7
Estou com o mesmo problema.
Obrigado ao mateusgeronimo pela contribuição.
A modificação sugerida acima é bastante trabalhosa para um iniciante, não arrisquei fazer.
Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 14:43
por wattenberg
Alguém aí ja teve algum resultado?
O dia inteiro com esse bug, que sacanagem !

Re: Erro com o pagseguro
Enviado: 29 Abr 2014, 23:13
por tavolomoveis
Afinal, este erro provem do que ???
Re: Erro com o pagseguro
Enviado: 30 Abr 2014, 09:10
por denisgomes
A mensagem 'CURL can't connect: connect() timed out' indica que o módulo do Pagseguro não foi capaz de conectar-se ao servidor do Pagseguro, ou a conexão demorou mais do que o tempo limite especificado pelo módulo (ele também não pode esperar pra sempre, ou demais, senão o usuário vai achar que travou).
Isso muito provavelmente é um erro da parte do Pagseguro, afinal o servidor deles não respondeu. Então não há nada que vocês possam fazer a não ser cobrar explicações deles, pois eles podem estar com um problema de capacidade.
Ontem, dia 29/04, pela manhã o próprio site do Pagseguro não estava abrindo. Até achei estranho, afinal um site desses já deve esperar um alto volume de tráfego. Chegou até a aparecer uma mensagem indicando que o site estava com problemas mas que a API e os pagamentos prosseguiam normalmente.
Então o jeito é cobrar uma solução deles, e possivelmente modificar o módulo de modo a lidar com esse tipo de problema exibindo uma mensagem do tipo 'Desculpe mas o Pagseguro não respondeu, enviaremos a cobrança mais tarde' sem interromper o fluxo de compras da loja'.Assim como o módulo de Sedex deve mostrar um aviso quando o webservice está fora do ar.
Re: Erro com o pagseguro
Enviado: 30 Abr 2014, 12:24
por flaviot7
denisgomes escreveu:A mensagem 'CURL can't connect: connect() timed out' indica que o módulo do Pagseguro não foi capaz de conectar-se ao servidor do Pagseguro, ou a conexão demorou mais do que o tempo limite especificado pelo módulo (ele também não pode esperar pra sempre, ou demais, senão o usuário vai achar que travou).
Isso muito provavelmente é um erro da parte do Pagseguro, afinal o servidor deles não respondeu. Então não há nada que vocês possam fazer a não ser cobrar explicações deles, pois eles podem estar com um problema de capacidade.
Ontem, dia 29/04, pela manhã o próprio site do Pagseguro não estava abrindo. Até achei estranho, afinal um site desses já deve esperar um alto volume de tráfego. Chegou até a aparecer uma mensagem indicando que o site estava com problemas mas que a API e os pagamentos prosseguiam normalmente.
Então o jeito é cobrar uma solução deles, e possivelmente modificar o módulo de modo a lidar com esse tipo de problema exibindo uma mensagem do tipo 'Desculpe mas o Pagseguro não respondeu, enviaremos a cobrança mais tarde' sem interromper o fluxo de compras da loja'.Assim como o módulo de Sedex deve mostrar um aviso quando o webservice está fora do ar.
Muito obrigado pela sua contribuição valiosa interpretando para nós esse erro. Ontem eu tive esse problema e hoje está normal em alguns teste que realizei.
Tinha até desativado o módulo e retirado o banner do PagSeguro por achar que poderia ser incompatibilidade com a versão opencart da minha loja que é 1.5.6.1, embora já tinha funcionado muito bem antes na mesma versão.
Mais uma vez, muitíssimo obrigado.