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
  #112  
Old 06-14-2005, 12:18 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 guvner
Mmm - I've had to give up on manually adding them - it's just too difficult.

But I notice that apart from the top 3 - nothing else (amount collected & % of target etc.) is appearing on donate.php even after I've added them - could it be that manually added donations aren't being picked up?
The donors and the transactions are kept seperate on purpose so that the transaction data will not get corrupted by random editing and/or adding of transactions to avoid the chance of "spoofing" a transaction by someone other than yourself. The side effect of doing this is that the donors that you add get credit for what they have donated, but the goal amount will not rise accordingly. To make it rise accordingly you must add the amount the donor gave to that goal by simply editing the goal itself and doing a little math on your part.

Again I have done this on purpose to avoid have a problem with unscrupulous people injecting (or attempting to) transactions in the system without notification of such activity. I know it's a pain, but in my view a little work is worth the effort.

1) Add / edit user giving the user their total amount-->Save User
2) Take that amount and add it to the goal with simple math
3) Take the total that you come up with and then edit the goal using that new total as the goal's total-->Save goal

All done, user gets credit and system sees the additional fundage.
Reply With Quote
  #113  
Old 06-14-2005, 12:23 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 Aerith_Freak
...Oh and any plans for this to go onto 3.5.0 once it's released?...
Yes, once 3.5 is out of Beta I will port this over and both will be updated as I add features.
Reply With Quote
  #114  
Old 06-14-2005, 01:16 AM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is for those of you who are using the multiple currencies option:

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.

I forgot to add this to the instructions in the first post, that is why I'm sending the update. I will add this to the first post, and the install document as well.

Love and light!

)O( Cloudrunner )O(

P.s. I'm adding the functionality for the system to automagickally change the currency notifier ('$', '€') based on your currency selected on the useer viewable side of the house, this will be in the next update should the fixes to the installer be kosher.
Reply With Quote
  #115  
Old 06-14-2005, 01:58 AM
caimakale's Avatar
caimakale caimakale is offline
 
Join Date: Nov 2004
Posts: 325
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

cloudrunner,

Is this something I need to reinstall or can I just replace the cron file? I have already started receiving donations, and if it's unnecessary, I would rather leave the database alone now. If there are other changes that need to be done, I will re-install the system.
Reply With Quote
  #116  
Old 06-14-2005, 02:00 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 caimakale
cloudrunner,

Is this something I need to reinstall or can I just replace the cron file? I have already started receiving donations, and if it's unnecessary, I would rather leave the database alone now. If there are other changes that need to be done, I will re-install the system.
Uninstall / Reinstall so that the system will finish installing what it couldn't cus the file broke midway through it's install course with the settings page where the initial cron is located. I have moved the CRON call to the bottom of the settings page so that the installation *shouldn't* break completely if the CRON fails.

Lemme know if this fixes the problem for you?
Reply With Quote
  #117  
Old 06-14-2005, 02:49 AM
Cloudrunner's Avatar
Cloudrunner Cloudrunner is offline
 
Join Date: May 2003
Location: Butte, MT
Posts: 635
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Well folks, it's midnight here and I wake at 0500, so I'm out...post here if there are anymore problems and I will attend to them when I get home from work tomorrow evening.
Reply With Quote
  #118  
Old 06-14-2005, 06:49 AM
xfaethorx's Avatar
xfaethorx xfaethorx is offline
 
Join Date: May 2004
Posts: 138
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

just installed 1.03 with no problems what so ever on my system! Thanks for the quick turn around cloudrunner most impressed! Look forward to using this hack in anger now . cheers (clicks install!).
Reply With Quote
  #119  
Old 06-14-2005, 07:34 AM
artonex artonex is offline
 
Join Date: Mar 2005
Location: UK
Posts: 121
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cloudrunner
Yes, once 3.5 is out of Beta I will port this over and both will be updated as I add features.
Thanks for still continuing with this hack for 3.0.7 im sure many are really greatful
Reply With Quote
  #120  
Old 06-14-2005, 07:38 AM
guvner guvner is offline
 
Join Date: Mar 2003
Location: Sydney
Posts: 98
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Cloudrunner - the alphabetised listing is great!

The avatar URL is still a little off though, mine still has the red X because there's a / missing between the forum dir and image.php as follows:

Code:
http://www.mysite.com/forumimage.php?u=52&dateline=1108213260
I had a look at donation_admin.php but really couldn't figure our how to fix it
Reply With Quote
  #121  
Old 06-14-2005, 09: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 guvner
Thanks Cloudrunner - the alphabetised listing is great!

The avatar URL is still a little off though, mine still has the red X because there's a / missing between the forum dir and image.php as follows:

Code:
http://www.mysite.com/forumimage.php?u=52&dateline=1108213260
I had a look at donation_admin.php but really couldn't figure our how to fix it
Open donation_admin.php and look for the line that reads:

PHP Code:
                                    $avatarurl $vboptions['bburl']."image.php?".$session['sessionurl']."u=".$row['userid']."&amp;dateline=".$user_row['avatardateline']; 
change it to:

PHP Code:
                                    $avatarurl $vboptions['bburl']."/image.php?".$session['sessionurl']."u=".$row['userid']."&amp;dateline=".$user_row['avatardateline']; 
(Note the added '/')

Specific line for the edit is line 281

sorry bout that, it'll be in the next update.

Thanx fer keepin me on me toes folks!
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 08:10 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05908 seconds
  • Memory Usage 2,371KB
  • 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_code
  • (1)bbcode_html
  • (2)bbcode_php
  • (6)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
  • (3)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