Conference/CBM Sites
CBM stands for "Consolidated Billing Module" which is a billing and
payment module created by UBC IT and made available for use by
departments. Theresa Liao is the main contact for our department
since it was originally set up for the PHAS Summer Camps
payments. From the workstation in her office she can monitor
incoming payments and reverse charges if necessary. See also the PHAS CBM Guidelines (Word document) for
local policies.
Merchant Account Code: PHAS Grant Code: G0000220900 22G1136365300
(old Grant Code: G0000220900 22G30417465300 - up to 15-04-08)
If you need to change the Grant Code associated with the Account Code, you need to contact the
UBC-IT ePayment folks.
Several conferences/workshops have taken advantage of our ability to
offer on-line payments to host their registration sites. More
details on that later, but first:
CBM System
- The interface to the CBM system resides on omega
in: /var/www/html/outreach/private/CBM_class.php
- It was written by MAP in March 2010, based on code provided by
Edmund Seow (Land and Food Systems) and has changed little since.
- CBM offers a test server which we use whenever setting up a new
registration system
- during test phase we point registration code to
test_CBM_class.php instead of CBM_class.php
- there are test credit card numbers we can use to run through
the entire process
- Registration sites require the CBM_class and also require local
scripts to take care of various tasks during the payment process (eg.
notify.php and continue.php).
- The process is quite complex. There is a file folder
(paper) marked "CBM" which contains the CBM documentation. In
there is a process flowchart which has been colour-coded with a felt
pen in an attempt to make it clearer. Process steps:
- Registration site creates a unique customer/registration code
(Merchant ID) and dollar amount to be paid.
- It invokes the CBM_class to establish a connection with CBM
with appropriate parameters (required: notify and continue URLs)
- Generates the appropriate URL to put behind "On-line Payment"
button on customer's browser.
- Customer clicks button which takes them to CBM payment server.
- If there is a successful payment transaction the CBM server
will call the notify URL before confirming with the customer; the
notify code must (a) save the info. provided, and (b) respond with a
Success message; failing that the CBM server will reverse the charges
and report Failure to the customer.
- Assuming that the notification step has gone okay, CBM will
report Success to the customer and show them a Continue button to
return them to our web server (note: The continue URL must be to an
encrypted site).
- The continue code (eg.
https://outreach.phas.ubc.ca/{conference}/continue.php) saves the info.
provided and redirects to local payment confirmation page - ie.
continue.php on the registration site.
- NOTE: This means there are two continue.php scripts for each
registration site: one under https: that CBM will return the customer
to, and the other under the registration site.
- There is a cbm-dev directory (under outreach/private) which
contains a 00ReadMe file and some demo scripts to demonstrate the CBM
process.
Registration Sites
- All sites are located on omega in: /var/www/html/outreach/web/
- They all make use of MySQL databases to record
registration/payment information.
- Outreach-related sites (eg. Summer Camps, Michael Smith
Challenge) use the outreach database.
- All other sites (eg. CUPC, CASCA) use the communications
database. Appropriately named tables and users are created for
each site.
- Code to handle the registration process resides in various CONF_class.php files in
appropriately named directories.
- unlike the payment process (CBM_class.php), the registration
process is not sufficiently well-defined (yet?) to allow for a
general-purpose CONF_class.php file.
- with each new conference or workshop the files have been
copied from the previous one and modified as necessary.
- examples of variations amongst events: possible to edit
registration details? upload abstracts? complexity of fee structure;
multiple languages!
- Typical 00ReadMe file contents:
Conference Registration:
-----------------------
Very brief overview of files in this directory:
NOTE: The only files that need to be modified for a given conference are
config.php and the files in the views/ sub-directory,
... assuming no new features, or changes in the business logic. (bad assumption!)
index.php = all logic flows through this (except CBM payments)
config.php - configuration file; sets up parameters for a given conference
CONF_class.php - conference business logic
functions.php - some general-purpose functions (not specific to conference application)
CBM functions:
-------------
notify.php - saves payment details in database; sends email message to client
continue.php - client returns here after payment via CBM Continue button
Look and Feel code: views sub-directory
------------------
header.php - html to show at the top of every page
logo.png - conference logo
trailer.php - html to show at the bottom of every page
notices.php - html to wrap around any notice/error messages
error_messages.php - html to wrap around an array of error messages
initial_page.php - initial "welcome" page
registration_form.php - registration form
confirmation_form.php - confirm registration form
email_confirmation.php - confirm registration email
status_page.php - registration/payment status page
payment_email.php - confirm payment email