Fórum OpenCart Brasil

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

Suporte para extensões de Formas de Pagamento
#50454
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;
}
#50607
mateusjeronimo escreveu: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;
}
amigo esta terceira parte de criar um novo método que ficou um pouco confuso, aonde no arquivo devo inserir?
se puder colar o conteúdo do arquivo alterado, testei almentar somente o Timeout mas não resolveu.

Olá! Tudo bem? Verifique as configura&cced[…]

Olá! Tudo bem? Trabalho com Opencart h&aac[…]

Imagem do Carrinho de Compras

Olá! Tudo bem? São vários lo[…]

Discover new facets of pleasure, one night only R[…]