Just a question to make sure I understand this correctly:
When I create my buy now button and I pass all the form fields to PayPal - once the user has finished their transaction as long as I've set up the notify_url to post to, say, the ipn.php file, the user will be redirected to a page on the site defined in the return field, yes?
In other words:
notify_url - Posts transaction information to the specified file.
return - Redirects the user to a defined page.
I know this should be simple enough, I've read the documentation and I've been at this for two weeks. I mean, I've been trying to find the proper solution for about two weeks and I think the IPN option may be it.
I believe, at this point, I'm just over thinking it but I've heard that these fields cancel one another out. Is this true? If so, how do I rectify it?
Please, please, don't send me back to the documentation. I'm so confused by it right now.
These two fields are unrelated to one another.
notify_url exists so that paypal can inform you (not the user) when the user's transaction is complete. It posts a specially-formatted request (the IPN) to the url you specify. This is an out-of-band mechanism that the user will never see.
return redirects the user's browser to the page you specify when his transaction is complete.
You can have one or the other or both fields set.
When you submit from your site to Paypal, it again gets back to your site fr IPN and provides some response such as "VERIFIED" (in case transaction is successful), and then posts back to Paypal then ,redirects to your site for either success or failure response.
You are right on this. You can either define a notify url for your paypal button itself if it is a hosted button or save one in your paypal account. You can pass one as well as a hidden field to a non hosted button (what I do not recommend for security reasons).
If you do not use a hosted button make sure the customer does not change the currency.
If you do not like to use a non hosted button but you need to change variables dynamically than take a look in the soap api of paypal.
In the cbt variable you can set the label which will be used by paypal to link your return url given in the return variable to the button.