Salta al contingut
WooRescueHQ

WooCommerce / Pagaments

WooCommerce: el pagament falla però al client se li ha cobrat

Resposta curta

El pagament i l’actualització de la comanda són dos passos separats. Quan el proveïdor confirma un pagament però WooCommerce no rep mai, no accepta o no acaba de processar aquesta confirmació, els diners es cobren i la comanda queda pendent, fallida o cancel·lada. Compara el registre d’esdeveniments del proveïdor, les notes de la comanda i el registre de la passarel·la per a una comanda afectada: el primer punt en què no coincideixen és on s’ha perdut la confirmació.

Símptomes

  • El tauler del proveïdor mostra un cobrament correcte; la comanda de WooCommerce és Pagament pendent, Fallida o Cancel·lada.
  • Al client se li ha cobrat però no ha rebut el correu de confirmació de la comanda, o la comanda no existeix.
  • Les comandes passen a Processant hores després, o només quan el client es posa en contacte.
  • Al client se li ha cobrat dues vegades i hi ha dues comandes, només una de pagada.

Causes més habituals

  1. La notificació no ha arribat mai a la botiga. El callback o webhook de servidor a servidor del proveïdor ha quedat bloquejat per un tallafoc, un WAF, la protecció contra bots de la CDN, l’autenticació bàsica, un plugin de mode manteniment o un bloqueig geogràfic.
  2. La notificació ha estat redirigida. Una redirecció d’HTTP a HTTPS o de www a sense www a la URL de callback. Molts proveïdors consideren una redirecció com a lliurament fallit.
  3. La notificació ha estat rebutjada. Un secret de webhook o una clau de signatura incorrectes, per exemple després de recrear l’endpoint del webhook o en barrejar claus de prova i reals.
  4. La botiga ha fallat en processar-la. Un error PHP en el codi que s’executa quan es paga una comanda (estoc, correus, una sincronització amb l’ERP) ha interromput l’actualització.
  5. La comanda ja no era pendent. El temps de reserva d’estoc l’ha cancel·lada abans que arribés una confirmació tardana, o el client ha pagat des d’una pestanya antiga.
  6. La redirecció era l’única confirmació. El client ha tancat la finestra després de pagar o després de 3D Secure, i la botiga depenia de la redirecció del navegador en lloc d’una notificació del servidor.
  7. No s’ha pogut localitzar la comanda. Números de comanda personalitzats, multilloc o una referència de comanda canviada impedeixen que el plugin de la passarel·la trobi la comanda.

Diagnosi

1. Tria una comanda afectada i reconstrueix-ne la cronologia

De tres fonts, apunta cada esdeveniment amb l’hora exacta:

Font Què cal anotar
Tauler del proveïdor de pagaments Pagament creat, autoritzat, capturat; intents de notificació o webhook i les respostes
Notes de la comanda a WooCommerce Canvis d’estat i missatges de la passarel·la, amb hora
Registre de la passarel·la (WooCommerce → Estat → Registres) Notificacions entrants, resultats de validació, errors

El primer esdeveniment que apareix al proveïdor però no a la botiga és on s’ha perdut la confirmació.

2. Revisa el registre de lliuraments del proveïdor

La majoria de proveïdors mostren cada intent de notificació o webhook amb el seu codi de resposta. Llegeix-los:

  • Timeout o error de connexió: la botiga no ha respost a temps, o la petició no ha arribat mai.
  • 3xx: la URL de callback redirigeix; actualitza-la a la URL final.
  • 401 / 403: l’autenticació, un plugin de seguretat o un WAF l’han bloquejada.
  • 400: el plugin de la passarel·la l’ha rebutjada, sovint per una signatura o un secret que no coincideixen.
  • 500: PHP ha fallat en processar-la. Busca un error fatal a aquella hora.

3. Confirma que la petició ha arribat al servidor

Busca al registre d’accés del servidor web peticions a la URL de callback a les hores que indica el proveïdor. La URL depèn del plugin de la passarel·la: sovint una URL ?wc-api= o un endpoint REST. Si no hi ha cap entrada, la petició s’ha bloquejat abans d’arribar a PHP: CDN, WAF o tallafoc.

4. Busca errors durant el processament de la comanda

Si la notificació ha arribat a la botiga i ha estat acceptada, esbrina què ha passat després: una entrada fatal-errors, un error PHP o una acció programada fallida en el mateix minut. El codi enganxat a woocommerce_payment_complete o als canvis d’estat de la comanda s’executa dins de la petició de la notificació; si falla, pot ser que la comanda no es desi mai com a pagada.

Registres i comprovacions tècniques

  • Proveïdor: registre d’esdeveniments i historial de lliuraments de webhooks o notificacions dels pagaments afectats.
  • WooCommerce → Estat → Registres: l’origen de registre de la passarel·la i fatal-errors.
  • Registres d’accés i d’errors del servidor web per a la URL de callback.
  • WooCommerce → Paràmetres → Productes → Inventari: el temps de reserva d’estoc que cancel·la les comandes no pagades.
  • Eines → Accions programades: accions fallides o pendents creades al voltant de l’hora del pagament.
  • Registres del plugin de seguretat, de la CDN i del WAF per buscar peticions bloquejades a la URL de callback.

Solucions

  • Fes accessible la URL de callback: exclou-la dels reptes del WAF, la protecció contra bots, el mode manteniment, l’autenticació bàsica i la memòria cau. Fes servir la URL final, sense redireccions.
  • Corregeix el secret del webhook als paràmetres de la passarel·la perquè coincideixi amb l’endpoint configurat al proveïdor, per separat per al mode de proves i el mode real.
  • Arregla el codi que falla durant el processament del pagament, i porta la feina lenta (sincronitzacions amb l’ERP, crides externes) a tasques en segon pla perquè la petició de la notificació acabi ràpid.
  • Assegura’t que les notificacions de servidor estan activades, perquè la comanda no depengui que el navegador del client torni a la botiga.
  • Quadra les comandes afectades: per a cada pagament correcte sense comanda pagada, verifica import, moneda i client, i després completa o recrea la comanda amb les eines normals de la passarel·la o de WooCommerce, amb una nota que descrigui la verificació.

Què no s’ha de fer

  • No desactivis la verificació de la signatura «perquè funcioni». Permet que qualsevol marqui comandes com a pagades.
  • No esborris les comandes fallides o cancel·lades: són l’evidència i el vincle amb el pagament.
  • No reemborsis ni tornis a cobrar als clients abans de quadrar els dos costats.
  • No apugis el temps de reserva d’estoc com a solució. Amaga les confirmacions tardanes en lloc d’arreglar-les.

Quan recórrer a un expert

Recorre a un enginyer quan els cobraments sense comanda continuen, quan no saps quines comandes estan afectades, quan els registres del plugin de la passarel·la no mostren res, o quan la fallada és en codi a mida que s’executa després del pagament.

Preguntes freqüents

Per què WooCommerce diu que el pagament ha fallat si al client se li ha cobrat?

Perquè la botiga no ha rebut, o no ha pogut processar, la confirmació del proveïdor. Causes habituals: una URL de notificació bloquejada o redirigida, un secret de webhook incorrecte, un error PHP mentre s’actualitzava la comanda, o una comanda que ja estava cancel·lada quan va arribar la confirmació.

Per què s’ha cancel·lat la comanda si el client ha pagat?

Amb la gestió d’inventari activada, WooCommerce cancel·la les comandes no pagades quan s’acaba el temps de reserva d’estoc. Si la confirmació arriba després, troba una comanda cancel·lada. Les confirmacions tardanes solen ser un símptoma de webhooks o notificacions que fallen en els primers intents.

Puc marcar la comanda com a processant i prou?

Només després de confirmar el pagament al tauler del proveïdor i comprovar import, moneda i client. Afegeix una nota a la comanda explicant què s’ha verificat. I arregla també la causa, o tornarà a passar.

Com trobo totes les comandes afectades?

Exporta els pagaments correctes del proveïdor en el període afectat i creua’ls amb les comandes de WooCommerce per número de comanda, ID de transacció o import i correu electrònic. Els pagaments sense una comanda pagada que els correspongui són els que cal quadrar.

$ descriu el problema

Tens un problema amb WooCommerce?Sol·licita una diagnosi.

Explica'ns què falla, què ha canviat darrerament i com afecta el negoci. Revisem cada sol·licitud i et recomanem el pas següent.

Sol·licitar una diagnosi Veure serveis i preus

No enviïs mai contrasenyes, claus d'API ni dades de targetes a través del formulari.

Diagnosi des de299 €

Sol·licitar una diagnosi