The University uses TouchNet for credit card payments. There are two services provided, uPay, which only processes payments, and MarketPlace which provides some shopping cart functionality. We have been using uPay for all our transactions, allowing us to have all of our records in one place.
Portal
Event booking payments
The Events Manager Pro booking system should be able to use uPay as a payment gateway, although there is no known gateway already working. Expected to be implemented Spring 2015.
Formidable payments
For events that are not on the calendar, and for other "non-calendar" payment needs, such as SIPJF or student lockers, we will use Formidible as the basis for the data processing. More technical details and step-by-step instructions.
Overview
The system works with a registration form built in Formidable Pro that calculates the total for the event/service and has a "payment" field that holds the amounts already paid. The form is set to "Redirect to URL" upon submission, with the URL set to a page with an embedded [touchnet_pay] shortcode and the query string set to "?entry=[key]". The short code will use the "entry" to build a Payment Confirmation screen that allows the visitor to either return to the registration form or proceed to TouchNet to complete payment.
"Registration" form
Create the form to collect the payment information via admin menu "Formidable / Forms / Add New." Set the "Form Key" to a short, unique, but meaningful name, all lower case, no spaces (use underscore instead). For example, the Employer and School registration forms for SIPJF are named "sipjf_emp" and "sipjf_sch" respectively. For the standard information fields, the field key naming convention is "frm_key_field" where "_field" is as shown below. Defaults values, if any, are shown below in {curly brackets}.
"View" field key | Description |
---|---|
frm_key_name | Used to pass the billing name. |
frm_key_email | Used to pass the billing email address. |
frm_key_address | Used to pass the billing street address 1. |
frm_key_address2 | Used to pass the billing street address 2. |
frm_key_city | Used to pass the billing city. |
frm_key_state | Used to pass the billing state. |
frm_key_zip | Used to pass the billing postal code. |
frm_key_country | Used to pass the billing country. {US} |
form_key (internal pre-set) | Used as a unique identifier for this transaction = "frm_key" in the other field keys |
label | Used to describe the EXT_TRANS_ID value on the payment receipt. {CustomerID} |
frm_key_total | A field (often hidden) to hold the total calculated by Formidable |
frm_key_payment | Hidden or read-only field to hold the amount paid as reported by TouchNet |
frm_key_due | (optional) Passed-in amount to be collected - note: only recalcs on reg form load |
frm_key_upay_id | Used to select the uPay site - either a hidden field or specified in the confirmation view setup. {39} (generic payment site) |
frm_key_{item}_cost | For an itemized list of costs |
frm_key_{item}_qty | To specify the quantity of the "item" ordered |
frm_key_discount *** Not yet implemented - possible future feature - for now, use Formidable's calculated field capabilities |
If zero or not set, no discount If contains "%" then a percentage off otherwise, a dollars off discount |
page_title | The title, same as the form "Build" title (usually displayed in <h3> tag) |
reg_link_class | Used to hide the "Back" link if there is no link (set to 'frm-hide' or 'frm-show') |
reg_page | URL of registration page. {stored page or HTTP_REFERER} |
go_back | Text of link to go back to registration page, {"Go back to the registration page"} |
url | Address of payment site {https://secure.touchnet.com/C20797_upay/web/index.jsp} |
Allowing edits
If a registrant is logged in to InsideLaw, the entered information can be edited if the form is set to "Allow front-end editing of form submissions" (probably want to also " Logged-in User").
If the registrant is not logged in to InsideLaw, the [allow_form_edit] shortcode must be placed on the registration form page above the [formidable id=??] shortcode. the user is logged in by a script in the functions.php file if there is an "entry={key}" in the query string. Note that this automatically logs the visitor in as a "Subscriber" user "Anonymous".
The registrant can return to edit the form by adding a query string to the URL in the format:
http://domain/page-with-form/?frm_action=edit&entry=key
The payment confirmation form (below) will normally generate this link back to the form if editing is to be allowed. THis link is formed as follows:
<a class="[reg_link_class] frm-noprint" href="[reg_page]?frm_action=edit&entry=[key]">[go_back]</a>
The Payment Confirmation
The Payment Confirmation screen is generated by the [touchnet_pay] shortcode that creates a "receipt" payment confirmation screen page that provides a "pay" button linking to TouchNet.
Formidible Pro can perform the calculation of the total amount due. This is easily done with a read-only text field by checking the "Calculate the default value for this field" option and entering the formula (if any) to calculate the total. This field should be named "frm_key_total" for processing. If you have a field named "frm_key_due", the value will be used for the total to be collected, but the "due" value will not be updated upon payment unless the original form is visited, as Formidable does not recalculate except when the form is loaded. A field named "frm_key_payment" will be updated upon payment. For manual payments, create another field that ends in "_payment", such as "frm_key_manual_payment" that will be included in the calculations, but should not be changed when credit card payments are made.
To get the visitor to the Payment Confirmation, set the "Redirect to URL" action after submission (and edit):
Admin menu: Formidable / Edit (of desired form) / Settings / General (tab) / "Action After Form Submission" / select: Redirect to URL / set to the page to display the Payment Confirmation, e.g.:
https://insidelaw.gsu.edu/payment/?key=[key]
Formidable will replace "[key]" with the entry_key of the newly-created entry.
That destination page will contain a [touchnet_pay] shortcode that will create the payment confirmation submission form. That page can also contain any other needed text, etc.
The default Payment Confirmation form is stored as a View to the Formidable form "TouchNet payment button setup values" (a not-yet-implemented way to insert setup values). The View is a custom content post named "touchnet_pay" (post type "frm_display").
A custom Payment Confirmation form can be used by creating a View with the Form Key set to "form_key_pay" (this is done via the "Permalink" Edit button). The content of the View would contain [placeholders] for the field keys as shown in the table above. Note that this view can be used regularly, separately from the [touchnet_pay] shortcode, if the "Filter Entries" setting is set to select "Entry Key" is "equal to" with "[get param=entry default=xxx]" - NOTE: The "default" attribute must be set to an arbitrary invalid value (e.g. "xxx") to avoid the situation where the first entry of the form is shown if the "entry" attribute is not properly set.