Suggestion worked for me also, thank you. Same problem, but until now has happened intermittently since August (which is even stranger!). I have a non-hosted button, and the PayPal seller profile is set to use Auto-return and PDT. The PDT URL does the usual call-back validation, checks for CURL errors and then SUCCESS or FAIL. It then issues a header("Location: " . success) or failure to link to payment confirmation or failure pages for the user. All very standard. I have never needed to use a <input type="hidden" name="return" ..> since the Auto-return and PDT code did it for me. But I have always used a cancel_return. However, my auto-returns and thence PDT have stopped now working altogether. When a payment completes, PayPal displays the Return to Merchant button, and the link on that button is that I have set for the CANCEL_RETURN!!! So I tried adding a <input type="hidden" name="return"…> specifying the PDT URL (i.e. the code, not just the URL of a “Success” page) and set <input type="hidden" name="rm" value="2"> to get all the payment variables via POST, and everything suddenly worked. Something somewhere in PayPal is not recognising that Auto-return is set in the seller profile.
... View more