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.
Kort om oppdraget
- Butikk: WooCommerce-nettbutikk for arrangementsbooking, med depositum, egendefinert leveringslogikk og egne felt i checkouten
- Symptom: «Payment nonce is missing» i checkouten, før ordren ble fullført
- Betalingsløsninger: PayPal og Square, testet hver for seg
- Utfall: den generelle checkout-flyten fungerte igjen, PayPal sendte kunden videre til betalingssiden, og feilen ble snevret inn til Square sin token-generering og Square-tilkoblingen
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 gikk gjennom checkouten, fant vi flere plugins som ventet på oppdatering, blant dem 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 feilsøkingssteg i WooCommerce:
- 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.
- Gikk gjennom risikoene ved cache- og JavaScript-optimalisering.
- Identifiserte advarselen om Square-tilkoblingens tillatelser.
- Snevret problemet inn fra en generell checkout-svikt til gateway-spesifikk oppførsel.
Den prosessen skilte det generelle checkout-problemet i WooCommerce 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 snevret inn til Square-spesifikk token-generering og Square-tilkoblingens oppførsel, slik at de neste feilsøkingsstegene kunne gå rett på Square-gatewayen i stedet for hele checkout-systemet.
Hvorfor dette er viktig
Feil i checkouten fører rett til avbrutte kjøp, tapt omsetning og frustrerte kunder. For WooCommerce-butikker, og særlig tjeneste- eller bookingbaserte 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, og det 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.
Hvis kundene dine får samme feil
Rekkefølgen fra denne saken kan brukes som sjekkliste:
- Test hver betalingsløsning for seg. Virker én og feiler en annen, slik PayPal og Square gjorde her, ligger feilen i den ene gatewayen og ikke i hele kassen. Mens du leter, kan kundene betale med den som virker.
- Se etter varsler i innstillingene til betalingspluginen. Her var det en advarsel om manglende tillatelser i Square-tilkoblingen som pekte videre.
- Hold kassen utenfor cache og JavaScript-forsinkelse før du leter videre, så du vet at betalingsskriptet faktisk får laste.
- Fullfør en hel testbestilling etter hver endring, på mobil og desktop og i et privat vindu.
Vil du gå gjennom resten av kassen selv, tar den gratis guiden WooCommerce-checkout fungerer ikke for seg de vanligste årsakene, i den rekkefølgen du bør sjekke dem.
Avsluttende tanker
Denne saken var et godt eksempel på et checkout-problem i WooCommerce 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 haster problemer i checkouten, fordi de rammer kundenes tillit og salget direkte.
Stopper betalingen i din kasse?
Får kundene en betalingsfeil i siste steg, kan vi finne og fikse feilen i WooCommerce-kassen. En standard kassefiks starter på 3 990 kr eks. mva. Vurderingen er gratis, du får fast pris før vi starter, og vi bekrefter henvendelsen innen 1 time i arbeidstiden. Vil du at noen holder plugins oppdatert og tester kassen jevnlig, er det det WooCommerce-vedlikehold er til for. Send oss en beskrivelse av hva kundene ser, gjerne med feilmeldingen, så tar vi det derfra.
Relaterte kundecaser
Elementor-hamburgermenyen virket ikke: en JavaScript-feil i konsollen
Mobilmenyen var synlig, men ville ikke åpne seg. Det så ut som en bufringsfeil, men nettleserkonsollen avslørte én JavaScript-syntaksfeil fra en Elementor-plugin som brøt alle interaktive elementer på siden. Slik sporet vi den opp, og slik rettes den uten å røre pluginens kjernefiler.
Les artikkelenWordPress lastet uten CSS og bilder: én mappetillatelse var årsaken
Et WordPress-nettsted lastet som stort sett uformatert HTML: designet var borte, bildene ødelagte og navigasjonen redusert til vanlige lenker. Sidene, databasen og admin-området kjørte fortsatt. Årsaken var verken skadevare eller en mislykket oppdatering, men én mappetillatelse på wp-content.
Les artikkelenWordPress Multisite kompromittert: slik undersøkte og gjenopprettet vi nettverket
Det som kom inn som ødelagte sider og manglende stilark, ble til en full sikkerhetshendelse. På tvers av en delt WordPress Multisite-installasjon fant vi uautoriserte omdirigeringer, en endret kjernefil og obfuskert PHP-skadevare. Slik undersøkte vi nettverket og bygde en trygg vei til gjenoppretting.
Les artikkelen