Bom dia,
As referências não ficam invalidadas depois de serem pagas e podem ser pagas de novo. É assim que funciona o sistema da Ifthenpay.
Hipótese 1:
Se o cliente pagar duas vezes a mesma referência, é perfeitamente normal que a primeira dê OK e a segunda dê erro porque essa encomenda já não está a pagamento (no WooCommerce).
Hipótese 2:
Por alguma razão o sistema da IfthenPay não conseguiu obter o OK da primeira vez que fez callback e fez uma segunda chamada (tentam 13x até desistirem), mas o WooCommerce já tinha dado a encomenda como paga logo na primeira tentativa de callback. Deve ter sido este o cenário porque como podemos ver a data hora de pagamento é exactamente a mesma.
Em qualquer dos casos é uma situação relativamente normal, sendo o primeiro caso menos comum e verificável apenas pela consulta do backoffice da IfthenPay onde devem aparecer os dois pagamentos.
De qualquer forma vamos verificar com a IfthenPay estes dois callbacks específicos.
Thread Starter
Ricardo
(@maverickws)
Bom dia Marco,
Creio que a situação se enquadraria dentro da hipótese 2, no entanto ambos os emails foram recebidos em simultâneo, o que me leva a questionar, qual é o intervalo de tempo entre cada um dos callbacks até realizar as mencionadas 13 chamadas?
É suposto serem simultâneos? (entre o email 1 e o email 2, analisando a source, existe apenas a diferença de 2 segundos).
Eu também acho que é o segundo caso, e é precisamente pela questão que coloca, que indiquei que ia verificar com a IfthenPay.
Eu sei que a segunda tentativa é praticamente de seguida, mas estou a achar estranho ser tão rápida, e ainda por cima vir de um IP diferente. Sei que o prazo é curto e vai alargando ao longo das várias tentativas, para dar tempo ao site para recuperar de alguma eventual indisponibilidade temporária.
Thread Starter
Ricardo
(@maverickws)
Relativamente ao curto intervalo, 2 segundos (até 5, 10, mesmo 30 segundos) podem derivar de lentidão na rede, não chega sequer a timeout.
Analisando todos os outros emails dos outros pagamentos, verifico que todos originam no primeiro IP.
Ficaremos a aguardar mais informação. Grato.
A indicação que temos parte da IfthenPay é a seguinte:
– O primeiro callback é feito por um determinado sistema (do IP 62.48.212.7) para ser mais rápido, e por alguma razão falhou (não receberam OK 200, mas a ligação foi completada, não dando timeout).
– Quando isso acontece entregam imediatamente a tarefa a outro sistema (do IP 23.97.198.40) que trata da pool de callbacks falhados e que arranca logo imediatamente com a sua primeira tentativa (daí apenas os 2 segundos), sendo que então vão até às 13 tentativas se for necessário.
Em suma:
– No primeiro callback o site conseguiu identificar o pagamento, mas por alguma razão não devolveu o HTTP OK 200 (vejam se identificam algum problema no error log do servidor à volta desta hora)
– O sistema da IfthenPay fez a(s) tentativa(s) adicional(is) de callback
– Não existe qualquer impacto em callbacks adicionais a pagamentos já identificados
Thread Starter
Ricardo
(@maverickws)
Boa tarde,
No log temos o seguinte:
23.97.198.40 – – [02/Mar/2021:12:30:16 +0100] “GET /website/wc-api/WC_Multibanco_IfThen_Webdados/?chave=…&entidade=…&referencia=434046807&valor=20.00&datahorapag=02-03-2021%2011:29:00&terminal=5-…-SANTANDER%20TOTTA HTTP/1.1” 200 2 “-” “-”
62.48.212.7 – – [02/Mar/2021:12:29:46 +0100] “GET /website/wc-api/WC_Multibanco_IfThen_Webdados/?chave=…&entidade=…&referencia=434046807&valor=20.00&datahorapag=02-03-2021%2011:29:00&terminal=5-…-SANTANDER%20TOTTA HTTP/1.1” 200 2 “-” “Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)”
Ambos com HTTP OK 200.
Olá de novo Ricardo,
OK, vou enviar para a IfthenPay porque isso já está fora do âmbito do plugin.
Thread Starter
Ricardo
(@maverickws)
OK Marco, agradeço o feedback.
Ficarei a aguardar novas informações.
No que diz respeito ao plugin, o funcionamento é o correcto, e como referi, a dupla notificação e “erro” na segunda é apenas um registo de log não tendo qualquer impacto no funcionamento do sistema.
Passei para a IfthenPay a informação de que efectivamente foi um 200 para eles analisarem e, se assim entenderem, contactá-lo para mais esclarecimentos, pelo que por este canal não terei mais informações úteis para lhe fornecer.