Before the "Flames" start let me say that I am taking this approach in an attempt to overcome an apparent shortcoming in the core. Once I get this documented and resolved I do intend to post the details to Gemini for review.
From what I've found, the core does not "use" the "Payment Processor" setting (URL from the List entry) selected under "Site Settings" -- at least for processing paid subscriptions (Roles). It does use the user id and password. I understand that currently DNN only supports PayPal and that is fine. However, there seems to be no way to direct DNN to the "PayPal Sandbox" for testing.
I first noticed when I setup a Payment processor pointing to the "PayPal Sandbox" (www.sandbox.paypal.com) for testing. when I tried to subscribe it was sending me to the live PayPal site. After a little digging I discovered that "www.paypal.com" is hard coded into a number of pages (see the list below). For my issue with paid subscriptions I'm mainly concerned with the first two.
- ...\admin\Sales\PayPalIPN.aspx.vb
- ...\admin\Sales\PayPalSubscription.aspx.vb
- ...\admin\Sales\Purchase.aspx.vb
- ...\DesktopModules\Events\Settings.ascx
Using DNN 4.5.5 Source Install
Visual Studio 2005 SP1
Web Server Windows 2003 Standard
After investigating I've found that with a little code I could make the software to read the "Payment Processor" and use it instead of the hard coded value. My problem in testing is that I need to get the modified code on a test web server with access to the outside so that the paypal IPN response can get received and processed.
What files do I have to move to my external test server?
I've created an install on my local development computer using the "Source Code" install of DNN 4.5.5, I've modified the above code and compiled successfully. When I attempt to subscribe to a role it goes to the sandbox. In order to complete the testing I need to move it to the external test server but I don't know what files to copy.
At first, I though it was just a matter of copying the "DotNetNuke.dll" file but that's not the case. We have been doing DNN module development successfully for about a year but this is our first attampt at modifications to DNN itself.
Any help would be greatly appreciated.