Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Pottersky

[Resolvido] cUrl Timeout!

Recommended Posts

Estou tentando rodar os exemplos (sources/examples/createPaymentRequest.php) fornecidos pelo PagSeguro, porem estou recebendo o seguinte erro: CURL can't connect: name lookup timed out

 

PHP Fatal error:  Uncaught exception 'Exception' with message 'CURL can't connect: name lookup timed out' in /var/www/pagseguro/source/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php:104
Stack trace:
#0 /var/www/pagseguro/source/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php(49): PagSeguroHttpConnection->curlConnection('POST', 'https://ws.pags...', Array, 20, 'ISO-8859-1')
#1 /var/www/pagseguro/source/PagSeguroLibrary/service/PagSeguroPaymentService.class.php(52): PagSeguroHttpConnection->post('https://ws.pags...', Array, 20, 'ISO-8859-1')
#2 /var/www/pagseguro/source/PagSeguroLibrary/domain/PagSeguroPaymentRequest.class.php(420): PagSeguroPaymentService::createCheckoutRequest(Object(PagSeguroAccountCredentials), Object(PagSeguroPaymentRequest))
#3 /var/www/pagseguro/source/examples/createPaymentRequest.php(66): PagSeguroPaymentRequest->register(Object(PagSeguroAccountCredentials))
#4 /var/www/pagseguro/source/examples/createPaymentRequest.php(86): createPaymentRequest::main()
#5 {main}\n  thrown in /var/www/pagseguro/source/PagSeguroLibrary/utils/PagSeguroHttpConnection.class.php on line 104

 

 

O cUrl esta funcionando, pois criei um arquivo teste e fiz requisicao para www.google.com.br e retornou a pagina normalmente.

 

Alem disso, rodei com EXITO o seguinte comando no terminal (copiado da documentacao):

curl -v https://ws.pagseguro.uol.com.br/v2/checkout/ -d	"email=XXX@EMAIL.COM&token=TOKEN_TOKEN_TOKEN_TOKEN\
&currency=BRL&itemId1=0001&itemDescription1=Notebook Prata&itemAmount1=24300.00\
&itemQuantity1=1\
&itemWeight1=1000\
&itemId2=0002\
&itemDescription2=Notebook Rosa\
&itemAmount2=25600.00\
&itemQuantity2=2\
&itemWeight2=750\
&reference=REF1234\
&senderName=Jose Comprador\
&senderAreaCode=11\
&senderPhone=56273440\
&senderEmail=comprador@uol.com.br\
&shippingType=1\
&shippingAddressStreet=Av. Brig. Faria Lima\
&shippingAddressNumber=1384\
&shippingAddressComplement=5o andar\
&shippingAddressDistrict=Jardim Paulistano\
&shippingAddressPostalCode=01452002\
&shippingAddressCity=Sao Paulo\
&shippingAddressState=SP\
&shippingAddressCountry=BRA"

 

 

Retornou um XML:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><errors><error><code>11027</code><message>Item quantity out of range: 2PagSeguro</message> ................. etc 

 

Alguma ideia?

 

A parte louca é que eu copiei da API a parte que faz o cUrl e rodou com sucesso. Apenas usando a API diretamente que recebo Timeout...

 

 

$url = "https://ws.pagseguro.uol.com.br/v2/checkout";
$timeout = 6000;
$data = Array('email' => $EMAIL, 
'token' => $TOKEN,
'currency' => 'BRL',
'itemId1' => '0001',
'itemDescription1' => 'Notebook Prata',
'itemAmount1' => '24300.00',
'itemQuantity1' => '1',
'itemWeight1' => '1000'
);


$postFields    = ($data ? http_build_query($data, '', '&') : "");
$contentLength = "Content-length: ".strlen($postFields);
$methodOptions = Array(
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postFields,
);

$options = Array(
CURLOPT_VERBOSE => true,
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_CONNECTTIMEOUT => $timeout,
//CURLOPT_TIMEOUT => $timeout
); 
$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']);
echo 'status'.(int)$info['http_code'];
//$this->setResponse((String)$resp);
echo (String)$resp;
if ($error) {
throw new Exception("CURL can't connect: $errorMessage");
echo 'false';
} else {
echo  'true';
}

 

A parte louca é que eu copiei da API a parte que faz o cUrl e rodou com sucesso. Apenas usando a API diretamente que recebo Timeout...

 

 

$url = "https://ws.pagseguro.uol.com.br/v2/checkout";
$timeout = 6000;
$data = Array('email' => $EMAIL, 
'token' => $TOKEN,
'currency' => 'BRL',
'itemId1' => '0001',
'itemDescription1' => 'Notebook Prata',
'itemAmount1' => '24300.00',
'itemQuantity1' => '1',
'itemWeight1' => '1000'
);


$postFields    = ($data ? http_build_query($data, '', '&') : "");
$contentLength = "Content-length: ".strlen($postFields);
$methodOptions = Array(
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postFields,
);

$options = Array(
CURLOPT_VERBOSE => true,
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_CONNECTTIMEOUT => $timeout,
//CURLOPT_TIMEOUT => $timeout
); 
$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']);
echo 'status'.(int)$info['http_code'];
//$this->setResponse((String)$resp);
echo (String)$resp;
if ($error) {
throw new Exception("CURL can't connect: $errorMessage");
echo 'false';
} else {
echo  'true';
}

 

so funciona assim:

 

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.