Comunidade

Ask a Question
Back to All

Iniciar sessão do checkout só funciona na sandbox

Boa tarde,

Estou com problemas para gerar a sessão. Na vdd está funcionando para sandbox, mas não para produção. Antes estava funcionando nos dois casos.

Estou gerando conforme a documentação:
https://dev.pagseguro.uol.com.br/v1.0/reference/transparente-gerando-uma-sessao

Para produção estou recebendo um erro
{"@attributes":{"lang":"en"},"head":{"title":"411 - Length Required"},"body":{"h1":"411 - Length Required"}}

Poderiam me ajudar?

Meu código está assim:

include 'configuracao.php';

$url = URL_PAGSEGURO ."sessions?email=".EMAIL_PAGSEGURO."&token=".TOKEN_PAGSEGURO;

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("accept: application/xml;"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($curl);
curl_close($curl);

$xml = simplexml_load_string($retorno);
echo json_encode($xml);

Mesmo problema aqui, porém seguindo o código escrito na documentação.

https://dev.pagseguro.uol.com.br/v1.0/reference/transparente-gerando-uma-sessao
Caso consiga uma resposta favor enviar para alvaro.lordelo@gmail.com

Olá, Álvaro. Consegui resolver o problema enviando Content-Length:0 . Teste enviar só uma vez. Se não der certo, tente enviar 2 vezes. Desse jeito q fiz deu certo:

curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/x-www-form-urlencoded;charset=UTF-8;Content-Length:0"));
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Length:0"));

Muito Obrigado pela resposta...resolveu o problema...o suporte apenas deu uma resposta vazia...que não ajudou em nada!
qualquer coisa é só chamar...

Olá pessoal, tudo bem ? Estava com o mesmo problema e resolvi com a sugestão da Daniela. O problema agora é que consigo iniciar a sessão, porém, o processamento do pagamento só funciona no sandbox. Tentei a mesma solução no header mas não rolou. Vou postar aqui a chamada do cURL, se alguém mais passou por isso ou se tiver alguma ideia, eu agradeço.

$buildQuery = http_build_query($DadosArray);
$url = URL_PAGSEGURO . "transactions";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded; charset=UTF-8"));
//curl_setopt($curl, CURLOPT_HTTPHEADER, array("Accept: application/x-www-form-urlencoded;charset=UTF-8;Content-Length:0"));
//curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Length:0"));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $buildQuery);
$retorno = curl_exec($curl);
curl_close($curl);
$xml = simplexml_load_string($retorno);

Para checar a transação e fazer o pagamento eu passei esse Header:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

Aquele outro eu usei só pra gerar o session_id

Estava com esse problema também e resolvi usando a dica de vocês, obrigado



© 1996- Todos os direitos reservados.

PAGSEGURO INTERNET INSTITUIÇÃO DE PAGAMENTO S/A - CNPJ/MF 08.561.701/0001-01

Av. Brigadeiro Faria Lima, 1.384, São Paulo - SP - CEP 01451-001

English
Powered by Localize
Português (Brasil)