Closed r7jacob closed 4 years ago
Boa Noite r7jacob,
Obrigado por utilizar o módulo oficial da PagSeguro!
Este erro "Unexpected token < in json at position 0
" é bem genérico e geralmente indica algum conflito/travamento de JavaScript originado em alguma área do layout, módulos ou scripts externos configurados na loja (gtm, analytics, adwords, campanhas de mkt no geral, etc).
Imagina que o JavaScript funciona dessa forma:
Processo A - arquivos .js do tema Processo B - arquivos .js externos Processo C - arquivos .js do módulo pagseguropro
Se algum conflito existir no processo A ou B o processo C não vai funcionar direito e vai apresentar problema.
Confere essas dicas:
a) Acessa as configurações do módulo e, verifica se a opção "Exibir parâmetros no Console do navegador?" está habilitada. Confere essas orientações: https://github.com/pagseguro/prestashop/tree/master/1.6.x/checkout-transparente/pagseguropro#6---debug-para-solu%C3%A7oes-de-problemas
b) Verifique se o token é de produção e o ambiente também;
c) Verifique se as tabelas do banco de dados "ps_pagseguropro" e "ps_pagseguropro_logs" estão corretamente instaladas;
d) Verifique se as permissões dos arquivos em sua hospedagem estão configuradas corretamente, o ideal é 755 para diretórios e 644 para arquivos.
e) Acesse no Back Office a tab “Parâmetros Avançados > Desempenho > CCC (COMBINAÇÃO, COMPRESSÃO E CACHE)”.
Marque as opções “Cache inteligente para JavaScript”, “Comprimir JavaScript inline em HTML” e “Mover o JavaScript para o final” como Não. Também limpe o cache no botão que fica no canto superior direito dessa tab, com o nome "Limpar cache".
É comum tem algum detalhe de JavaScript customizado no tema da loja, que não segue as melhores práticas de desenvolvimento, e acabam não suportanto as otmizações que o CCC proporcionam - gerando conflitos diversos e travamentos diversos.
Confere estes posts também:
https://github.com/pagseguro/prestashop/issues/88#issuecomment-626994811
https://github.com/pagseguro/prestashop/issues/49
Importante:
Para evitar problemas com o processamento do pagamento sugerimos que torne obrigatório os seguintes campos no cadastro do cliente: cpf, endereço, numeral do endereço, bairro, cidade, estado, telefone ou celular.
Lembrando que o cpf é sempre obrigatório para vendas via cartão de crédito, independente se o cliente é PF ou PJ.
Atenciosamente, Equipe PrestaBR
Olá Equipe PrestaBR, eu sou o proprietário da loja, fiz estas alterações sugeridas, mas persiste o mesmo problema. A loja PS é uma instalação nova! E o tema é Padrão.
Boa Tarde rogernascimento,
Tendo a certeza que o tema é padrão e a PrestaShop está em uma instalação limpa, então, temos que olhar para os requisitos mínimos de hospedagem.
Você já conseguiu resolver os problemas de migração e compatibilidade de php?
Issue: https://github.com/pagseguro/prestashop/issues/88
Lembrando que os módulos disponibilizados aqui no Git são testados e homologados, usados amplamente em produção por muitas lojas.
Atenciosamente, Equipe PrestaBR
Fizemos um debug (há como fazer o teste lá) e no momento de finalizar aponta erros nas linas 282 e 283 do .../pagseguropro/pagseguropro.php
'number_invoice' => $address->{$this->number_field},
'compl_invoice' => $address->{$this->compl_field},
Olá rogernascimento,
Fizemos um debug (há como fazer o teste lá) e no momento de finalizar aponta erros nas linas 282 e 283 do .../pagseguropro/pagseguropro.php
'number_invoice' => $address->{$this->number_field}, 'compl_invoice' => $address->{$this->compl_field},
Essas linhas indicam o numeral do endereço no cadastro do cliente. Você pode utilizar um módulo para adaptar o cadastro do cliente para o padrão brasileiro, o pagseguropro é compatível com a maioria.
Se preferir você pode customizar o cadastro via override na classe Address, é só especificar o numeral do endereço em um desses campos: company
ou numend
ou compl
ou other
.
Importante revisar...:
Para evitar problemas com o processamento do pagamento sugerimos que torne obrigatório os seguintes campos no cadastro do cliente: cpf, endereço, numeral do endereço, bairro, cidade, estado, telefone ou celular.
Atenciosamente, Equipe PrestaBR
Não compreendi, o módulo do PagSeguro não deveria ter um tratamento para estes casos (vazio ou nulo)? Bem... estou fazendo esta pergunta com base na resposta de vocês, pelo o que eu entendi vocês estão entendendo que vieram campos vazios ou nulos. Foi isto?
Olá rogernascimento,
O módulo apenas captura esses campos na tela de checkout a partir do endereço que o cliente cadastrou previamente.
Esses campos não podem ser vazios ou nulos e são de responsabilidade da loja, faz parte das configurações básicas do cadastro do cliente no sistema. A loja ter os campos obrigatórios e disponíveis no cadastro é fundamental, tanto para processar o pagamento quanto para eventual futura emissão de NF-e no pedido.
Pelo seu último comentário parece que os campos estão em branco, se for esse o caso, você deve tratar os campos no momento do cadastro do endereço.
Se não for esse o problema passa os detalhes pra gente analisar. Neste momento você já está analisando o payload de pagamento no log?
Atenciosamente, Equipe PrestaBR
Vou verificar se estão indo vazios ou nulos. Mas vocês deveriam validar e informar o usuário, não apenas travar! Poderiam melhorar a programação. Outra... a instalação nativa do PagSeguro não tem estes campos que vocês precisam, mas em nenhum momento vocês comentam que é um requisito do módulo de vocês que se tenha um módulo a parte não nativo que adicione estes campos!
Olá rogernascimento,
Agradecemos o seu feedback!
Já temos em nossa agenda esse feedback também, confere: https://github.com/pagseguro/prestashop/issues/89#issuecomment-627315141
Na próxima upgrade dos módulos da 1.6 e 1.7 vamos lançar multiplas validações e alertas na tela de configuração do módulo, para ensinar e orientar o lojista a lançar as configurações mínimas da loja antes de tentar processar qualquer pagamento.
Atenciosamente, Equipe PrestaBR
Olá,
Estamos instalando o PagSeguroPro para uma cliente e notamos uma falha no checkout dela:
Em especial nesta linha aqui:
Teriam uma solução para este problema?