pagseguro / pagseguro-modulo-prestashop

Módulo de Checkout Transparente para integração com PrestaShop 1.6, 1.7 e 8.0 - Oficial PagBank
Open Software License 3.0
50 stars 92 forks source link

Pagamento Temporariamente Indisponível no Momento...... #65

Closed glaucomodera closed 4 years ago

glaucomodera commented 4 years ago

Olá amigos, bom dia. Possuo o PrestaShop 1.6.1.23 e sempre utilizei o módulo oficial de vocês. Versão pró 1.1.1 até 1.1.6 (atual)

Recentemente eu troquei o domínio de minha loja e aproveitei para atualizar o módulo pagseguropro para a versão 1.1.6. (estava na versão 1.1.5)

Desde então eu tenho recebido reclamações de clientes que não conseguem pagar, pois dá a mensagem que o "Pagamento está Temporariamente Indisponível no Momento......"

Este problema estava impactando 40% de meus clientes (aproximadamente) e eu não entendia o porquê de a maioria conseguir pagar enquanto outros não conseguiam. Finalmente eu descobri uma parte do problema. De alguma forma o módulo pagseguropro depende do UF preenchido corretamente. Não sei muito bem explicar, mas quando o cliente não preenche o UF, no cadastro, meu site preenche automaticamente. Até aí tudo bem. Acontece que na hora de pagar apare a mensagem "Pagamento Temporariamente Indisponível no Momento........". Eu simulei diversas vezes e confirmei esse problema. Acontece que eu não consigo saber quais clientes preencheram o UF e quais não preencheram, pois meu site preenche automaticamente se ele não coloca. Assim eu retirei a obrigatoriedade de preenchimento de UF do meu site e o problema aparentemente foi resolvido, pois fiz vários testes depois e muitas vendas sem problemas.

Aconteceu agora que recebi outra reclamação de um cliente alegando que não consegue comprar em meu site porque o pagamento está "...Temporariamente Indisponível no Momento....." Fiz vários outros testes de pagamento em meu site e várias formas de cadastros diferentes para tentar replicar o erro e não consegui. A única possibilidade que eu identifiquei que pode dar esse erro de indisponibilidade foi encurtar o nome do titular do pagamento (no campo Titular do Cartão) - o que eu acho improvável. Em fim, não consigo mais entender o que está acontecendo.

Não sei mais o que fazer e preciso muito de ajuda de vocês para elucidar esse caso. Vale lembrar que a instalação do módulo foi feita rigorosamente seguindo as orientações da documentação e fizemos todos os testes (da referida documentação) para confirmar que não existe problema de java.

prestabr commented 4 years ago

Boa Tarde glaucomodera,

Obrigado por utilizar o módulo oficial e acompanhar as updates! :)

Todas as transações dependem que o cadastro/endereço do cliente estejam 100%.

Você pode utilizar o gerenciador de Logs do módulo para analisar o que foi enviado para o PagSeguro em determinada transação, acessa "Compras ou Pedidos > PagSeguro - Logs". Registro de Transações & Gerenciamento de Logs: https://github.com/pagseguro/prestashop/tree/master/1.6.x/checkout-transparente/pagseguropro#7---registro-de-transa%C3%A7%C3%B5es--gerenciamento-de-logs Por favor, confere este post: https://github.com/pagseguro/prestashop/issues/62

O UF é um campo obrigatório no cadastro do cliente e o módulo quando vai processar o pagamento captura essa informação da tabela ps_address, campo id_state, que foi preenchido durante o cadastro do endereço.

Na PrestaShop existe uma relação UF x ID, que fica cadastrada em "Localização > Estatos". Se o id_state estiver em branco ou o ID do UF não corresponder com essa relação que existe na PrestaShop o módulo não irá conseguir informar o Código ISO, gerando problemas na tela de pagamento.

É possível que a relação UF x ID esteja divergente depois da update da loja, isso se em algum momento você tenha alterado alguma coisa por lá antes da update. Se você utiliza algum módulo que preenche o endereço ao informar o cep, pode ser que este módulo esteja com a relação UF x ID divergente da cadastrada na PrestaShop.

Se puder, por favor, posta aqui o endereço da sua loja que a gente faz um cadastro e pedido de teste via Boleto.

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Olá amigo, obrigado pelo retorno e parabéns pelo trabalho. Meu site é www.modera.com.br logs

glaucomodera commented 4 years ago

Cliente tentou comprar via boleto e deu o mesmo erro. boleto

glaucomodera commented 4 years ago

Segue mais um log que eu achei diferente dos outros, mas o erro era o mesmo. outro log 1 outro log 2

glaucomodera commented 4 years ago

Lembrando que eu não utilizo o código ISO do Estado. Simplesmente utilizo o "State:name".

prestabr commented 4 years ago

Boa Tarde glaucomodera,

Obrigado pelo feedback!

Nos Logs existem os dados enviados e a resposta da api. Quando existe a reposta da api e está completa como nos demais prints significa que tudo ocorreu como o esperado.

Neste print o campo "reference" está incompleto. Este campo é composto pelo pelo ID do Carrinho + Número aleatório. Exemplo: 1232.83948374. O campo shippingAddressState (UF) está ok.

Cliente tentou comprar via boleto e deu o mesmo erro. boleto

Neste último print de logs que você mandou o campo "reference" está ok: 8477.71244506

Fizemos um pedido de teste em sua loja...

O cadastro de cliente só passou depois que informamos um apelido diferente de "meu endereço", deve ter alguma customização na áera, tudo ok.

Screenshot at 2019-10-21 15-51-28

O pedido foi criado normalmente:

Screenshot at 2019-10-21 15-54-19

O código ISO é referente à o que é enviado no payload, confere o campo shippingAddressState. O State:Name é outra coisa...

Aparentemente está funcionando tudo ok... Boas Vendas! :)

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Olá, boa tarde. Obrigado mais uma vez.

Estou desesperado, pois eu faço os testes aqui e está tudo normal.

Depois que você fez os testes, 2 clientes conseguiram comprar em meu site normalmente, porém outros 2 clientes não conseguiram, pois aparece a mensagem que o meio de pagamento está "Temporariamente Indisponível no Momento......"

O que me deixa triste é que esses pagamentos não vão para a minha conta do pagseguro. Não existe uma comunicação com o site do pagseguro quando dá esse erro.

Outra coisa que me deixa triste é não aparecer no log o erro. Deveria aparecer nos logs a falha. Eu te mostrei os logs de pagamentos que deram como indisponível você percebeu que não há nada de estranho. Deveria ter um código desse erro e esse código deveria estar lá registrado nos Logs entende?

Por que não aparece nos Logs o comando do erro de indisponibilidade?

glaucomodera commented 4 years ago

Veja como aparece a lista de logs da compra efetivada com sucesso. compra ok

glaucomodera commented 4 years ago

Agora veja como aparece a lista de logs da compra onde aparece que o pagamento está Indisponível no Momento: compra erro

prestabr commented 4 years ago

Boa Noite glaucomodera,

Segue algumas considerações...

Olá, boa tarde. Obrigado mais uma vez.

Estou desesperado, pois eu faço os testes aqui e está tudo normal.

Depois que você fez os testes, 2 clientes conseguiram comprar em meu site normalmente, porém outros 2 clientes não conseguiram, pois aparece a mensagem que o meio de pagamento está "Temporariamente Indisponível no Momento......"

O que me deixa triste é que esses pagamentos não vão para a minha conta do pagseguro. Não existe uma comunicação com o site do pagseguro quando dá esse erro.

Quando surge esse alerta na tela "Pagamento indisponível..." o pedido vai sim até o PagSeguro. O alerta só é exibido na tela mediante à resposta da api de Checkout Transparente do PagSeguro. Todas as ações, literalmente, as enviadas e recebidas entre a Loja e o PagSeguro ficam registradas na área de Logs. Nestes casos o cliente volta pro checkout para tentar pagar novamente.

Outra coisa que me deixa triste é não aparecer no log o erro. Deveria aparecer nos logs a falha. Eu te mostrei os logs de pagamentos que deram como indisponível você percebeu que não há nada de estranho. Deveria ter um código desse erro e esse código deveria estar lá registrado nos Logs entende?

Só analisando esses logs de perto e conferindo as transações em sua conta no PagSeguro para precisar se os dados que você postou aqui estão corretos e em ordem cronológica.

Pesquisando pelo ID do Carrinho, para facilitar, filtra pelas opções Method e Url: Screenshot at 2019-10-21 20-32-11

Por que não aparece nos Logs o comando do erro de indisponibilidade?

Este alerta "Pagamento indisponível..." é uma mensagem genérica, para tratar diversas possibilidades de problemas. Dependendo do caso não existe uma resposta pontual com um código de erro específico retornado pelo API.

Muitas vezes este problema costuma ocorrer quando o cliente tem a conta com algum tipo de bloqueio lá no pagseguro (cpf ou e-mail de cadastro). Neste caso é preciso orientar o cliente a criar outra conta na loja virtual (com outros dados de cadastro) ou solicitar que ele entre em contato com o pagseguro para ele verificar as pendências na conta dele.

Infeizmente não estamos tratando um problema pontual ou Bug de funcionamento no módulo. Se o problema não estiver girando em torno de um bloqueio de conta de cliente estamos falando de algo originado na loja virtual ou talvez no link/hospedagem da loja.

Atenciosamente, Equipe PrestaBR

prestabr commented 4 years ago

Olá glaucomodera,

Agora veja como aparece a lista de logs da compra onde aparece que o pagamento está Indisponível no Momento: compra erro

Você está visualizando a lista de Logs, você precisa clicar em "Ver" para ter acesso aos dados enviados e recebidos.

Atenciosamente, Equipe PrestaBR

prestabr commented 4 years ago

Olá glaucomodera,

Veja como aparece a lista de logs da compra efetivada com sucesso. compra ok

Não é assim que você deve analisar os Logs, é preciso acessar cada um deles separadamente para visualizar o que foi enviado e recebido.

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

É que eu filtrei por Id do carrinho. Pelo horário dá pra ver que está em ordem. A questão é que estava tudo funcionando até eu mudar o domínio. O problema é que logo em seguida eu atualizei o módulo para 1.1.6 entende? Daí eu não sei onde está o problema.

Vou tentar colocar a versão 1.1.1 e vê se o cliente consegue pagar.

prestabr commented 4 years ago

Olá glaucomodera,

Pode ser só coincidência, existem muitos casos de conta bloqueada, tentativa de fraude, etc, é uma boa conferir este detalhe com os clientes ou com o PagSeguro (informa o e-mail e cpf) para descartar a possibilidade.

Você só trocou de hospedagem ou você também atualizou a versão do PrestaShop? Porque se você atualizou é uma boa conferir a questão do preenchimento automático, só pra garantir que não exista nenhum cadastro com informação errada (https://github.com/pagseguro/prestashop/issues/65#issuecomment-544572505).

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Oi amigo, tive que colocar o módulo do mercado pago para sobreviver no meu site depois desse problema. Nunca tive esse módulo, pois sempre estive com vocês nesses 3 anos. Acontece que já faz 20 dias que estou com esse problema e quando dá esse erro e os clientes reclamam eu oriento a comprarem pelo mercado pago e o mercado pago está funcionando 100%.

Eu pensei na possibilidade de ser um problema com o cliente, mas depois que eu coloquei o módulo do mercado pago eu descobri que não era esse o problema.

O problema é que (1) o módulo do mercado pago não é responsivo e (2) são poucos os clientes que reclamam ou estão dispostos a tentar novamente depois da falha. Mas os que estão dispostos, pagam normalmente pelo mercado pago.

glaucomodera commented 4 years ago

Eu acho que pode ser também alguma falha nas permissões do módulo, pois ele só funciona quando eu coloco todas as permissões com 755.

Se eu deixo ele com as permissões de fábrica, dá pau na hora da compra. "Server Error" ftp

prestabr commented 4 years ago

Olá glaucomodera,

Entendemos e ficamos à disposição para eventuais dúvidas.

Não recomendamos que você faça o downgrade da versão do módulo, muitas melhorias foram realizadas no decorrer das atualizações. Você pode acabar gerando outros problemas... https://github.com/pagseguro/prestashop/tree/master/1.6.x/checkout-transparente/pagseguropro#changelog

Não deixe de verificar a questão do bloqueio de contas, sendo esse o problema não há outra opção a não ser entrar em contato com o cliente e solicitar que ele faça um novo cadastro com novos dados (e-mail e cpf). Baseado em nossa experiência com várias outras lojas, em 99% dos casos se trata de uma fraude ou pendência financeira com o PagSeguro.

No Checkout Transparente, quando o cliente compra em sua loja, o PagSeguro analisa se o cliente já possui uma conta com eles. Se não houver uma conta então o PagSeguro cria uma. Caso a conta exista o PagSeguro verifica se tem alguma pendência, se não houver segue tudo ok.

Atenciosamente, Equipe PrestaBR

prestabr commented 4 years ago

Olá glaucomodera,

Eu acho que pode ser também alguma falha nas permissões do módulo, pois ele só funciona quando eu coloco todas as permissões com 755.

Se eu deixo ele com as permissões de fábrica, dá pau na hora da compra. "Server Error" ftp

As permissões do módulo quem define é a hospedagem, nenhum módulo ou sistema faz isso por conta própria. O ideal é você abrir um ticket na sua hospedagem solicitando a correta configuração das permissões dos arquivos em sua /public_html/, 755 para pastas e 644 para arquivos. Outra opção, se você tiver acesso ao WHM, é realizar a instalação do pacote "php suhosin" em sua hospedagem. Utilizando o Easy Apache você consegue selecionar o pacote pra instalação.

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Então, acontece que eu faço vários testes com cartão de crédito Fake e ocorre uma comunicação com o pagseguro e eu recebo um e-mail de pagamento negado.

Acontece que quando o cliente tenta comprar e dá a mensagem "Pagamento Temporariamente Indisponível no Momento......" não aparece em lugar nenhum, somente nos registros do Log.

prestabr commented 4 years ago

Olá glaucomodera,

Quem recebe o e-mail informativo é sempre o comprador mesmo. Quando o cliente comprar é ele quem recebe a mensagem. Pagamento negado não gera pedido na loja, o cliente volta pro checkout pra tentar de novo. Se a conta (e-mail e cpf) estiver com bloqueio no PagSeguro ele pode tentar várias vezes e nenhuma será aceita.

A mensagem de Pagamento Indisponível indica que não processou o pagamento no PagSeguro, tem que abrir os Logs, você conferiu as orientações de como abrir o log e ver o que é enviado e recebido? Não tem como deduzir, tem que olhar com calma e ter paciência.

Você tem algum técnico, freelancer ou agência para te ajudar?

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Eu não tenho técnico, nem freelancer ou agência.

Tenho só o técnico da Neogest que estou aguardando retorno, pois eu abri um ticket lá, pois tenho o módulo de preenchimento de CEP e CPF deles. É o módulo deles que preenche o endereço através do CEP. Estou aguardando eles.

O problema é que quando eu entro na área administrativa do pagseguro, não consta nada lá que indique que em um determinado momento o pagamento ficou indisponível.

Eu queria que alguém do desenvolvimento do próprio módulo olhasse isto e falasse o que precisa ser feito.

prestabr commented 4 years ago

Olá glaucomodera,

Eu não tenho técnico, nem freelancer ou agência.

Tenho só o técnico da Neogest que estou aguardando retorno, pois eu abri um ticket lá, pois tenho o módulo de preenchimento de CEP e CPF deles. É o módulo deles que preenche o endereço através do CEP. Estou aguardando eles.

Então o ideal é aguardar o retorno deles para garantir que esses detalhes estejam 100%. Confere também a questão das permissões na hospedagem que é tão importante quanto o cep e cpf.

O problema é que quando eu entro na área administrativa do pagseguro, não consta nada lá que indique que em um determinado momento o pagamento ficou indisponível.

Eu queria que alguém do desenvolvimento do próprio módulo olhasse isto e falasse o que precisa ser feito.

Nós que desenvolvemos o módulo e também somos os reponsáveis pela manutenção, lançamento de updates e eventual suporte técnico aqui no Git Hub.

É como comentamos no post anterior: "Pagamento negado não gera pedido na loja, o cliente volta pro checkout pra tentar de novo.". Você não verá o pedido negado na loja. Fica registrado apenas nos logs. Se no PagSeguro não fica nada registrado talvez a questão das permissões esteja causando problemas na comunicação entre a loja x PagSeguro. Ou se o cliente estiver com bloqueio na conta o PagSeguro não considera como transação.

Por favor, tenta reler com calma as mensagens que trocamos aqui pontuamente. Confere todos os detalhes com atenção. Temos a impressão que você está passando batido em alguma explicações importantes como "o que é a mensagem exibida na tela" e "o que é o bloqueio de conta e quando e porque ocorrem".

Você precisa ter a hospedagem e loja funcionando 100%, o módulo de checkout transparente exige que a loja esteja minimamente configurada e livre de problemas na área de checkout e cadastro do cliente.

Atenciosamente, Equipe PrestaBR

glaucomodera commented 4 years ago

Vou fazer isto sim... vou repassar os pontos. Se vocês tiverem algum técnico especialista pra me indicar eu agradeço. Só preciso mesmo desse pagamento funcionando.

glaucomodera commented 4 years ago

Olá, bom dia.

Refiz tudo em meu site, reconstruí tudo. Fiz dezenas de testes via sandbox e tudo funcionou normalmente. Hoje pela manhã um cliente reclamou alegando que o pagamento estava indisponível. Eu fiz uma compra real em meu site usando meu cartão de crédito e deu pagamento indisponível. Detalhe: Meu cartão é do próprio pagseguro e já fiz compras reais em meu site antigamente e as compras eram efetivadas.

prestabr commented 4 years ago

Boa Tarde glaucomodera,

O sandbox tem o token diferente do de produção, conferiu este detalhe? O titular da conta no pagseguro também não consegue fazer pagamentos para ele mesmo, já tentou comprar com outra conta?

Faz o seguinte...

Por favor, cria uma lista com o ID de todos os clientes que enfrentaram problemas para comprar. Manda pra gente essa lista com os dados de acesso ao painel de adminsitração da sua loja + FTP da sua hospedagem. Vamos analisar os Logs para você e identificar o que houve de problema nestas tentativas de compras.

E-mail: sac@prestabr.com.br

Atenciosamente, Equipe PrestaBR

prestabr commented 4 years ago

Boa Noite Glauco,

Apenas um feedback para documentarmos a solução...

Fizemos alguns testes em sua loja e identificamos que está ausente o parâmetro "noInterestInstallmentQuantity" no payload da transação.

Esta informação é definida nas configurações de parcelamento do módulo. Nas versões mais recentes alteramos os campos "Quantidade máxima de parcelas" e "Quantidade de parcelas sem juros" de "input" para "select", porque muitas pessoas preenchiam a quantidade de parcelas errado.

Solução: Por favor, acesse as configurações do módulo, selecione as opções e clique em Salvar. Se já estiver selecionado basta clicar em Salvar.

gngmicfbnfcmkijm

Fizemos vários pedidos de teste, conferimos todos os logs, tudo ok. Também atualizamos o módulo para você, versão 1.1.7.

Qualquer problema ficamos à disposição.

Atenciosamente, Equipe PrestaBR