New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Stripe

How to fix WooCommerce Stripe payment failed

Stripe failures split into customer-side declines and store-side misconfiguration. If the Payment Element never loads, JavaScript or keys are wrong. If payment fails after clicking Pay, webhooks or SCA handling may be broken.

Time: 25-40 minutes Level: Intermediate

What this problem looks like

The official WooCommerce Stripe plugin uses Payment Intents and may show Apple Pay or Google Pay buttons. Each requires domain verification in Stripe and HTTPS on your store.

Orders stuck on pending after a successful charge almost always mean webhooks never reached your site or the signing secret is wrong.

Payment Element does not render

Open browser console on checkout. Content Security Policy, ad blockers, or minified JavaScript can block js.stripe.com. Disable JS combine in cache plugins and whitelist Stripe domains in CSP headers.

  • Invalid publishable key for the current mode.
  • Checkout not using HTTPS.
  • Another plugin loading an old Stripe.js version.

Webhook configuration

Stripe sends charge.succeeded and payment_intent.succeeded events. The endpoint URL must be reachable and return 200 quickly. Security plugins blocking REST routes are a common UK hosting issue.

text
Example endpoint path (varies by plugin version):
https://yourshop.co.uk/wp-json/wc-stripe/v1/webhook

SCA and 3D Secure in the UK and EU

Strong Customer Authentication requires extra steps for many cards. Failed SCA shows as a decline in Stripe logs, not a WooCommerce bug. Test with Stripe test cards that trigger authentication challenges.

Express checkout and wallet buttons

Apple Pay requires domain verification in Stripe and Safari testing. Google Pay needs compatible browsers and correct merchant settings. Disable express buttons temporarily if standard card checkout works but wallets fail.

Currency and capture settings

Stripe account default currency must support your WooCommerce currency. Authorize-only modes leave orders on-hold until capture in Stripe dashboard or admin. Align capture settings with how you fulfil orders.

Never paste live secret keys into tickets or chat. Rotate keys in Stripe if they were exposed.

When to stop DIY and hire help

Stripe plus subscriptions, deposits, or multi-currency plugins needs careful integration. BugShield resolves webhook failures and checkout JavaScript conflicts on Stripe-powered UK shops.

FAQs

Why is my WooCommerce Stripe order still pending?

Webhook not received or misconfigured signing secret. Check Stripe dashboard webhook delivery attempts for HTTP errors.

Can I use Stripe without webhooks?

Not reliably. Webhooks confirm payment after redirect-based methods and async events. Fix webhook delivery instead of disabling them.

Does Stripe test mode charge real cards?

No. Live keys are required for real charges. Using live keys on staging is a compliance risk.

Why does Stripe work on desktop but not mobile?

Often wallet button configuration, responsive theme JS errors, or mobile ad blockers. Test standard card fields separately from Apple Pay.

Rather someone else fixed it?

Request a fix at a confirmed price. Named UK developer, secure Vault, direct chat.

Request a Fix