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.

Solution:
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.




Comments

Popular

YUM - Repository base is listed more than once

PayPal UK telephone number

"PC Not Listed" XBox 360 - Solution

Including random number (timestamp) in vBulletin