Paypal Donations for vBulletin 3.0.7

Hack Provided and coded by )O( Cloudrunner )O( of The Noble Pagan.
Release version: 1.0
Release Date: 12 June 2005

Special Thanks:

dsboyce8624
SLeeeper
And all of the Alpha Testers that helped out with this Hack!

I couldn't have done it without you.

What it does

Quite simply this hack provides you a way to receive donations from your website's users and provide them with the recognition deserving of a donating member of you community. It uses Paypal exclusively for the time being because of Paypal's "Instant Payment Notification" system.

The basics are this, your users go to your donations page where you have certain levels of donations available via hyperlinked "buttons". These buttons take your user to paypal's secure payment processing system where they pay you your donation. Once payment has been received, paypal sends your server a notification containing certain information pertaining to that specific transaction. Your server then repeats this information to the verification server (which is hardcoded into the system so that *spoofing* is rendered virtually impossible) which first checks to see if the information was sent by it, then checks the validity of the information. If everything checks out, it then sends your server a response of "VERIFIED". When this hack see that word after running the script it inserts all the information into your database so that you can see what was donated, who donated it, and where.

If the server returns a response of "INVALID" then this script drops the information into a separate table so that you can investigate the transaction further to detect fraud attempts. It also does this on any suspicious entries after a few checks. Once payment is verified and information has been inserted into the tables, the system then adds a few toys and items for the user to be recognized as a donating user. What you do with that recognition is up to you.

Features

  • You as the admin have the ability to show as little or as much as you want about what happens with your donations.
  • Your users will only see what you want them to see.
  • You can show your donation goals to the public.
  • Automatic updates EVERY time a user donates or retracts a donation.
  • This can be run in "dummy" test mode using Paypal's Sandbox site for testing purposes before you go live with it.
  • Your members who have donated are recognized for doing so in their profile and their postbit.
  • vBadvanced CMPS Module Integrated
  • You can set Goals and have donations count for or against a specific goal
  • Multiple Currencies are supported automatically and use TODAY's exchange rate to make the donation (vB Cron Enabled)
  • Everything is controllable in the AdminCP
  • User-side is 100% phrased
  • System completely ignores any transaction not placed by it (i.e. Ebay transactions and other PayPal transactions are not included in your transaction history (cuts down on DB bloat)).
  • Donate Button(s) PNG source provided (Image Credits go to SLeeeper, Thank you for the help!)
  • You do NOT need to have paypal's IPN pointing at the system. The system tells Paypal WHERE to send the IPN transactions :-}
  • **Coming Soon**
  • Postbit Awards for certain levels of donations that you decide on
    • User has the ability to choose whether they receive the awards recognition
  •  Donation / Donor Categories

Stuff you have to do

Files to upload: 25
Files to modify: 2
Templates to modify: 2 (Optional)
Queries to run: (The install script does this for you, uninstallation is also provided as well)
Ease of install: easy, simply follow the instructions in the install script.
Time of install: ~5 minutes

***REMEMBER! Add your email address that Paypal has on file in Donations settings. This step is not an option, your payments, although they may be valid, will all be considered invalid if you do not do this! Sign up for Paypal's Premiere Account (Business), and setup IPN.

Paypal Registration

You will need to register with Paypal for a premiere account if you have not already, if you have, but your account is probably a personal account, you will need to upgrade the account to a premiere account. Assuming that you have a premiere account and have been verified, you then go into your profile at http://www.paypal.com and the select Instant Payment Notification. There will be a checkbox that you must check, you do NOT have to point to the script at Paypal, if you choose not to do this, then you will need to make sure that your Notification URL is put in the settings or this script will NOT WORK!

On most systems it will be either:

http://www.yourdomain.com/ppverify.php

or

http://www.yourdomain.com/forum/ppverify.php

That's all there is to setting up Paypal to work with your site!

Install

Upload all the files in the archive into their provided directories

Run the provided install file, setup your settings, after installation, DELETE THE FILE!

This will usually be:

http://www.yourdomain.com/forum/admincp/donations_install.php

or

http://www.yourdomain.com/admincp/donations_install.php

How To Use The System

To begin with, you simply upload all the files into their respective directories (keeping the structure in the archive).

After you upload the files, point your browser to the installation file: donations_install.php and run the installer all the way through, remembering to save your settings at the end (you MUST put in your paypal email, and the path to donate.php, and the path to ppverify.php). Remember, if you have the system set in test mode, you will not be able to process LIVE transactions. If you are going live immediately, then change this setting to no!

After you install, simply delete the donation_install folder and all files within it, and the install file.

Now you are ready to play. The system is 100% phrased on the user viewable side, so you will need to edit some of the phrases to better suit your site, specifically the phrases titled:

your_donations_are_appreciated
all_donations_go_towards_furthering_goals
donation_used_to_further_mission

are the ones that I recommend redoing to suit your site.

After editing the phrases, next comes adding your donation buttons and goals.

Always add your goals first as the buttons can be attached to a specific goal so that the user gets credit for donating towards a specific goal (you can of course add a button that does not attach to a goal for a general coffer fund type of deal, but goals are the preferred method).

After adding a goal, you can then add a button to the site.

The settings for the buttons are self-explanatory for the most part, the only required input from you is the title, and the description of the button. Everything else will work fine without input.

From there, it's all fairly intuitive. The biggest thing to remember is that to use this hack you MUST have a paypal Business or Premiere account, and have turned IPN on in your Paypal profile. If you run into troubles with a transaction, make sure that you are not trying to verify a sandbox transaction with the live Paypal server and vice versa (the test setting). Secondly, this system will notify you of suspect transactions that Paypal refuses to validate. If you get an email stating that a transaction was invalid, it would suit you to investigate it to find out where the transaction came from and why it failed verification. If all is kosher you can add the donor to the AdminCP so that they get credit for the donation.

After Install

You will need to add a link somewhere in your navigation system for vBulletin pointing your users to the donations page (if you installed the vBadvanced Module then you have a link on the home page, but you might want to add one in the nav bar as well), as well as setting up your paypal account to give IPN responses to you, you can do this in your Paypal Profile under Instant Payment Notification.

To play in PayPal's Sandbox you will need to be registered with their developer network and setup a few sandbox accounts to play with the sandbox properly. I have throughly tested the sandbox functionality, and it is working until they decide to change coding standards again.

I sincerely hope that you enjoy this hack, Please feel free to send feedback to tnp@noblepagan.com!

Thank you!

)O( Cloudrunner )O(