Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Paypal Donations for vBulletin 3.0.7 Details »»
Paypal Donations for vBulletin 3.0.7
Version: 1.08, by Cloudrunner Cloudrunner is offline
Developer Last Online: Feb 2022 Show Printable Version Email this Page

Version: 3.0.7 Rating:
Released: 06-11-2005 Last Update: 07-02-2005 Installs: 109
DB Changes Template Edits
Code Changes Additional Files  
No support by the author.

Due to real life I have ended support of this hack. Please see licensing information below.

Please read the troubleshooting tips below before asking for support.

********************************
Paypal Donations for vBulletin 3.0.7
Hack Provided and coded by )O( Cloudrunner )O( of The Noble Pagan.
Release version: 1.07
Release Date: 28 June 2005

ChangeLog:
Paypal Donations 1.08

  • Simple file changes.
  • fixed problem in template edits.
Paypal Donations 1.07
  • Squashed an uninstaller bug that was plaguing many folks with a bad explode command.
  • Attempted an adjustment in the graph image maker file pp_image.php
    • Two Templates require revert for this fix:
      • donations_goal_bits (required)
      • adv_portal_donate_goals (required only if you have installed the vBadvance CMPS Module)
  • Fixed the graph bar color settings to show whether or not you installed the CMPS module.
Paypal Donations 1.06


  • Fixed small bug that displayed all users as donors regardless of their actual donor status.
  • Repaired typo in AdminCP
Paypal Donations 1.05
  • Fixed phrasing that showed up as loads of '\r\n' on the on the pages.
  • Added all donors page to system to show all donors
  • Added functionality so that shy users can hide their donor status from public view
  • Fixed a division by zero error that shows when a goal is assigned without a goal amount.
Paypal Donations 1.04
  • Fixed bug with the AdminCP that did not allow the user avatars to be displayed when viewing all donors.
  • Redid templates so that the currency sign changes automagickally to the chosen base currency.
  • Fixed an error on the installer that placed a dupe entry preventing further installation progress.
  • Redid installer for ease of updating the system when needed.
Paypal Donations 1.03
  • Fixed bug where on installation the currency exchanges were not being populated properly.
  • Changed user list on donor add in AdminCP to be sorted alphabetically
  • Fixed Avatar display for custom avatars in the AdminCP
  • Fixed short hand INSERTs in the installer. Should work with all versions of DB schemas now.
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 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.
    • Your shy users have the ability to hide their donation status from public view in their profile options
  • 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
  • Donation / Donor Categories
Stuff you have to do
Files to upload: 34
Files to modify: 3
Templates to modify: 1 (required) / 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/admi...ns_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.

The system defaults to use the USD currency. If you change this currency in the Donations settings, then to get the correct exchange pricing, you need to run the CRON file to update your Exchange Rates table.

To do this simply log into your AdminCP and then do the following:


  1. Scroll down your navigation bar on the left and find the Scheduled tasks navigation group, open that up and click on "Scheduled Task Manager".
  2. Find the CRON named "Donations Currency Exchange Quotes"
  3. To the right of that you will find a button named "Run Now"
  4. Click that button and wait until the system says Done.
Once the system has reloaded the exchange rates using your new currency you are ready to go and start collecting donations.

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.

To assist in this you can edit an invalid transaction to show as valid if the transaction turns out to be kosher. The steps to this are as follows:
  1. Make sure transaction is valid
  2. Edit invalid transaction to show as valid
  3. Edit goal and add that transaction amount to the total
  4. Edit / Add donor (user) to the DB to give credit
This will get the transaction into your database properly and give credit everywhere it is needed for the system to read it properly.






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.

Troubleshooting tips and procedures
Due to the multitude of possible break-points between Paypal and this script I must request that the following be followed before reequesting support on this system from this point forward:


  1. Do some basic troubleshooting on your own first and see if you can find where the break happened. You might be able to fix it from that.
  2. Check to see that you are not sending test transactions to the live Paypal Server (check your testing setting in AdminCP)
  3. Verify that your custom variable is output as
    HTML Code:
    <input type="hidden" name="custom" value="donation:*userid*:*goalid*">
  4. Make sure that you COMPLETED the install 100% (if you did not make it to the settings page at the end of the installation, then you did not complete the installation)
  5. Make sure that you have done the two required file edits (you can go back into the installer to verify this)
  6. If you had a donation made, but have not yet received notification at the script side of the house, then the transaction most likely went into the invalid transactions tables, check there if it is there, and you have verified the top three things above post here for support on this. There is a time lag in the invalid transaction notifications. If you receive an invalid transaction you will receive notification by email to the webmaster address in your vB settings. I need the following information in this circumstance:
    1. A post of the contents of the invalid table with identifiable information removed (ie. transaction id, addresses, phone numbers, IP addresses etc.)
    2. The address to your donate.php file
    3. Whether your system is in test mode or live mode
  7. For basic support problems, then I will need the address to your donate.php so that I can verify that your system is kicking out the proper information to send to paypal
  8. Above all else, please try to be as specific as possible, "The system broke..." doesn't do me any good to assist in giving you support, "The system broke at line 58 with the following error" is much better, and I am much more willing to support your problem with this symptom.
Lastly, if you have modified the base files in any way, I will NOT give support to this. The files are set in the way that they need to be to run under 90% of server installations. Any other installations that require files to be merged, etc., sorry but you are on yer own in that situation.

FYI: The Paypal Notification is completely seperate from the user being sent back to your site. Thus the reason that the ppverify.php file is NOT a function of donate.php.

How To Get vBadvanced CMPS v1 Module to work with vBadvance CMPS v2
Follow this link to aranthorn's Instructions on how to get this to work.
https://vborg.vbsupport.ru/showpost.php?p=669033&postcount=231

Thank you aranthorn!!!

********************************

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

To view this in action head over to: http://damn.that-sucks.net or http://www.noblepagan.com

Thank you!

)O( Cloudrunner )O(

P.s. Anyone who feels the need to donate to me (*hint hint*) feel free to do so, I won't stop you (yeah, I'm as greedy as the next guy). In fact we are a non-profit organization over at The Noble Pagan, so your donation would be tax-deductible .

LICENSE:

Quote:
Originally Posted by Brandon J. Briggs aka. Cloudrunner
As the original author of the Paypal Hacks for vBulletin 3.0.x and 3.5.x I give full authorization to modify, recode, compile and/or reverse engineer the paypal donation hacks to any and all fully licensed members of vBulletin.org. I also give permission to fully distribute any derivative works that are created due to this authorization without need of providing credit or other means of recompense.
I am releasing this authorization in the hopes that someone will be able to carry on the work that was begun.

Supporters / CoAuthors

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #212  
Old 06-18-2005, 01:19 AM
dsboyce8624 dsboyce8624 is offline
 
Join Date: May 2005
Location: New Jersey
Posts: 413
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by ManofManyStangs
How do I get out of the test rfeature and go live?
In settings, first option.
Reply With Quote
  #213  
Old 06-18-2005, 01:23 AM
ManofManyStangs ManofManyStangs is offline
 
Join Date: Jun 2005
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

where are the settings located?
Reply With Quote
  #214  
Old 06-18-2005, 03:59 AM
caimakale's Avatar
caimakale caimakale is offline
 
Join Date: Nov 2004
Posts: 325
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In the Admin Control Panel under Donations Admin.

If you don't have that, then you haven't done the file edits.
Reply With Quote
  #215  
Old 06-18-2005, 04:07 AM
aranthorn's Avatar
aranthorn aranthorn is offline
 
Join Date: Jun 2004
Location: Chicago
Posts: 137
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent hack, had to play with the module setting for vBa CMPS v2, but not in your code.

Bravo!
Reply With Quote
  #216  
Old 06-18-2005, 05:19 AM
dsboyce8624 dsboyce8624 is offline
 
Join Date: May 2005
Location: New Jersey
Posts: 413
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by aranthorn
Excellent hack, had to play with the module setting for vBa CMPS v2, but not in your code.

Bravo!
If you could break it down for us, I'm sure people would appreciate it.
Reply With Quote
  #217  
Old 06-18-2005, 10:29 AM
Neutral Singh's Avatar
Neutral Singh Neutral Singh is offline
 
Join Date: Sep 2004
Location: Sikh Philosophy Network
Posts: 545
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Excellent neat hack !! I have been looking of this for a long time.

I added some donors, who had already made some donations prior to adding this hack but adding these donors has no effect on goal achieved modules. e.g. suppose i have added some donors, who each have contributed $5 but the the goal bit shows that i have got none donations so far. How do i do it so that donations made prior to this hack are also incorporated and are considered towards achieving the goals?

** Addional Request ** It would be wonderful if this hack could present to the members the option of making recurring payments via Paypal. I have some members who contribute $5 on monthly basis using recurring payments feature within paypal. I think there should be a checkbox option (may be manual) for making recurring payments to the members, who do not like making a donation each time but do make automated recurring payments.

Thanks for a very nice hack.
Reply With Quote
  #218  
Old 06-18-2005, 10:29 AM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BBCVman
A donation was made and nothing has change. neither on the main donate.php page...it does not show the donation...I don't know if it takes awhile before it shows up.....
Morning folks --

Sorr I've been away for a day or so, I do have to spend family time with the rest of the clan though...

anyway, in response to your portal block thing, here's the issue that I see...you are all hard-coded. The donations system is a dynamic system that uses 90% of it's power out of the DB. The tables it uses are:

donation_buttons
donation_goals
donation_donators
donation_paypalipn

if you don't pull from the DB using these tables to get the right values, and are not using the correct "custom" variable i.e.
HTML Code:
<input type="hidden" name="custom" value="donation:*userid*:*goalid*">
then the system will not recognize your donation at all...These values MUST come from the database itself. your best bet is to simply link to the donate.php page to make sure that the system recognizes the donation, while the portal block simply pulls the data off of the DB and gives totals.

On a lighter note, I've adjusted most of the donator naming convention that I was using (seems that my small rebellion was confusing / pissing some folks off), and an update will be coming shortly.
Reply With Quote
  #219  
Old 06-18-2005, 10:36 AM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Neutral Singh
Excellent neat hack !! I have been looking of this for a long time.

I added some donors, who had already made some donations prior to adding this hack but adding these donors has no effect on goal achieved modules. e.g. suppose i have added some donors, who each have contributed $5 but the the goal bit shows that i have got none donations so far. How do i do it so that donations made prior to this hack are also incorporated and are considered towards achieving the goals?
To get the donations to show against the goal, you must manually add the total donations against the goal itself in the AdminCP. Just edit a goal and you will see where you can change the total donated there, then the donations will count against your goal. There is a reason for my madness in seperating the donors from the goals . That reasoning will become evident in the near future. I'm not willing to spout off the reason just yet.
Quote:
Originally Posted by Neutral Singh
** Addional Request ** It would be wonderful if this hack could present to the members the option of making recurring payments via Paypal. I have some members who contribute $5 on monthly basis using recurring payments feature within paypal. I think there should be a checkbox option (may be manual) for making recurring payments to the members, who do not like making a donation each time but do make automated recurring payments.
The reoccuring option is built into the subscriptions system. I am looking into implementing this though, but it's going to take some time while I try to figure out some of the Paypal quirks with subscriptions...
Quote:
Originally Posted by Neutral Singh
Thanks for a very nice hack.
Thank you
Reply With Quote
  #220  
Old 06-18-2005, 10:41 AM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by BBCVman
Im verified and this is the message I just got from the donation:

"The Transaction Number is: .

It is suggested that you investigate this transaction to determine if it was incorrectly labeled as invalid, or if it was an attempt at a false transaction."
Hey boss, make SURE that you are not running in test mode. The Paypal servers will NOT verify a test mode system....i.e.

Paypal gets a donation from your script
You are running in test mode so when Paypal sends notification to your server your server tries to place a call to the sandbox.
The sandbox says, I didn't initiate this transaction, therefore, it is invalid...

If that's not the issue, then you must do a little investigating on the system side of things (i.e. post what you have in the invalid table (viewable in the admincp) so that I can see where your issue lies) to find your problem (If posting what's in the inavlid table, please make sure to remove any identifiable information such as phone number, address, names, IP addresses, etc. As well as whether your server is in test mode or not, it will also help to provide a view--source of your donate.php buttons. This will assist in troubleshooting).

Yeah, I like that, I will add that to the first post right now....
Reply With Quote
  #221  
Old 06-18-2005, 11:04 AM
TTG's Avatar
TTG TTG is offline
 
Join Date: May 2004
Location: Sth London
Posts: 1,042
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does the latest update remove the numerous \r\n ?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:58 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05441 seconds
  • Memory Usage 2,361KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_html
  • (8)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (2)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete