Developing Custom Payment Gateway

Slides:



Advertisements
Similar presentations
Welcome to WebCRD.
Advertisements

Lecture 3 Title: Online Payment: Credit Card and PayPal
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Recruitment Booster.
Helping retailers sell to mobile shoppers since Features for Higher Conversion Rates May 16, 2012 Ken Barber – VP Marketing and Gwin Coleman – Client.
Marketplace Shopper Training This training is intended for those users who will be Shoppers in the Marketplace e-Procurement system.
CC3.12 Lecture 12 Erdal KOSE Based of Prof. Ziegler Lectures.
Introduction Booktruck.com aims to: Combine the strengths of the first two generations, while avoiding many of their weaknesses Penetrate sizable existing.
Follow these instructions to pay your dues. Get into your web browser Like Internet Explorer Now you need type in this address in the Address bar. Example.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation.
PayPal E-Business Technologies Prof.Dr. Eduard Heindl BCM SS Edit Molnar.
Webinar Today: eCommerce Solutions Shopping Carts Online Bill Payment Event Registration And more! Problems? Please
Introduction to our e Commerce Solution.  Supports categories and manufacturers  Categories can also be fully nested to any level desired (sub-categories)
How to Get The Most Out of Outlook 2003 Michele Schwartzman Division of Customer Support Summer 2006.
Migrating to EPiServer CMS 5 Johan Björnfot -
Miro Remias Solution architect Kentico software
Web Payments via Christopher Woods Aaron Buma. Agenda  Introduction  About it  Why to use it  Services they Provide  Seller Protection  Ebay Aspect.
1 Google Checkout API Jingsong Wang Arpril 2, 2007.
© 2008 Authorize.Net 1 Welcome to Authorize.Net New Reseller Overview 2008.
Development In Kentico 7
Online Search Marketing OMI Certification Course – Discovery Documentation.
E-Commerce Solutions. What is e-Commerce  Simply put, e-commerce is the online transaction of business, featuring linked computer systems of the vendor,
Design of GuitarWorld.com
NPR DS Marketing Forms powered by Springboard Reports May, 2015.
Real World Examples – Part II 7/26/2013Miro Remias, Sr. Solution Architect.
Search Empower Engage Send Print Co-Brand With BusinessBuilder.
Jim Cunningham, Sr. Engineering Manager Todd Sieber, Integrations Wizard Lab: Adding PayPal to Existing VeriSign Solutions.
Partners’ Webinar 10/25/2012 Karol Jarkovsky Solution Architect E-commerce Scenarios.
Payflow Pro and Payflow Link Manager Merchant Interface Tutorial.
E-Commerce Sell Your Stuff Online. What We’ll Be Talking About One of the most important parts of your business is collecting the cash, and Infusionsoft.
Your Name Here See Page Notes for Info about Hyperlinks.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
MARKETING PORTAL PRESENTED TO YOU BY CABLES TO GO.
Tom Castiglia Hershey Technologies
Sneak Peak: PayPal’s New API Interface (Processing PayPal Transactions Through the Payflow Gateway) Brian Sparr Manager, Sales Engineer PayPal, Inc.
COMP3121 E-Commerce Technologies Richard Henson University of Worcester November 2011.
1 OPOL Training (OrderPro Online) Prepared by Christina Van Metre Independent Educational Consultant CTO, Business Development Team © Training Version.
E-commerce customization 12/19/2011Petr Vozak, Technical Leader.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
New & Improved Events List Relationships and Joins Large List Support Field & List Item Validation.
Fundraising Webinar – September 28, webinar topics basic principles gateways pages (receipting / error messages / form fields) transactional data.
Module 11: Securing a Microsoft ASP.NET Web Application.
Chapter 9 Building the Shopping cart Objective Creating Shopping cart using session Variable. Creating a shopping cart using a database table. Use the.
Partners’ Webinar 01/31/2013 Karol Jarkovsky Solution Architect Upgrading Kentico.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Search Overview Search Features: WSS and Office Search Architecture Content Sources and.
Chapter 11 Working with Credit Card Methods of Processing Credit Cards Preparing for Cyber Cash Authoring a Credit card Transaction.
 Registry itself is easy and straightforward in implementation  The objects of registry are actually complicated to store and manage  Objects of Registry.
Secure Online Payment Presented by Tom Hun Web Developer.
Registration Solutions for your Event Management.
 Empowers to your customer  Product Rating and its Management in Ecommerce Framework  Product Reviews and Management: Collecting customer opinion about.
 Shopping Basket  Stages to maintain shopping basket in framework  Viewing Shopping Basket.
 How we should structure our checkout and order process?  Checkout and Order Process of our framework  Stages of Checkout and Order Process.
Meetingangels.com Service Buyer. Front Page 2created by ilancecustomization.com.
COMP3241 E-Commerce Technologies Richard Henson University of Worcester December 2014.
Forms Manager. What is Forms Manager? Forms Manager is a completely new online form creation and form data management tool.
Complete Ordering System for Promotional Literature and Samples Quick Reference and Training Guide.
Developer Exam Preparation Thom Robbins Bryan Soltis
Using the Kentico CMS API Thom Robbins Bryan Soltis
Ariba Punch-Out Catalog Process Flow
E commerce Online Shopping Website at Rs. 7920/-.
PrestaShop Shopping Cart Extensions eGrove Systems.
Discover Unlimited Website Possibilities Prague, October 18-20, 2010.
E-commerce customization Petr Vozak, Technical Leader.
Credit When Credit is Due Taking Credit Card Payments in Evergreen
Automating Accounts Payable
B2B VERSION 1.0: Recent Updates B2B VERSION 2.0 Relaunch Oct 3, 2016
PAYMENT GATEWAY Presented by SHUJA ASHRAF SHAH ENROLL: 4471
Everything You Need to Know About AW-PENDING PAYMENTs
Checkout and Electronic Payment Processing
Grocery Store Outline csc242 – web programming.
Presentation transcript:

Developing Custom Payment Gateway 4/19/2012 Miro Remias, Solution Architect

Built-in Payment Gateways PayPal, Authorize.NET, Customer Credit, ? Custom Payment Gateway, Market Place: E-way, PayPal Payflow Pro,

Agenda Payment gateway class, payment gateway form (1) SQL Database Save order Update result 2 Payment provider Authorize.NET Checkout steps A) HTTP(S) POST B) Redirect Kentico Buyer(s) PayPal 1 Redirect (optional) Thank you page Payment Notification Update result 2 3 Confirmation (optional) PN page Payment gateway class, payment gateway form (1) Payment result (2) Payment Notification (3) Security (4) Real world example - DEMO

(1) Payment Gateway Class API CMS.EcommerceProvider.CMSPaymentGatewayProvider ShoppingCartControl (ShoppingCart) ShoppingCartInfoObj (ShoppingCartInfo) OrderId (int) PaymentResult (PaymentResultInfo) IsPaymentCompleted (bool) PaymentResult.PaymentIsCompleted AddCustomData() - CMSPaymentGatewayForm control is added to the payment data container and its data are loaded. RemoveCustomData() - All controls from payment data container are removed. ValidateCustomData() - CMSPaymentGatewayForm control data are validated. ProcessCustomData() - CMSPaymentGatewayForm data are processed. ShoppingCartInfoObj.PaymentGatewayCustomData (Hashtable) ProcessPayment() - Override this method to process payment by your payment processor. GetPaymentDataForm() - Override this method to get your own payment gateway form. (static)GetPaymentGatewayProvider(int paymentOptionId) – Loads payment gateway. UpdateOrderPaymentResult() - Updates order payment result in database. OrderId PaymentResult

(1) Payment Gateway Form API CMS.EcommerceProvider.CMSPaymentGatewayForm ShoppingCartControl (ShoppingCart) ShoppingCartInfoObj (ShoppingCartInfo) PaymentGatewayCustomData (Hashtable) LoadData() - Initializes form controls with customer payment data CMSPaymentGatewayProvider.AddCustomData() - ShoppingCartPaymentGateway ValidateData() - Validates form data and returns error message if some error occurs CMSPaymentGatewayProvider.ValidateCustomData() - ShoppingCartPaymentGateway ProcessData() - Process form data and returns error message if some error occurs CMSPaymentGatewayProvider.ProcessCustomData() - ShoppingCartPaymentGateway UI

(1) I Don’t Need Payment Gateway Form ShoppingCartPaymentGateway API PaymentOptionInfo poi = PaymentOptionInfoProvider.GetPaymentOptionInfo(this.ShoppingCartInfoObj.ShoppingCartPaymentOptionID); if (poi != null && poi.PaymentOptionClassName.ToLower().Equals("worldpayprovider")) { this.ButtonNextClickAction(); } else LoadData();

(2) Working With Payment Result Database COM_Order [Table] OrderPaymentResult [Column] OrderIsPaid [Column](new from version 6.0) API CMS.Ecommerce.OrderInfo OrderPaymentResult CMS.Ecommerce.PaymentResultInfo PaymentDate PaymentMethodID PaymentMethodName PaymentIsCompleted PaymentStatusName PaymentStatusCode PaymentTransactionID LoadPaymentResultXml(string xml) OrderIsPaid Note: You don’t need to specify both value and item text if they are identical ((1) item text, (2) item value) <result> <item name="date" header="{$PaymentGateway.Result.Date$}" value="4/12/2012 8:30:19 PM" /> <item name="method" header="{$PaymentGateway.Result.PaymentMethod$}" text="Word Pay" value="5" /> <item name="completed" header="{$PaymentGateway.Result.IsCompleted$}" value="1" text="{$PaymentGateway.Result.PaymentCompleted$}" /> <item name="transactionid" header="{$PaymentGateway.Result.TransactionID$}" value="6dc9af1c.." /> <item name="description" header="{$PaymentGateway.Result.Description$}" /> <item name="verified" header="{$PaymentGateway.WorldPayResult.Verification$}" value="1" text="{$PaymentGateway.WorldPayResult.Verification.Verified$}" /> </result> // Create/address new/existing PaymentResultItemInfo PaymentResultItemInfo itemObj = EnsurePaymentResultItemInfo("verified", HEADER_VERIFIED); // PaymentResultItemInfo itemObj = GetPaymentResultItemInfo("verified"); if(itemObj != null) { // item.Name // item.Header item.Value = ""; item.Text = ""; } // Save new item SetPaymentResultItemInfo(item);

(3) Payment Notification Physical page (.aspx) vs. virtual page (served by Kentico), PN page is not displaying anything - it should only process the received data, Common location: ~\CMSModules\Ecommerce\CMSPages\ PN page needs to be accessible by public user, Compare order data (COM_Order) and secret (e.g. from settings) with payment gateway response/result data, Confirm payment with payment gateway (optional), Log any exceptions, error or suspicious behavior into Event log, Update order payment result, Confirmation e-mails are automatically sent, API CMS.EcommerceProvider.CMSPaymentGatewayProvider OrderId PaymentResult UpdateOrderPaymentResult() int orderID = 5; // from response int paymentOptionID = 6; // from order (based on orderID) // Load payment provider CMSPaymentGatewayProvider provider = (WorldPayProvider)CMSPaymentGatewayProvider.GetPaymentGatewayProvider(paymentOptionID); provider.OrderId = orderId; // Compare data … // provider.PaymentResult = provider.UpdateOrderPaymentResult();

(4) Security Consider using SSL (HTTPS) on shopping cart page when collecting sensitive information, Use POST instead of GET (redirect) if possible, Redirect/post with SSL (HTTPS), Do not send sensitive information as part of the URL (querystring), Verify data/integrity/result/etc. against some secret information, Don’t save sensitive information in Kentico, Customer credit card etc., Use payment gateway security features, Be paranoid!,

Real World Example [DEMO] Understand how payment gateway works, Documentation, Develop payment gateway class, form, PN page etc. Take advantage of documentation examples, Provide your code from App_Code folder, No need to rebuild your DLL file when upgrading or applying hotfix, Use custom setting keys, CMS Site Manager -> Development -> Custom Settings (new from version 6.0), Register payment option (gateway) in Kentico, Assign it to some shipping option, Test and review the security, [DEMO]

Questions ?

Sources E-commerce Guide http://devnet.kentico.com/docs/ecommerceguide/index.html

Contact Miro Remias e-mail: miro@kentico.com consulting: http://www.kentico.com/Support/Consulting/Overview