Erro 400 (Bad request) - Checkout

Comentários

14 comentários

  • Flávio Sena

    E o que o PagSeguro retornou no body da requisição?

    A proposito, posta essas infromações do FormData como string ao invés de imagem, assim dá para testarmos aqui essas informações para validarmos se é um problema de informação.

  • Juliana Cavalcanti

    O response do pagseguro vem completamente vazio:

     

     

    Segue formData:


    &currency=BRL&itemId1=0001&itemDescription1=Anel Quadrado&itemAmount1=50.00&itemQuantity1=1&itemWeight1=1000&itemId2=0002&itemDescription2=Brinco Antena&itemAmount2=99.00&itemQuantity2=2&itemWeight2=1000&reference=REF1234&senderName=Nara Correia&senderAreaCode=81&senderPhone=982345039&senderEmail=contato@narajewelry.com.br&shippingType=1&shippingAddressStreet=Rua+das+Gra%C3%A7as&shippingAddressComplement=Apt+301&shippingAddressCity=Recife&shippingAddressPostalCode=52011200&shippingAddressNumber=277&shippingAddressDistrict=Gra%C3%A7as&shippingAddressState=Pernambuco&shippingAddressCountry=BRA

     

     

    No console tá dando um erro de CORS:


     

    Não sei mais o que fazer pra fazer funcionar. Desde já, agradeço a ajuda!

  • Felipe Olimpio

    Olá Juliana, 

    Pode efetuar um teste e nos dizer o que o PagSeguro retorna?

    No parâmetro shippingAdressState substitua o valor "Pernambuco" por "PE" e em seu Header, tente encaminhar apenas o Content-Type: application/x-www-form-urlencoded e no body as informações em urlenconded.

    Efetuei um teste via cURL alterando essas informações que mencionei e consegui obter o código de checkout. Veja como realizei a seguir. Basta substituir por suas credenciais:

    curl -X POST \
    'https://ws.pagseguro.uol.com.br/v2/checkout?email=suacontapagseguro@email.com&token=Seu_Token' \
    -H 'Accept: */*' \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -H 'Origin: https://www.narajewelry.com.br' \
    -H 'Referer: https://www.narajewelry.com.br/carrinho/' \
    -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36' \
    -H 'cache-control: no-cache' \
    -d 'currency=BRL&itemId1=0001&itemDescription1=Anel%20Quadrado&itemAmount1=50.00&itemQuantity1=1&itemWeight1=1000&itemId2=0002&itemDescription2=Brinco%20Antena&itemAmount2=99.00&itemQuantity2=2&itemWeight2=1000&reference=REF1234&senderName=Nara%20Correia&senderAreaCode=81&senderPhone=982345039&senderEmail=testepagseguro%40gmail.com&shippingType=1&shippingAddressStreet=Rua%2Bdas%2BGra%25C3%25A7as&shippingAddressComplement=Apt%2B301&shippingAddressCity=Recife&shippingAddressPostalCode=52011200&shippingAddressNumber=277&shippingAddressNumber=277&shippingAddressDistrict=Gra%25C3%25A7as&shippingAddressDistrict=Gra%25C3%25A7as&shippingAddressState=PE&shippingAddressState=Pernambuco&shippingAddressCountry=BRA%3A52011200&shippingAddressCountry=BRA'

    Aguardo seu retorno.

  • Juliana Cavalcanti

    Fiz a alteração no Header, e mudei o parametro de Estado

    O Status deu 200, mas sem corpo de resposta.

     

    No console apresentou o seguinte erro:

     

    Segue payload:

    &currency=BRL&itemId1=0001&itemDescription1=Anel V&itemAmount1=50.00&itemQuantity1=1&itemWeight1=1000&itemId2=0002&itemDescription2=Colar Personale&itemAmount2=170.00&itemQuantity2=2&itemWeight2=1000&reference=REF1234&senderName=Nara Correia&senderAreaCode=81&senderPhone=982345039&senderEmail=contato@narajewelry.com.br&shippingType=1&shippingAddressStreet=Rua+das+Gra%C3%A7as&shippingAddressComplement=Apt+301&shippingAddressCity=Recife&shippingAddressPostalCode=52011200&shippingAddressNumber=N%C3%BAmero&shippingAddressDistrict=Gra%C3%A7as&shippingAddressState=PE&shippingAddressCountry=BRA

     

  • Juliana Cavalcanti

    Gente, porque as imagens sumiram??

    Continuo aguardando um retorno sobre minha última postagem...

    Não consigo prosseguir com a venda, pois apesar do status 200, está dando um erro de CORS como enviei no print, e a requisição não traz retorno algum.

     

    Alguém pode me ajudar nisso, por favor??

  • Felipe Olimpio

    Juliana, desculpe a demora no retorno.

    Por algum motivo suas imagens e seu últim post foi para moderação e foram bloqueadas aqui na comunidade. Poderia por gentileza nos encaminhar novamente esse último print do erro enquanto valido seu payload?

  • Juliana Cavalcanti

    Certo

     

    O erro apresentado no console foi o seguinte:

  • Felipe Olimpio

    Oi Julia,

    Da parte de integração não há problema algum. Efetuei testes, inclusive com sua conta para validar seu payload e consegui obter o código do checkout na resposta da API.

    Sobre o erro retornado no console, me parece ter algo relacionado ao seu servidor, já que a mensagem de erro diz que foi bloqueado pelo CORS.

    Consegue testar sua integração em outro servidor e/ou localhost para validarmos se é algum problema relacionado ao servidor?

  • Juliana Cavalcanti

    Localhost dá o mesmo problema:

    Infelizmente não disponho de outro servidor.

    Os testes que você efetuou foi via Postman ou algo parecido? Se sim, não ajuda muito nesse caso porque eles não possuem bloqueadores como os browsers.

    Sigo sem saber o que fazer gente =/

  • Bruno Oliveira

    Juliana, você esta usando Wordpress?

    Se sim, pode ser que a URL principal não possui HTTPs configurado.

  • Juliana Cavalcanti

    Sim, usamos wordpress.

    Essa configuração de HTTPs é feita no servidor onde hospedo o site, correto? Posso verificar ...
    Mas e quanto ao localhost que também uso aqui, e deu o mesmo erro??

  • Flávio Sena

    Juliana,

    Esse erro do CORS Policy é por conta de uma regra de segurança dos navegadores de bloquear requisições para outros dominios que não são o seu.

    Ou seja, a requisição para o servidor do PagSeguro não irá funcionar usando javascript, você deverá realizar essa requisição via backend.

    Se quiser entender a fundo o problema recomendo a leitura deste artigo:
    https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

  • Bruno Oliveira

    Juliana,

    Tive exatamente o mesmo problema, com WordPress. 

    PHP: header("access-control-allow-origin: https://ws.pagseguro.uol.com.br");

    Use isso na sua index, veja se resolve. Coloque na primeira linha da sua página (deduzindo que ela seja PHP). Resolveu pra mim.

     

  • Flávio Sena

    Bruno,

    Ali a requisição que ela fez inicialmente foi via Javascript. Baseado na politica do CORS ela não vai conseguir seguir por esse caminho.

    Agora se ela optar em fazer isso via backend (pode ser o PHP), ai ela terá sucesso na requisição.