User:MarkTraceur/FR-tech setup notes

From mediawiki.org

These are Mark Holmquist's notes on the Fundraising setup he did in May of 2013 as part of his attempts to start QA'ing their setup.

Getting the right stuff[edit]

 git clone https://gerrit.wikimedia.org/r/mediawiki/core.git # Or, you know, clone core however you want
 cd core
 git checkout -b fundraising/1.22 origin/fundraising/1.22
 git submodule update --init --recursive

Install MediaWiki[edit]

Installation

Configuring like a boss[edit]

$wgDonationInterfaceTestMode = true;
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );
require_once( "$IP/extensions/DonationEmailUnsubscribe/FundraiserUnsubscribe.php" );
require_once( "$IP/extensions/ContributionTracking/ContributionTracking.php" );
$wgDonationInterfaceEnableGlobalCollect = true;
$wgDonationInterfaceEnablePaypal = true;
require_once( "$IP/extensions/DonationInterface/donationinterface.php" );
$wgGlobalCollectGatewayAccountInfo['test'] = array(
    'MerchantID' => 'test'
);
require_once( "$IP/DonationInterfaceFormSettings.php" );

Notably, there is a patch (https://gerrit.wikimedia.org/r/70666) that will require this configuration to change - s/donationinterface.php/DonationInterface.php/

Don't forget to update behind your ears[edit]

 php maintenance/update.php --quick

Also, update your database:

 alter table <prefix>contribution_tracking modify anonymous tinyint(1) unsigned default null, modify optout tinyint(1) unsigned default null;

Replace <prefix> according to your configuration!

There's a log in the hole in the bottom of the sea[edit]

/etc/rsyslog.d/60-payments.conf

 if ($programname contains '_payment_in') then /var/log/payments/initial
     & ~
 if ($programname contains 'globalcollect') then /var/log/payments/globalcollect
     & ~

LocalSettings.php (after including DonationInterface, not before)

 $wgDonationInterfaceUseSyslog = true;

Also, /etc/rsyslog.conf (position probably doesn't matter)

 $MaxMessageSize 64k

Tail the shit out of your logs[edit]

 tail -f /var/log/payments/globalcollect
 tail -f /var/log/apache2/error.log

For the full experience[edit]

Add pages named "Donate-thanks/en" and "Donate-error" to your wiki, they'll be used to thank you for your fake money.