Test WooCommerce orders set to 'pending payment' with PayPal Sandbox

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.



YUM - Repository base is listed more than once

PayPal UK telephone number

"PC Not Listed" XBox 360 - Solution

Including random number (timestamp) in vBulletin

Hiding Thunderbird "Sending Messages" dialogue