[CRM:special note - if you're using a tarball w/ rev 4441 or less, in particular the current 1.3 release as of Jan 30/06 - I made a mistake in the production domain value constant, so you need to add a
define('MONERIS_PRODUCTION_HOST','www3.moneris.com');
to your config file - AD]
Moneris is a Canadian transaction processor, working with most of the major credit cards and now direct payment cards as well.
Configuring CivicContribute to work with Moneris is much simpler than Paypal, but please read all the way through this note because of some key differences that are both behaviour and security related.
1. You don't actually need to get a Moneris account to test it out, but obviously for production you do. They're at http://www.moneris.com/index.php. You'll be using the php version of the api, but you don't need to know that. I haven't implemented VBV, but may by the time you read this.
2. The default configuration uses USD and Paypal, so you'll need to edit the civicrm configuration file (which may be in modules/civicrm/modules/ or in the sites/sitename/ directory). Changes are as follows:
define( 'CIVICONTRIBUTE_DEFAULT_CURRENCY' , 'CAD' ); // you must change this from default USD
define( 'CIVICRM_CONTRIBUTE_PAYMENT_PROCESSOR' , 'Moneris' ); // change it from Paypal
// Moneris requires the default currency above to be set to 'CAD'
define( 'CIVICRM_CONTRIBUTE_PAYMENT_CERT_PATH' , '' ); // not used for Moneris
define( 'CIVICRM_CONTRIBUTE_PAYMENT_KEY' , 'your storeid' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_PASSWORD' , 'your apitoken' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_RESPONSE_EMAIL', 'youremail@domain.com' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_TEST_PROCESSOR' , 'Moneris' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_TEST_CERT_PATH' , '' ); // NOT USED
define( 'CIVICRM_CONTRIBUTE_PAYMENT_TEST_KEY' , 'store2' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_TEST_PASSWORD' , 'yesguy' );
define( 'CIVICRM_CONTRIBUTE_PAYMENT_TEST_RESPONSE_EMAIL', 'yourtestemail@domain.com' );
You'll need to put in your storeid and apitoken as recieved from moneris in the production constants, but the store2 and yesguy strings in the TEST section are real valid entries for the moneris test environment (there are 2 other allowable ones, see their documentation if you want to use a different test store). The test values won't work in production, it uses a different domain.
3. It's important to know that the results of the test environment are shared with other developers, i.e., only use test info, others can see what you post.
4. Another key difference from paypal is that the test environment is setup to give various error codes depending on the amount you send. See their environment notes if you want to test what happens when someone submits a payment with a maxxed out card, for example, or to simulate the processor being unavailable.
5. Moneris provides a web interface to do lots of administrative stuff (e.g. reversing charges), not currently handled by CiviContribute. Lots of contributor information is also sent to Moneris to help you match up data in your accounting.