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’.
Antes de começar: Nunca exponha a chave secreta (secret key) do gateway em código público, no front-end ou em logs versionados. Faça backup e teste em staging com chaves de Sandbox antes de mexer no gateway de produção.
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.
PHP
// 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.
Perguntas frequentes
O cliente pagou mas o pedido ficou em 'Aguardando pagamento'. Por quê?
Porque a confirmação (webhook/IPN) do gateway não chegou ao site. O dinheiro foi cobrado no provedor, mas o WooCommerce não recebeu o aviso para mudar o status. Verifique a URL de webhook no painel do gateway e se o WAF não está bloqueando essa rota.
Onde vejo o motivo do erro de pagamento?
Em WooCommerce > Status > Logs, selecione o log do seu gateway. Mensagens como 'invalid API key', 'signature mismatch' ou 'webhook 401/404' indicam exatamente se o problema é chave, assinatura ou webhook.
Por que o gateway não aparece no checkout?
Geralmente faltam credenciais, o método está desativado, ou o gateway exige SSL e o checkout não está em HTTPS válido. Revise as configurações do método em WooCommerce > Pagamentos e confirme o cadeado na página.
Estou em modo de teste sem querer. Como saber?
No painel do gateway, procure a opção Modo Teste/Sandbox: se estiver marcada em produção, nenhuma cobrança real é processada. Desative o modo teste e troque para as chaves de produção do provedor.
SSL é obrigatório para receber pagamento no WooCommerce?
Sim, na prática. A maioria dos gateways recusa processar pagamento em páginas sem HTTPS válido, e os navegadores alertam o cliente. Instale um certificado SSL e force o checkout seguro nas configurações do WooCommerce.
Atualizei o WooCommerce e os pagamentos pararam. O que fazer?
O plugin do gateway pode estar incompatível com a nova versão. Atualize o plugin do gateway, cheque os logs por erros de compatibilidade e, se preciso, faça um pedido de teste em staging antes de confirmar na loja ao vivo.














