Here is basically the same code with just a few more details. I put in some line breaks for clarity. If you are not using the PayPal sandbox for testing, you should try it out. It takes some effort to setup, but makes testing a much simpler process. I just put in two modules on the page, one for the Sandbox and one for the Production Paypal and only show the sandbox to a test role.
I got my hints on how to do this on the Traincert Videos for DNN. They are very helpful.
<A href="https://www.paypal.com/xclick/business=contribution@amilliondollarmemorial.com
&item_name=A+Million+Dollar+Memorial+Contribution
&item_number=AMDM01
&currency_code=USD
&return=http://www.returnpage.com
&cancel_return=http://www.cancelpage.com
&cbt=Make+Contribution
&no_shipping=1
&rm=2">
<IMG alt="Make contributions with PayPal - it's fast, free and secure!" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border=0>
</A>
Also, I use the Return URL to go to an XMod module and pull in the Transaction Details and then use XURLP to write them to a database table. Sometimes I just use a straight ASP page as the Return URL and use it to write the transaction details to a table and then redirect back to my site.
Hope this helps.