Custom CiviCRM Payment Processor Module
I worked on a CiviCRM payment processor module for UCLA’s CyberPay. Here is a rundown of what I did as a reference (mostly for myself):
CMS: Drupal 6.x with CiviCRM 2.x.
Drupal’s Official Site: http://drupal.org.
CiviCRM’s Official Site: http://civicrm.org.
Files (These files are on the CiviCRM side):
<drupal-root>/sites/all/modules/civicrm/CRM/Core/Payment/AISCyberpayOPCE.php
<drupal-root>/sites/all/modules/civicrm/CRM/Core/Payment/AISCyberpayOPCEIPN.php
<drupal-root>/sites/all/modules/civicrm/CRM/Event/Payment/AISCyberpayOPCE.php
<drupal-root>/sites/all/modules/civicrm/extern/cyberpayIPN.php
Contents of these files might be posted later.
This is a “notify” type of payment processor as described at http://wiki.civicrm.org/confluence/display/CRMDOC/Creating+Additional+Payment+Processor+Plugins.
As mentioned in that same article, you must add this payment processor in the database table named “processor_types”.
On the CyberPay side, a few more files need to be created and uploaded to cyberpay.semel.ucla.edu, which currently is a Windows server that has an IP address that is authorized to access CyberPay directly. For those at LBBP, we sometimes call this “Boston’s server”.
As a default setup scenario, we have a Microsoft Access DB (a flat file) as a database for transaction logging. There are also 3 .asp files that collects user and payment info, do form validation and processing, then eventually POST the payment processing result back to CiviCRM at https://<opce’s drupal server>/sites/all/modules/civicrm/extern/cyberpayIPN.php. (or something like that).
The Access .mdb file: ftp://<boston’s server>/cyberpay/npih/cyberpaytest.mdb
The registration page: ftp://<boston’s server>/cyberpay/npih/asp/cyberpaytest/cyberpaytest-reg.asp
The form validation page: ftp://<boston’s server>/cyberpay/npih/asp/cyberpaytest/cyberpaytest-validation.asp
The results page that calls cyberpayIPN.php: ftp://<boston’s server>/cyberpay/npih/asp/cyberpaytest/cyberpaytest-result_s.asp