WooCommerce «Payment nonce is missing»-feil: diagnose av en checkout-svikt
En feil i checkouten rammer omsetningen direkte. Kunden er klar til å betale, og i siste steg feiler betalingen. For denne nettbutikken for arrangementsbooking nådde kundene checkouten og ble stoppet av en betalingsfeil før de fikk fullført ordren. For en virksomhet som lever av bookinger og depositum, er det det verst tenkelige stedet for noe å ryke, og det krevde rask diagnose med grundig testing.
Feilen som ble vist i checkouten var:
Payment nonce is missing. An error occurred, please try again or try an alternate form of payment.
Nettbutikken
Nettstedet var en WooCommerce-nettbutikk for arrangementsbooking der kundene valgte leveringsdatoer, leveringstider, hentedetaljer og betalingsalternativer i checkouten. Checkouten hadde flere egendefinerte elementer:
- Felt for leveringsdato og -tid for arrangementet
- Felt for hentedato og -tid
- Et alternativ for depositumbetaling
- Flere betalingsgatewayer
- Egendefinert leverings- og fraktlogikk
- Egendefinerte checkout-felt og oppdateringer av ordresammendraget
Med så mange bevegelige deler var en enkel plugin-oppdatering aldri nok. Betalingsflyten måtte sjekkes steg for steg.
Utfordringen
Kundene fikk en «Payment nonce is missing»-feil i checkouten. En payment nonce er et sikkert token som WooCommerce og betalingsgatewayen bruker for å bekrefte at en betalingsforespørsel er gyldig. Hvis det tokenet mangler, er utløpt, blir blokkert eller aldri genereres, kan betalingen feile før ordren fullføres. Her feilet den under checkout og hindret kundene i å betale.
Innledende funn
Da vi gjennomgikk checkouten, fant vi flere plugins som ventet på oppdatering, inkludert WooCommerce-relaterte plugins og optimaliseringsverktøy. En rekke områder måtte undersøkes:
- WooCommerce plugin-kompatibilitet
- Oppførselen til betalingsgatewayen
- Square-betalingsskjema og token-generering
- PayPals checkout-omdirigering
- Cache- og JavaScript-optimalisering
- Tilpasninger av checkout-felt
- Leverings- og fraktlogikk
- Pluginkonflikter som påvirker innsending av checkout
De egendefinerte arrangementsfeltene gjorde dette til mer enn et spørsmål om betalingsgateway. Vi måtte teste hele ordreflyten, ikke bare kortskjemaet.
Vår tilnærming
Vi startet med å sjekke oppførselen til checkouten og oppdatere de relevante pluginene trygt. Etter oppdateringene lastet checkout-siden riktig, og feilen dukket ikke lenger opp med en gang på checkout-skjermen. Deretter jobbet vi oss ordentlig gjennom flyten, fylte ut de påkrevde kunde-, leverings- og arrangementsfeltene, og gikk videre til å teste hver betalingsgateway etter tur.
PayPal omdirigerte til betalingssiden sin som forventet, noe som bekreftet at WooCommerce behandlet ordreforespørselen, og at den generelle checkout-flyten fungerte igjen. Square krevde nærmere oppmerksomhet. En «payment nonce»-feil er ofte knyttet til gatewayens kortskjema-skript, og Square trenger at checkout-JavaScripten laster riktig slik at den kan generere det sikre tokenet før ordren sendes inn.
Viktige tekniske områder vi sjekket
Plugin-oppdateringer og kompatibilitet
Utdaterte plugins skaper problemer i checkouten når WooCommerce, betalingsgatewayene og de checkout-relaterte pluginene ikke er på kompatible versjoner. Vi oppdaterte de relevante pluginene og sjekket om oppførselen i checkouten ble bedre etterpå.
Testing av betalingsgateway
Vi testet PayPal og Square hver for seg. Den oppdelingen var nøkkelgrepet, fordi den viste om feilen lå i hele checkouten eller bare i én gateway.
Cache- og JavaScript-optimalisering
WooCommerce checkout-sider bør ikke bufres aggressivt eller forsinkes av treg JavaScript-innlasting. Vi gikk gjennom de vanlige mistenkte:
- JavaScript-minifisering
- Delay- og defer-innstillinger for JavaScript
- Bufring av checkout-siden
- Utdaterte checkout-fragmenter
- Betalingsgateway-skript som blir blokkert eller forsinket
Dette er vanlige kilder til feil med betalingstoken og nonce.
Square-tilkobling og tillatelser
Vi fant også en advarsel om Square-tilkoblingen, som viste at Square-tilkoblingen ikke hadde alle tillatelsene som kreves for visse funksjoner. Det pekte mot at Square-integrasjonen trengte ytterligere gjennomgang, inkludert å koble til Square-kontoen på nytt om nødvendig.
Gjennomgang av checkout-tilpasninger
Butikken brukte egendefinerte felt og leveringslogikk i checkouten. Disse kan forstyrre WooCommerces oppdateringsprosess for checkouten eller gatewayens skript. Vi gikk nøye gjennom flyten for å forsikre oss om at de egendefinerte feltene ikke blokkerte betalingsbehandlingen.
Løsningen
Løsningen kom fra en kombinasjon av WooCommerce-feilsøkingssteg:
- Oppdaterte de relevante WooCommerce- og checkout-relaterte pluginene.
- Testet hele checkout-flyten på nytt.
- Verifiserte at checkout-feltene lastet og ble sendt inn riktig.
- Bekreftet PayPals omdirigeringsoppførsel.
- Sjekket Square-spesifikk betalingsoppførsel.
- Gjennomgikk risikoer ved cache- og JavaScript-optimalisering.
- Identifiserte advarselen om Square-tilkoblingens tillatelser.
- Innsnevret problemet fra en generell checkout-svikt til gateway-spesifikk oppførsel.
Den prosessen skilte det generelle WooCommerce checkout-problemet fra problemene som var spesifikke for én betalingsgateway.
Resultat
Etter oppdateringene og testingen ble checkout-flyten bedre, og PayPal omdirigerte til betalingssiden uten problemer. Det bekreftet at checkouten ikke lenger var fullstendig blokkert av den opprinnelige nonce-feilen. Derfra ble problemet innsnevret til Square-spesifikk token-generering og Square-tilkoblingens oppførsel, slik at de neste feilsøkingsstegene kunne fokusere direkte på Square-gatewayen i stedet for hele checkout-systemet.
Hvorfor dette er viktig
Feil i checkouten er ikke bare tekniske problemer. De fører rett til avbrutte kjøp, tapt omsetning og frustrerte kunder. For WooCommerce-butikker, og særlig tjeneste- eller booking-baserte virksomheter, er en pålitelig checkout helt avgjørende, og et lite gateway- eller JavaScript-problem kan stoppe en kunde i siste steg. Vi har sett det samme mønsteret i en annen checkout-svikt vi sporet til en .htaccess-omskriving i stedet for selve gatewayen, som er nettopp grunnen til at slike problemer fortjener grundig diagnose i stedet for tilfeldige løsninger.
Hovedpunkter
- Payment nonce-feil kommer ofte fra gateway-skript, cache eller checkout-konflikter.
- Å oppdatere plugins kan hjelpe, men checkouten må fortsatt testes etter oppdateringen.
- PayPal og Square bør testes hver for seg, siden én gateway kan fungere mens en annen feiler.
- WooCommerce checkout-sider bør holdes utenfor aggressiv cache og JavaScript-delay.
- Egendefinerte checkout-felt, depositumlogikk og leveringsregler kan alle påvirke betalingsflyten.
- Testing bør dekke desktop, mobil, inkognitomodus og en fullstendig innsending av checkout.
Avsluttende tanker
Denne saken var et godt eksempel på et WooCommerce checkout-problem som ser enkelt ut på overflaten, men som har flere mulige årsaker bak seg. Ved å sjekke plugin-kompatibilitet, gateway-oppførsel, checkout-skript, egendefinerte felt og cache-innstillinger snevret vi inn problemet og fikk fremgang i betalingsflyten igjen. For enhver WooCommerce-butikk er problemer i checkouten noe som haster, fordi de rammer kundenes tillit og salget direkte.
Relaterte kundecaser
Sikkerhetspluginen meldte nettstedet rent – vi fant tre skjulte bakdører i WordPress
Bookingskjemaer sviktet, sidebyggeren ville ikke laste, og feilloggen var tom – men sikkerhetspluginen meldte nettstedet som rent. Vi verifiserte installasjonen fil for fil mot offisielle kilder og fant tre skjulte bakdører, hver bygget for å overleve akkurat den skanningen som allerede hadde friskmeldt nettstedet.
Les artikkelWordPress lastet uten CSS og bilder: én mappetillatelse var årsaken
Et WordPress-nettsted kan se fullstendig ødelagt ut selv om både sidene, databasen og admin-området fortsatt virker. Dette nettstedet lastet som stort sett uformatert HTML: designet var borte, bildene ødelagte, navigasjonen redusert til vanlige lenker, og deler av kontrollpanelet manglet styling. Årsaken var verken skadevare eller en mislykket oppdatering. Det var én enkelt mappetillatelse på wp-content […]
Les artikkelGjenopprettet et eldre WordPress-nettsted etter PHP-feil og shortcode-problemer
Et eldre WordPress-nettsted begynte å vise fatale feil etter en PHP-oppdatering. Vi gjenopprettet admin-tilgang, løste kritiske PHP-feil, håndterte pluginkonflikter og fikk shortcode-seksjonen til å fungere igjen uten full redesign.
Les artikkel