• Resolved Ricardo

    (@maverickws)


    Bom dia,

    Tendo activado o envio de registo de eventos para depuração por email, verificámos a existência de pagamentos que entram em duplicado, sendo um registado com sucesso e o outro dando erro.

    Exemplo:
    Callback (www.dominio.pt /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) from 62.48.212.7 – Multibanco payment received

    E em simultâneo:
    Callback (www.dominio.pt /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) from 23.97.198.40 – No orders found awaiting payment with these details

    Isto é uma situação normal?

    Cumpts

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author Marco Almeida | Webdados

    (@webdados)

    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).

    Plugin Author Marco Almeida | Webdados

    (@webdados)

    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.

    Plugin Author Marco Almeida | Webdados

    (@webdados)

    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.

    Plugin Author Marco Almeida | Webdados

    (@webdados)

    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.

    Plugin Author Marco Almeida | Webdados

    (@webdados)

    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.

    Thread Starter Ricardo

    (@maverickws)

    Grato.

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Pagamento recebido / notificação duplicada’ is closed to new replies.