The Common Payments API for Joomla
There are literally hundreds of payment gateways all over the world & it can becoming a big pain supporting them in your Joomla extensions. The Common Payments API is a standard way to integrate with supported payment gateways. The standard abstraction layer of the Common Payments API ensures that whichever gateway you want to integrate your extension with, you dont need to make any special changes in your extensions. Using this API in your extensions ensures that your extension will work with all supported payment gateways.
The Common Payments API was released as GPL open source code at the Joomla World conference in 2012 & has since been adopted by many extension developers. Future plans for the API include trying to get it included in the Joomla core as libraries in the platform/framework.
The Need of a Standard API
Lots & lots of websites & applications need to accept payments today. And a lot of these applications are being written using the Joomla CMS as a base. The Joomla extension space easily has extensions in multiples of hundred supporting one or more payment gateways. Though there are so many developers using various payment gateways, till now there isn’t a standard Library or API to standardise how payment integrations are handled in Joomla.
Over the years, we came out with many products that needed payments support. Initially it was just SocialAds. Then came JTicketing, JGive, Quick2Cart to name a few. Creating & maintaining payment plugins for so many gateways & extensions started becoming a chore & a bore !
Out of this was born the need to study & create a standardised way to do things such that all our extensions could share the same common payment plugins.
When doing the architectural design for the Common Payments API, we decided that as the first step would be to make the API available as Joomla plugins & then slowly convert them to platform/framework libraries so that they could be used in applications outside the CMS as well. The main challenges were to design a abstraction layer that could take care of the myriad Payment systems out there & making sure that no extension specific code crept into the plugins. We did comparative studies of many completely different payment gateways & extension use cases to come to the solution we have today.
Lets Innovate. Not Duplicate !
We believe developers should not need to spend time on writing the same code over & over again. Stuff like payments should be standard & be easy to plugin. This gives developers more time to Innovate in their own applications rather than worry about mudane & boring things like payments ! Adopt the Payments API today. Scroll below for tutorials & more !!
The Common Payments API, All its plugins & the sample development extension has been made available under the GPL license. If you are interested in contributing, jump in & fork it on GitHub !
Supported Payment Gateways
Please note that though the list here is updated here from time to time, to check the latest list of supported gateways, check the Git Hub page
|Standard Payment Gateways|
|PayPal (with recurring)||PayPal Adaptive|
|Pay U India|
|Points/Cash systems, Offline Methods|
|Pay By Check||Pay By Purchase Order|
|Alpha User Points||JomSocial Points|
|Pay by Jwallet Cash ( Techjoomla Extension)|
Developer Resources, Tutorials & More !
From a development perspective, there are two angles to the Common Payments API. One is integrating it into your own extensions & second is developing new payment plugins. These resources will help you do both.
4 Steps to Integrating Payments into your Extensions !
We have provided an indepth tutorial on how your can integrate the Common payments API into your own Joomla extension in as less as 4 Steps ! Read the Tutorial
Sample Development Extension
This is a sample component which illustrates the integration with Techjoomla's payment API with your component. If you are developing your own custom component that needs payments, starting with this extension as a base can get you started very fast. Or if you are integrating Payments into an existing extension, it can also serve as a good starting well. This goes well with the tutorial above :) Download here
Tutorial to write your Own Payment Plugins for the Common Payments API
The coolest part about the Common Payments API is that once you write a payment plugin for a new Payment gateway, it will integrate automatically with all extensions that support it. This tutorial will teach you how to write your own payment plugin. A Sample blank Development plugin is also provided for your reference. Read the tutorial.
You can use a basic skeleton blank plugin we have made available to get started. Download it here
The Common Payments API was released to the world at the Joomla world conference 2012 & has since been presented at Joomla Day India. This presentation will give you a quick snapshot at everything you need to know about the common payments API.
Developers - Get the Common Payments API Code. Fork it on GitHub !
The latest code for all our plugins as well as the sample development extension we provide devs to help get started in all available to download & use for free. Get it here on GitHub.
We Invite developers to help us improve our codebase & payment gateway coverage. If you dont see a payment gateway you need here, you can develop it easily using our Plugin development documentation.If you do develop any, do contribute them !
Sponsor a Payment Plugin !
If you are not a developer but need a payment gateway we dont support yet, you can contract us to develop it for you ! We offer Paid services to develop integrations for any payment plugins you might need. So Contact us today !
Community Support Forum
The Common Payments API project is community supported. Jump on to the forum to report any issues, improvements that you might have on the forum.
Who is Using the Common Payments API
Though we know of several projects in which the Common Payments API has been used in production, we are only mentioning those Joomla extensions that are known to use this. Besides these there are several applications that have been used by us as well as our users in custom client applications.
- Matukio by Compojoom
- DigiStore by IJoomla
Some other known custom applications using CPG include a custom event payment system, a Exibition stall booking system , a Mobile Recharge solution & a SMS information subscription service.