If you’re using a localhost development machine (like I do) or a machine that can’t be reached by a normal URL, PayPal can’t send it’s response since it does that through the URL you pass it during the donation payment process.
You’ll need to set up a test machine that’s open to the Internet. Be sure to turn on Sandbox mode. Don’t feel bad. It took me quite a while to figure out this little gem, and it’s pretty obvious once you start thinking about it. Sigh.