Requirements for Tiki Payments Pro
Tiki Payments Pro is an extension of the existing Tiki Payments.
The goal of the Pro system is to be able to easily interface with a broad range of payment processors (Paypay Direct Payments, Moneris, Beanstream, etc...), and not just PayPal Express Checkout, which is what it does right now.
Requirements:
- A way to setup payment methods, and specify the fields that the specific payment method requires for each payment
- A way to map these fields that the specific payment method requires to trackerId/fieldId where the info is expected to be
- the system assumes that information required is already in the trackers specified by the admin.
- the only piece of information not stored is the cc info (everything else is stored in trackers)
- A way to specify the credit card types (Visa, Mastercard, etc...) that each payment processor accepts
- A common form (reusable whichever payment processor is selected) for the entering of credit card info (and choosing of the credit card type) will be shown for the entry of cc info when payment is to be made.
- ensure that ssl is enabled for this form
- info is passed to the payment processor and then thrown away, except for option to store last 4 numbers of credit card number together with the other info in the payment records
- Some basic validation of the info in the specified tracker fields before sending to the payment processor
- Payment will be triggered from payment plugins like the existing one. An additional parameter will specify the payment processor type.
- A common error and confirmation handling return values to the plugin that requested payment, so that the plugin can handle it the way it wants (perhaps to redirect to certain specified page as default handling):
- payment rejected
- payment accepted
- info not sufficient/complete
- A standard way to write extension PHP that does the connection and actual sending of info to each specific payment gateway
- A standard way to write callback IPN type PHP that does the handling of feedback from each specific payment gateway
- A way to specify the definition JSON serialized for return values for each payment processor
- A standard way to store and retrieve the JSON serialized values returned together with a payment record Id that can be referenced (conceivably, payment plugins can store this Id in the other trackers to reference payments, and make use of this info for other purposes).
A sample implementation to Paypal Payments Pro Direct Payments is to be included. https://www.paypal.com/cgi-bin/webscr?cmd=_dcc_hub-outside
Also see Refunds
Also note:
For now, only one setting of each type of payment method is required in one Tiki installation. However, while not an immediate requirement, it should be kept in mind that future extension will involve allowing different users to receive payments into their own individual accounts, which theoretically can be any one of the payment methods configured. This allows users to set their account information and receive money directly from payers without going through the site owners' account.