My first post on here in 5 years...! As ever, I'm making this note for myself - but if it helps you too, then that's great.
I was doing some testing on WooCommerce today, using a staging site and the PayPal sandbox setup. Had loads of trouble getting orders to show as 'paid' despite successfully doing the test sandbox payment at PayPal. I tried all manner of combinations of real and sandbox PayPal account details in the WooCommerce PayPal settings page, but it didn't really work.
It turns out that you need to turn on PayPal's 'auto return' inside your sandbox merchant PayPal account. I hadn't realised there was a whole dummy/sandbox PayPal admin account area for the merchant, complete with the sandbox balance, details of payments and, importantly, features like 'auto return'. So, using the merchant/business sandbox account that you created via PayPal developers sandbox area, simply login to https://www.sandbox.paypal.com click the Settings cog > Account Settings > Website payments > Website Preferences and turn 'auto return' on (the URL is not too important as WooCommerce sends this dynamically).
Then, for me, I configured my test WooCommerce as follows:
WP Admin > WooCommerce > Settings > Payments > PayPal
Enable PayPal Standard = checked
PayPal email = the Merchant/Business email address from your PayPal sandbox
PayPal sandbox = checked
IPN Email Notifications = checked (if you want them)
Receiver email = set to same as PayPal Email above, i.e. sandbox merchant one
PayPal identity token = If you want to set this, just in case the IPN fails, then from the same PayPal sandbox admin settings page mentioned in 'solution' above, scroll down a bit and turn on 'Payment data transfer' and grab the key.