I’ve been looking all over the Internets for a simple straightforward way of adding a donate button to my ASP.NET page but all I could find were bloated plugins or simple GET forms. Since I had quite a huge parameter called “encrypted” in my PayPal button generated code, sending it in the URL might not be such a good idea, as many browsers are limited in that area. In my case the “encrypted” value was around 2500 bytes.
I also considered that PayPal might have a good reason to need the form sent via POST so I finally decided to build the form dynamically in JavaScript.
Don’t forget to paste in the value of the “encrypted” field from your generated code on PayPal. Here’s the JS code:
function Donate() { var myform = document.createElement("form"); myform.action = "https://www.paypal.com/cgi-bin/webscr"; myform.method = "post"; myform.target = "_blank"; var cmd = document.createElement("input"); cmd.name = "cmd"; cmd.type = "hidden"; cmd.value = "_s-xclick"; var encrypted = document.createElement("input"); encrypted.type = "hidden"; encrypted.name = "encrypted"; encrypted.value = ""; var image = document.createElement("input"); image.type = "image"; image.src = "https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"; image.border = "0"; image.name = "submit"; image.alt="PayPal - The safer, easier way to pay online!"; //Most probably this can be skipped, but I left it in here since it was present in the generated code var pixel = document.createElement("image"); pixel.border = "0"; pixel.alt=""; pixel.src = "https://www.paypalobjects.com/en_US/i/scr/pixel.gif"; pixel.width = "1"; pixel.height = "1"; myform.appendChild(cmd); myform.appendChild(encrypted); myform.appendChild(image); myform.appendChild(pixel); myform.submit(); }
And here is the image you need to place anywhere on the ASP.NET page:
<img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"� border="0"� alt="PayPal - The safer, easier way to pay online!"� onclick="javascript:Donate();"� style="cursor:pointer;"/>
Good Luck!
Recent Comments