Every other project executed in Joomla needs some kind of Payment integration. Techjoomla's Common Joomla Payments API evolved due to the need to reduce development time on Payment systems & also to reduce the code base & thus bugs. This API & common payment plugins are being used regularly by our services company Tekdi in several Joomla service projects. Techjoomla's own products SocialAds, JTicketing, Quick2Cart have been using this API for the past 3 months. Soon, JomGive will also be ported to this.
The use of this API which currently provides support for 10+ Payment plugins ( We are adding to this every month) , standard payment processes including recurring billing where supported can greatly reduce your development & testing time.
Our Lightening talk today will take you through a Quick look at its features & a short walk through of how you can implement this in your own Products.
Gateways Supported
Paypal , Paypal Pro, Authorize.net, 2Checkout,LinkPoint, PayU, CCAvenue,
JomSocial Points ,Alpha User Points. Pay by PO,Pay By Check, HDFC
More more Coming Soon ...
2. Cook JUG Pune
Trekking Hiking
Bookworm Gardener
Open Source
Parth Lawate
CEO, Techjoomla,
Director, Tekdi Web Solutions
@parthlawate, @techjoomla
www.techjoomla.com
Marketing Joomla Day India
Software Architecht
Entrepreneur
Content Strategy Joomla Freak
3. jGive JTicketing
jomLike
People Suggest
SocialAds Broadcast
Techjoomla. For All things Joomla
@techjoomla
techjoomla.com
REST API Email Beautifier
Payments API
Invitex Quick2Cart
Social API J!MailAlerts
J!Bolo
4. Android
IOS Apps
HTML5
Joomla Magento
Tekdi Web Solutions
@tekdinet
tekdi.net
E Learning CMS Ecommerce
Custom Apps
CRM Social Networks
5. Pay by Check
PayPal Pro
Authorize.net
PayPal 2Checkout
Lets Get Started ! CCAvenue
HDFC
LinkPoint PaseGuro
alphauserpoints
PayU JomSocialPoints
Pay By Purchase Order
7. Why a Common API ?
Lots & lots of Applications use online Payments.
Application Areas Extension Examples
●
Virtuemart
Shops
●
RedShop
Donations ●
Hikashop
Event Tickets ●
Akeeba Subs
Advertising ●
PayPlans
Membership Systems ●
SocialAds
Subscriptions
●
JGive
●
JTicketing
Basic Payment forms
●
Quick2Cart
8. 100s & 1000s of Gateways in the
world
Do you want to integrate them all yourself ?
9. Payment integration is
- complex
- needs extensive testing
- is extremely time consuming
err.. did i mention boring ?
10. And thats just the tip of the
IceBerg
if you have integrated a Gateway from scratch...
you'll know what i mean here !
11. Advantages
●
Code Reuse ●
Supports 10+
●
Minimize testing Gateways
●
One Payment plugin
●
Easy API to add more
works everywhere ●
Just 3 steps to add
●
Scalable payments in your
extensions
●
Flexible ●
Proven – 4 varied
extensions using it
12. Supported Gateways
●
Paypal ●
JomSocial Points
●
Paypal Pro ●
Alpha User Points
●
Authorize.net ●
Pay by PO
●
2Checkout ●
Pay By Check
●
LinkPoint ●
HDFC
●
PayU ●
Amazon
●
CCAvenue ●
Paseguro
15. Here's How
I. Construct the Gateway list
II. Render Payment Form onsite/offsite
III. Add onProcess trigger in your notify URL
1 2 3
16. 1. List the Gateway Options
Trigger
onTP_GetInfo($config)
It returns an array...
The $config lets you pass
which plugins to show from
your extension config
You can render it as a Drop
Down list or Radio list as
you like..
18. 2. Render the Form
You can render the form on a
new page or via Ajax. Trigger
onTP_GetHTML($vars) for
loading the form.
$html=$dispatcher->trigger('onTP_Get
HTML',array($vars));
return $html;
This is purely representative. The form
could be onsite for something like
$vars are the various Auth.net while for paypal, it will be
variables you need to pass to simply a Paypal Button
the gateway
19. The Variables
This is the data that has to be passed on the payment processor
$vars->order_id = Unique Order ID
$vars->user_firstname = First Name
$vars->user_id = User ID if available
$vars->user_email – The user's email
$vars->item_name – Item Name or title
$vars->return – Return URL to get to after transaction
$vars->cancel_return – URL t come to in case of cancellations
$vars->notify_url – URL where the status should be returned
$vars->currency_code – Currency code
$vars->amount – Final amount
You can extend the variables to send as needed. This is just an example
20. 3. Process
●
In your Notify URL, trigger
onTP_Processpayment
$data=$dispatcher->trigger('onTP_Processpayment',array($post));
●
$data['status'] will have the translated status
●
Do your post processing based on standard
Statuses returned
21. Schematic
onTP_GetHTML($vars) Plugin functioning
Paypal
This is the Notify Every extension tells the plugin passes
URL the plugin its return url via the $vars
onTP_Processpayment ($_REQUEST[])
Compose Request Post Processing
CURL Request Auth.net
GetResponse
TranslateResponse
22. Where is it being used ?
In Products
●
JTicketing – Event Tickets
●
jGive Donations
●
SocialAds – Joomla Advertising
●
Quick2Cart – Ecommerce
In Services
●
Custom Exibition Booth booking app
●
Custom Member Signup payments
23. Get Started !
Get the Code
Currently Paypal & Auth.net plugins are available on Github. The rest
will be there very soon
https://github.com/techjoomla/joomla-payments
24. Next Steps ?
1. Increasing adoption & developing more plugins
JPayment
libraries
2. Merging the plugins into the Joomla Platform
26. Techjoomla Social API plugins
Plugins available Used in
●
LinkedIn
●
Invitex
●
Broadcast
●
Gmail
●
Profile Import
●
Hotmail
●
Yahoo Methods Currently Available
●
OAuth Authentication
●
Facebook ●
Get Profile Data
●
Orkut ●
GetStatus
●
Twitter ●
Get Friends
●
Send Message
27. Techjoomla REST APIs
Methods Available
●
Authentication
●
Create/Update/List/Delete
●
Create/Update/List/Delete Jomsocial groups
●
Create content
●
List categories
Next Steps
Prepare POC for pull request for APIs in CMS
28. Thank You !
●
Have an idea which we can work together
on ?
●
Want to Improve on this ?
●
Anything else ?
●
Drop us an email ! contact@techjoomla.com
●
Twitter @techjoomla | @parthlawate