Mismatch Between WooCommerce Dashboard and Stripe

The Issue was that a customer bought a product and paid via Stripe. When I log into my Stripe dashboard on the Stripe website I can see it is paid.

On my Woo dashboard it says the order status is ‘Cancelled’ and when I hover over that word I see a message that says “Unpaid order cancelled – time limit reached. Order status changed from Pending payment to Cancelled.”

I don’t have any kind of plugin that would allow a customer to cancel and order, so what my WooCommerce dashboard says may not reflect what the customer expects. In other words the customer placed the order and paid, and expects the goods but the Woo dashboard on the WooCommerce site says the order was cancelled.

What is going on?

Homing In On The Issue

As a first step, are webhooks are configured correctly on the site at WooCommerce > Settings > Payments > All payment methods > Stripe > Manage > Settings?

This is what the page looks like, and all three should be green.

The webhook endpoint needs to be added to your Stripe account.

The signing secret webhook can be found in your Stripe dashboard on the Stripe website.

And then go back to your site and click Stripe account settings (see first screenshot here) and add the key and refresh and they should all show green.

In my case the secret key was not set. I don’t know how that happened because previous orders went through OK.

Debug For Future Issues With Stripe and WooCommerce

Go to WooCommerce > Settings > Payments > Stripe > Manage > Settings > Scroll down to the bottom and expand Advanced Settings. There is a setting there to set debug to true. Do that and they you are able to check future logs in WooCommerce > Status > Logs.

Thanks to the Woo Happiness Engineer who talked me through this.