Successfully reported this slideshow.

Joomla Common Payments API - Joomla World Conference 2012

13,117 views

Published on

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 ...

Published in: Technology

Joomla Common Payments API - Joomla World Conference 2012

  1. 1. Techjoomla PresentsCommon Payments API V1.1 Joomla Day India 2013V1.0 Joomla World Conference 2012
  2. 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 ArchitechtEntrepreneur Content Strategy Joomla Freak
  3. 3. jGive JTicketing jomLike People Suggest SocialAds Broadcast Techjoomla. For All things Joomla @techjoomla techjoomla.com REST API Email Beautifier Payments APIInvitex Quick2Cart Social API J!MailAlerts J!Bolo
  4. 4. Android IOS AppsHTML5 Joomla Magento Tekdi Web Solutions @tekdinet tekdi.net E Learning CMS Ecommerce Custom Apps CRM Social Networks
  5. 5. Pay by Check PayPal Pro Authorize.net PayPal 2Checkout Lets Get Started ! CCAvenueHDFC LinkPoint PaseGuro alphauserpoints PayU JomSocialPoints Pay By Purchase Order
  6. 6. Lets Innovate. Not Duplicate
  7. 7. Why a Common API ?Lots & lots of Applications use online Payments.Application Areas Extension Examples ● VirtuemartShops ● RedShopDonations ● HikashopEvent Tickets ● Akeeba SubsAdvertising ● PayPlansMembership Systems ● SocialAdsSubscriptions ● JGive ● JTicketingBasic Payment forms ● Quick2Cart
  8. 8. 100s & 1000s of Gateways in the world Do you want to integrate them all yourself ?
  9. 9. Payment integration is- complex- needs extensive testing- is extremely time consumingerr.. did i mention boring ?
  10. 10. And thats just the tip of the IceBergif you have integrated a Gateway from scratch... youll know what i mean here !
  11. 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. 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
  13. 13. Super Quick To Integrate !
  14. 14. Steps to Payments !
  15. 15. Heres HowI. Construct the Gateway listII. Render Payment Form onsite/offsiteIII. Add onProcess trigger in your notify URL 1 2 3
  16. 16. 1. List the Gateway OptionsTriggeronTP_GetInfo($config)It returns an array...The $config lets you passwhich plugins to show fromyour extension configYou can render it as a DropDown list or Radio list asyou like..
  17. 17. Example Code$dispatcher=JDispatcher::getInstance();JPluginHelper::importPlugin(payment);$gateways=$dispatcher->trigger(onTP_GetInfo,array((array)$this->gateways));$this->assignRef(gateways,$gateways);
  18. 18. 2. Render the FormYou can render the form on anew page or via Ajax. TriggeronTP_GetHTML($vars) forloading the form.$html=$dispatcher->trigger(onTP_GetHTML,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 bevariables you need to pass to simply a Paypal Buttonthe gateway
  19. 19. The VariablesThis 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 users 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 amountYou can extend the variables to send as needed. This is just an example
  20. 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. 21. Schematic onTP_GetHTML($vars) Plugin functioningPaypal 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. 22. Where is it being used ?In Products● JTicketing – Event Tickets● jGive Donations● SocialAds – Joomla Advertising● Quick2Cart – EcommerceIn Services● Custom Exibition Booth booking app● Custom Member Signup payments
  23. 23. Get Started !Get the CodeCurrently Paypal & Auth.net plugins are available on Github. The restwill be there very soonhttps://github.com/techjoomla/joomla-payments
  24. 24. Next Steps ?1. Increasing adoption & developing more plugins JPayment libraries2. Merging the plugins into the Joomla Platform
  25. 25. What else do we have to share ?
  26. 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. 27. Techjoomla REST APIsMethods Available● Authentication● Create/Update/List/Delete● Create/Update/List/Delete Jomsocial groups● Create content● List categoriesNext StepsPrepare POC for pull request for APIs in CMS
  28. 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

×