I have a working PayPal button on my website. It’s not hosted by PayPal, I just wrote the code myself. It looks like this:
<form action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<INPUT TYPE='hidden' name='cmd' value='_donations'>
<INPUT TYPE='hidden' name='business' value='myemail@myhost.com'>
<INPUT TYPE='hidden' name='item_name' value='$item'>
<INPUT TYPE='hidden' name='item_number' value='$number'>
<INPUT TYPE='hidden' name='amount' value='$payment'>
<input type='image' src='http://www.switchonthree.com/imgs/buynow.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'>
<img alt='' border='0' src='https://www.paypalobjects.com/en_US/i/scr/pixel.gif' width='1' height='1'>
</form>
Works great. When I take the same code and embed it in an html email, the button is there and it looks fine, but the link just goes to the PayPal homepage. It appears that none of the hidden inputs are working. Can you have hidden inputs in an email? Is there a workaround? Thanks.
It could be a security feature from Palpal. It could be that submitting the form in email does not result in a referer address that palpay reads. This is, it is blank.
So I think Paypal does not trust the form post and is redirecting you to their front page.
In general, posting a form via email seems strange and insecure to me.
The workaround is to direct users to a website to complete the purchase of which they would submit the form you have above from that website.