PaypalDonationExtension

From PeacockWiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 14:40, 8 April 2007 (edit)
Trevorp (Talk | contribs)
(Features)
← Previous diff
Revision as of 22:57, 8 April 2007 (edit)
Trevorp (Talk | contribs)

Next diff →
Line 15: Line 15:
===Design=== ===Design===
 +This extension provides support for related extensions. It will automatically load these 'plugins', with no modification of LocalSettings.php required for each plugin.
- +--------+ +------++The interaction between the Extension and plugins is shown:
- | PayPal | | List |+ +--------+ +--------+ +-----------------+
- +--------+ +------++ | PayPal | | Donors | | Finance Reports |
- | /+ +--------+ +--------+ +-----------------+
- +------+ +-----+ +=====+ +-----+ +=====+ +-----++ | / /
- | Wiki |---| PPE |----= API =---| FRE |---= API =---| Ind |+ +------+ +--------+ +=====+ +---------+ +=====+ +----------+
- +------+ +-----+ +=====+ +-----+ +=====+ +-----++ | Wiki |---| Donate |----= API =---| Finance |---= API =---| Progress |
- | |+ +------+ +--------+ +=====+ +---------+ +=====+ +----------+
- +----------+ +----------++ | |
- | Database | | Database |+ +---------------------------------+
- +----------+ +----------++ | Database |
 + +---------------------------------+
-*PPE Paypal Donation Extension+*Donate
**Facilitates paypal donations, and recording of transactions **Facilitates paypal donations, and recording of transactions
**Provides an API to allow access to donation info **Provides an API to allow access to donation info
-*[[PaypalDonationExtension|List]]+*Donors
**Public list of donors **Public list of donors
**Private list of own contributions **Private list of own contributions
-*FRE Financial Reports Extension+*Finance
**Allows treasurer to enter financial details **Allows treasurer to enter financial details
**Retrieves data from donations and provides (monthly) reports on financial status **Retrieves data from donations and provides (monthly) reports on financial status
**Provides an API to allow information to be used for status indicators, other reporting engnes etc. **Provides an API to allow information to be used for status indicators, other reporting engnes etc.
-*Ind Indicators/progress bars etc.+*Finance Reports
 +**Provides reports of financial details to the public
 +*Progress
 +**Adds a progress bar to each page showing how much of this months costs are met.
 + 
 +====Files====
 +*paypal.php
 +*:Main file facilitating donations
 +*common.php
 +*:Common functions used by all plugins
 +*ipn.php
 +*:script for callback from paypal server
 +*paypal-api.php
 +*:Functions allowing access to donation data
 + 
====Database==== ====Database====
Line 65: Line 81:
`country` text NOT NULL, `country` text NOT NULL,
PRIMARY KEY (`item_number`) PRIMARY KEY (`item_number`)
-) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=latin1;</pre>+) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=latin1;</pre>
====API==== ====API====
*class paypal_api *class paypal_api
-**static function all_donations($number=10, $start=0) 
-**: 
-**static function myDonations($user) 
-**: 
**static function donations($number=10, $start=0) **static function donations($number=10, $start=0)
-**:+**:Retrieves an array of the most recent donations.
 +**static function myDonations($user)
 +**:Returns an array of all donations made by the specified user.
**static function totalDuring($start, $end) **static function totalDuring($start, $end)
-**:+**:Returns the total money recieved from donations between the dates specified.
==Usage== ==Usage==
Line 86: Line 100:
==Installation== ==Installation==
-copy files into place+copy the four files into extensions/paypal/ (if you choose to change this path you will have to modify paypalCommon::$paypal[notify_url])
 + 
 +Use the sql code above to create a table in the wiki database.
Insert the following line into the end of 'LocalSettings.php' (before the '?>') Insert the following line into the end of 'LocalSettings.php' (before the '?>')
- require("extensions/???.php");+ require("extensions/paypal/paypal.php");
 + 
 +Modify common.php, setting the email address to make donations to, as well as changing any other options desired.
To check to see if it is installed properly, visit your Version page, eg [[Special:Version]]. To check to see if it is installed properly, visit your Version page, eg [[Special:Version]].

Revision as of 22:57, 8 April 2007

PaypalDonationExtension is an extension for Mediawiki that provides users a form allowing them to make a payment via PayPal.

Contents

Details

  • Version 0.0
  • Date 5 Apr 2007
  • Tested on MediaWiki 1.7.1, PHP 5.1.6 (apache2handler), MySQL 5.0.24a-Debian_9ubuntu0.1-log

Features

Design

This extension provides support for related extensions. It will automatically load these 'plugins', with no modification of LocalSettings.php required for each plugin.

The interaction between the Extension and plugins is shown:

             +--------+          +--------+              +-----------------+
             | PayPal |          | Donors |              | Finance Reports |
             +--------+          +--------+              +-----------------+
                 |              /                       /
+------+   +--------+    +=====+   +---------+   +=====+   +----------+
| Wiki |---| Donate |----= API =---| Finance |---= API =---| Progress |
+------+   +--------+    +=====+   +---------+   +=====+   +----------+
                |                       |
            +---------------------------------+
            |            Database             |
            +---------------------------------+
  • Donate
    • Facilitates paypal donations, and recording of transactions
    • Provides an API to allow access to donation info
  • Donors
    • Public list of donors
    • Private list of own contributions
  • Finance
    • Allows treasurer to enter financial details
    • Retrieves data from donations and provides (monthly) reports on financial status
    • Provides an API to allow information to be used for status indicators, other reporting engnes etc.
  • Finance Reports
    • Provides reports of financial details to the public
  • Progress
    • Adds a progress bar to each page showing how much of this months costs are met.

Files

  • paypal.php
    Main file facilitating donations
  • common.php
    Common functions used by all plugins
  • ipn.php
    script for callback from paypal server
  • paypal-api.php
    Functions allowing access to donation data


Database

CREATE TABLE  `wiki`.`donations` (
  `item_number` int(11) NOT NULL auto_increment,
  `user_id` text NOT NULL,
  `request_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `firstname` text NOT NULL,
  `lastname` text NOT NULL,
  `address1` text NOT NULL,
  `address2` text NOT NULL,
  `city` text NOT NULL,
  `state` text NOT NULL,
  `zip` text NOT NULL,
  `email` text NOT NULL,
  `amount` double NOT NULL default '0',
  `comment` text NOT NULL,
  `anonymous` tinyint(1) NOT NULL default '0',
  `validated` tinyint(1) NOT NULL default '0',
  `ipn_results` longtext NOT NULL,
  `payment_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `payment_gross` double NOT NULL default '0',
  `payer_email` text NOT NULL,
  `mc_fee` double NOT NULL default '0',
  `mc_gross` double NOT NULL default '0',
  `country` text NOT NULL,
  PRIMARY KEY  (`item_number`)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=latin1;

API

  • class paypal_api
    • static function donations($number=10, $start=0)
      Retrieves an array of the most recent donations.
    • static function myDonations($user)
      Returns an array of all donations made by the specified user.
    • static function totalDuring($start, $end)
      Returns the total money recieved from donations between the dates specified.

Usage

Example

see Special:Donate

This demo uses the PayPal sandbox. To sucessfully test the product you must register with a paypal developer account, and create a sandbox Business account with the email address tp@pt.com, as well as a personal account for testing.

Installation

copy the four files into extensions/paypal/ (if you choose to change this path you will have to modify paypalCommon::$paypal[notify_url])

Use the sql code above to create a table in the wiki database.

Insert the following line into the end of 'LocalSettings.php' (before the '?>')

require("extensions/paypal/paypal.php");

Modify common.php, setting the email address to make donations to, as well as changing any other options desired.

To check to see if it is installed properly, visit your Version page, eg Special:Version.

You should see the following items:

Releases

Todo

  • Interface to allow hiding of ads
  • Donations in other currencies

Full Todo

RoadMap

0.2 No Date

  • Interface to allow hiding of ads
  • Donations in other currencies

Full RoadMap

History

0.1 9 April 2007

  • Ability to make donations
  • Recording of donors details, and receipt
  • API to allow other extensions

Full History

Source Code

Personal tools