woocommerce-pagarme icon indicating copy to clipboard operation
woocommerce-pagarme copied to clipboard

Ajustado código de retorno do IPN para que em caso de falha o Pagar.me tente novamente

Open cristian-rossi opened this issue 7 years ago • 2 comments

Motivação

Em alguns casos (raros) o processamento do pedido no Woocommerce é mais lento que o IPN de resposta do pedido pago, sendo que, quando o IPN chega no servidor ele ainda não salvou a meta key _wc_pagarme_transaction_id do pedido fazendo com que o processamento do IPN falhe.

Mas, mesmo falhando, o IPN retorna um status 200 fazendo com que o Pagar.me conclua que o IPN foi processado corretamente e não envie retentativas.

Solução proposta

  • Retornar false na função process_successful_ipn caso o pedido com _wc_pagarme_transaction_id não seja encontrado.
  • Retornar header HTTP/1.1 406 Not Acceptable informando para o Pagar.me que o IPN falhou. Assim o Pagar.me tentará enviar novamente o IPN sincronizando corretamente o status do pedido.

Obs: também foram adicionados mais alguns logs para debug dessa parte do código.

cristian-rossi avatar Sep 21 '18 21:09 cristian-rossi

Olá @claudiosanches , tudo bem?

Pode verificar esse commit do PR por gentileza?

Esse é um problema que tem afetado vários pessoas recentemente e é bem simples de revisar.

cristian-rossi avatar Oct 05 '18 19:10 cristian-rossi

Precisando atualizar e corrigir os conflitos.

claudiosanches avatar Oct 05 '18 21:10 claudiosanches