Como corrigir pagamento do WooCommerce com erro
O que é o pagamento do WooCommerce com erro?
No WooCommerce, o pagamento é processado por um gateway (Mercado Pago, PagSeguro, Stripe, PayPal, etc.) que troca dados com a loja por API e confirma a transação via webhook. O ‘pagamento com erro’ é qualquer falha nesse fluxo: a cobrança não inicia, é recusada por configuração, ou o dinheiro é debitado mas o pedido fica preso em ‘Aguardando pagamento’ porque a confirmação não voltou ao site.
Como identificar
- Mensagem no checkout do tipo ‘Erro ao processar o pagamento’ ou ‘Desculpe, houve um erro no processamento do seu pedido’.
- O cliente paga, mas o pedido fica preso no status ‘Aguardando pagamento’ (on-hold/pending) e nunca muda para ‘Processando’.
- O gateway aparece como indisponível ou não lista a forma de pagamento na finalização.
- Nos logs (WooCommerce > Status > Logs) há entradas do gateway com ‘invalid API key’, ‘signature mismatch’ ou ‘webhook 401/404’.
Como prevenir
- Use chaves de Sandbox em staging e só troque para produção depois de validar um pedido de teste real
- Documente a URL de webhook de cada gateway e confirme que o WAF/host não bloqueia essas rotas
- Mantenha SSL válido, WooCommerce e plugins de gateway sempre atualizados e monitore os logs do gateway
Causa
- Chaves de API do gateway erradas ou em modo Sandbox/Teste enquanto a loja está em produção (ou o inverso).
- Webhook/IPN do gateway não configurado ou com URL inacessível, deixando o pedido sem confirmação automática.
- Certificado SSL ausente ou HTTPS inconsistente: o gateway recusa processar pagamento em página sem cadeado válido.
- Conflito de plugin ou cache no checkout impedindo o JavaScript do gateway (campos de cartão/redirecionamento) de carregar.
- Versão do plugin do gateway desatualizada e incompatível com a versão atual do WooCommerce ou do PHP.
Como resolver
- Confirme as chaves de API e o modo: no painel do gateway em WooCommerce > Configurações > Pagamentos, revise as chaves (public/secret) e garanta que o modo Teste/Sandbox está DESLIGADO em produção, usando as chaves de produção.
- Cheque os logs do gateway: em WooCommerce > Status > Logs, selecione o log do gateway. Mensagens como 'invalid API key' ou 'signature mismatch' apontam direto para chave errada ou webhook mal configurado.
- Configure o webhook corretamente: copie a URL de webhook/IPN exata que o plugin informa e cole no painel do provedor de pagamento. Sem isso, pedidos pagos ficam presos em 'Aguardando pagamento'.
- Garanta SSL válido no checkout: confirme HTTPS com cadeado válido na página de checkout. Em WooCommerce > Configurações > Avançado, ative 'Forçar checkout seguro' se o gateway exigir SSL.
- Atualize o plugin do gateway e teste: atualize o plugin do gateway, limpe o cache do checkout e faça um pedido de teste real (valor baixo) para validar todo o fluxo de ponta a ponta.
// functions.php — registra no log do WooCommerce quando o webhook do gateway chega
// (ajuda a diagnosticar pedido preso em 'Aguardando pagamento')
add_action( 'woocommerce_api_request', function ( $api_request ) {
$logger = wc_get_logger();
$logger->info(
'Webhook recebido para gateway: ' . sanitize_text_field( $api_request ),
array( 'source' => 'gateway-webhook-debug' )
);
}, 10, 1 );
// Veja em WooCommerce > Status > Logs (source: gateway-webhook-debug).
// Se NADA for registrado quando o cliente paga, o webhook nao esta chegando ao site.














