Submit Search
Upload
Payments On Rails
•
3 likes
•
1,826 views
E
E-xact Transactions
Follow
Emil Marceta's talk at RailsConf 2008 (E-xact Transactions Ltd.)
Read less
Read more
Technology
Economy & Finance
Report
Share
Report
Share
1 of 46
Recommended
A2Lab - Payment Request API
A2Lab - Payment Request API
Juliano Padilha
SilverShop and Omnipay Slides
SilverShop and Omnipay Slides
Roman Schmid
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
Mojolicious
Mojolicious
Lenz Gschwendtner
Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )
Yoshi Sakai
Activemerchant
Activemerchant
Krzysztof Jabłoński
JavaScript & AJAX in WordPress
JavaScript & AJAX in WordPress
Igor Benić
WooCommerce: payment gateways
WooCommerce: payment gateways
Rodolfo Melogli
Recommended
A2Lab - Payment Request API
A2Lab - Payment Request API
Juliano Padilha
SilverShop and Omnipay Slides
SilverShop and Omnipay Slides
Roman Schmid
Practical PHP by example Jan Leth-Kjaer
Practical PHP by example Jan Leth-Kjaer
COMMON Europe
Mojolicious
Mojolicious
Lenz Gschwendtner
Paypal REST api ( Japanese version )
Paypal REST api ( Japanese version )
Yoshi Sakai
Activemerchant
Activemerchant
Krzysztof Jabłoński
JavaScript & AJAX in WordPress
JavaScript & AJAX in WordPress
Igor Benić
WooCommerce: payment gateways
WooCommerce: payment gateways
Rodolfo Melogli
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
vvaswani
Web apps without internet
Web apps without internet
MSDEVMTL
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
Noritada Shimizu
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力
Yoji Shidara
Joomla virtuemart razorpay payment gateway
Joomla virtuemart razorpay payment gateway
Webkul Software Pvt. Ltd.
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
Caldera Labs
Paypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt cole
X.commerce
From Node.js noob to not so noob
From Node.js noob to not so noob
reybango
Paypal + symfony
Paypal + symfony
Massimiliano Arione
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Caldera Labs
NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob
reybango
Razorpay payment gateway integration in laravel and vue js 2
Razorpay payment gateway integration in laravel and vue js 2
Katy Slemon
AngularJs - Part 3
AngularJs - Part 3
Nishikant Taksande
AngularJS with Slim PHP Micro Framework
AngularJS with Slim PHP Micro Framework
Backand Cohen
Doc matrimonial
Doc matrimonial
Ramya Rajee
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
guestf7bc30
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Jeseph Meyers
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
WP Engine UK
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface
Ai Tornado Grenade Manual
Ai Tornado Grenade Manual
gutman
In the Loop - Lone Star Ruby Conference
In the Loop - Lone Star Ruby Conference
Lourens Naudé
More Related Content
What's hot
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
vvaswani
Web apps without internet
Web apps without internet
MSDEVMTL
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
Noritada Shimizu
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力
Yoji Shidara
Joomla virtuemart razorpay payment gateway
Joomla virtuemart razorpay payment gateway
Webkul Software Pvt. Ltd.
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
Caldera Labs
Paypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt cole
X.commerce
From Node.js noob to not so noob
From Node.js noob to not so noob
reybango
Paypal + symfony
Paypal + symfony
Massimiliano Arione
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Caldera Labs
NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob
reybango
Razorpay payment gateway integration in laravel and vue js 2
Razorpay payment gateway integration in laravel and vue js 2
Katy Slemon
AngularJs - Part 3
AngularJs - Part 3
Nishikant Taksande
AngularJS with Slim PHP Micro Framework
AngularJS with Slim PHP Micro Framework
Backand Cohen
Doc matrimonial
Doc matrimonial
Ramya Rajee
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
guestf7bc30
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Jeseph Meyers
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
WP Engine UK
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface
What's hot
(20)
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Creating REST Applications with the Slim Micro-Framework by Vikram Vaswani
Web apps without internet
Web apps without internet
Application submission, management and manetization in Firefox Marketplace
Application submission, management and manetization in Firefox Marketplace
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Pluginが広げるRailsの魅力
Pluginが広げるRailsの魅力
Joomla virtuemart razorpay payment gateway
Joomla virtuemart razorpay payment gateway
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
Paypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt cole
From Node.js noob to not so noob
From Node.js noob to not so noob
Paypal + symfony
Paypal + symfony
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
NationJS: Node Noob to not so Noob
NationJS: Node Noob to not so Noob
Razorpay payment gateway integration in laravel and vue js 2
Razorpay payment gateway integration in laravel and vue js 2
AngularJs - Part 3
AngularJs - Part 3
AngularJS with Slim PHP Micro Framework
AngularJS with Slim PHP Micro Framework
Doc matrimonial
Doc matrimonial
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Build a Better Editing Experience with Advanced Custom Fields - #WCTO16
Webinar: AngularJS and the WordPress REST API
Webinar: AngularJS and the WordPress REST API
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dep...
Viewers also liked
Ai Tornado Grenade Manual
Ai Tornado Grenade Manual
gutman
In the Loop - Lone Star Ruby Conference
In the Loop - Lone Star Ruby Conference
Lourens Naudé
ddddkkk
ddddkkk
guest522064
Klima Og Sundhed Jordens Dag 17. Marts
Klima Og Sundhed Jordens Dag 17. Marts
Anne Grete Rasmussen
ZeroMQ as scriptable sockets
ZeroMQ as scriptable sockets
Lourens Naudé
Barcamp PT
Barcamp PT
Lourens Naudé
Advanced Fieldcraft
Advanced Fieldcraft
gutman
Qatar Project
Qatar Project
guest522064
Viewers also liked
(8)
Ai Tornado Grenade Manual
Ai Tornado Grenade Manual
In the Loop - Lone Star Ruby Conference
In the Loop - Lone Star Ruby Conference
ddddkkk
ddddkkk
Klima Og Sundhed Jordens Dag 17. Marts
Klima Og Sundhed Jordens Dag 17. Marts
ZeroMQ as scriptable sockets
ZeroMQ as scriptable sockets
Barcamp PT
Barcamp PT
Advanced Fieldcraft
Advanced Fieldcraft
Qatar Project
Qatar Project
Similar to Payments On Rails
Implementation of GUI Framework part3
Implementation of GUI Framework part3
masahiroookubo
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
web3j Overview
web3j Overview
Conor Svensson
Distributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System Overview
Mark Cheeseman
Stripe on Atmoph
Stripe on Atmoph
Nakano Kyohei
java and javascript api dev guide
java and javascript api dev guide
Zenita Smythe
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
tristansokol
FreshBooks API
FreshBooks API
Boris Mann
Ruby on Rails For Java Programmers
Ruby on Rails For Java Programmers
elliando dias
How to avoid hanging yourself with Rails
How to avoid hanging yourself with Rails
Rowan Hick
Building Scalable Websites with Perl
Building Scalable Websites with Perl
Perrin Harkins
Shangz R Brown Presentation
Shangz R Brown Presentation
shangbaby
Metrics-Driven Engineering
Metrics-Driven Engineering
Mike Brittain
Unobtrusive JavaScript
Unobtrusive JavaScript
Vitaly Baum
Monetize your idea! - Pay Pal
Monetize your idea! - Pay Pal
Droidcon Spain
A Journey with React
A Journey with React
FITC
Using jersey exception mapper
Using jersey exception mapper
Anirban Sen Chowdhary
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
ghessler
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016
Robert Nyman
Monkey man
Monkey man
ShapeBlue
Similar to Payments On Rails
(20)
Implementation of GUI Framework part3
Implementation of GUI Framework part3
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
web3j Overview
web3j Overview
Distributed Parcel Tracking/Management System Overview
Distributed Parcel Tracking/Management System Overview
Stripe on Atmoph
Stripe on Atmoph
java and javascript api dev guide
java and javascript api dev guide
SDKs, the good the bad the ugly - Japan
SDKs, the good the bad the ugly - Japan
FreshBooks API
FreshBooks API
Ruby on Rails For Java Programmers
Ruby on Rails For Java Programmers
How to avoid hanging yourself with Rails
How to avoid hanging yourself with Rails
Building Scalable Websites with Perl
Building Scalable Websites with Perl
Shangz R Brown Presentation
Shangz R Brown Presentation
Metrics-Driven Engineering
Metrics-Driven Engineering
Unobtrusive JavaScript
Unobtrusive JavaScript
Monetize your idea! - Pay Pal
Monetize your idea! - Pay Pal
A Journey with React
A Journey with React
Using jersey exception mapper
Using jersey exception mapper
Service Oriented Integration with ServiceMix
Service Oriented Integration with ServiceMix
The Future of the Web - Cold Front conference 2016
The Future of the Web - Cold Front conference 2016
Monkey man
Monkey man
Recently uploaded
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
AliaaTarek5
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
panagenda
2024 April Patch Tuesday
2024 April Patch Tuesday
Ivanti
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Mark Goldstein
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
Knoldus Inc.
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Scott Andery
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Mydbops
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
Nathaniel Shimoni
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
Ingrid Airi González
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Wes McKinney
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
LoriGlavin3
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
HarshalMandlekar2
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Recently uploaded
(20)
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
2024 April Patch Tuesday
2024 April Patch Tuesday
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
How to write a Business Continuity Plan
How to write a Business Continuity Plan
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Payments On Rails
1.
Payments On Rails
E-xact Transactions (emil@e-xact.com)
2.
<introduction>
Hello
3.
E-xactly, who?
4.
Payment Processor
5.
1-866-733-8613. Vancouver, BC
6.
7.
:founded => 1999, :per_year
=> 3B.dollars, :team => (2..8)
8.
Me?
9.
About </introduction>
10.
<exactonrails>
Merchants | E-xact | Payment Network
11.
special && !special
12.
“Non-special” • Standard Rails
platform • Plugins - Solr, cache_fu, will_paginate etc. • Capistrano / Webistrano • SQL Backend
13.
Apache Proxy (mod_security, mod_proxy_balancer,...)
| ||| lighttpd/fastcgi Rails
14.
“Special” • Mission Critical
Financial services • High Volume Transactions Processing • Rails to the “Enterprise”
15.
“Big Rewrite”
16.
Win32 (.NET)
17.
Why Rails?
18.
2006
19.
2006 Fall
20.
2007 Spring
21.
Migrated 5K Customers
22.
Customers
23.
RPM
24.
Primary Provider For </exactonrails>
25.
<api>
api.e-xact.com
26.
gem install exact4r
27.
# build a
purchase request request = Exact::Request.new({ :transaction_type => quot;00quot;, # purchase :amount => 10.50, :cardholder_name => quot;Simon Brownquot;, :cc_number => quot;4111111111111111quot;, :cc_expiry => quot;1005quot;, # MUST be YYMM format :gateway_id => quot;XXXXXXXquot;, # which gateway to submit the request to :password => quot;YYYYYYquot; # your password for that gateway }) response = request.submit
28.
Response response.transaction_tag
# 1234 response.exact_resp_code # quot;00quot; response.exact_message # quot;Transaction Normalquot; response.bank_resp_code # quot;00quot; response.bank_message # quot;APPROVEDquot;
29.
:rest || :json
|| :soap
30.
SOAP (legacy)
31.
REST XML (default)
32.
JSON
33.
uri = URI.parse('https://api.e-xact.com') http
= Net::HTTP.new(uri.host, uri.port) req_headers= { 'Content-Type' => 'application/json; charset=utf-8' } req = {} req[:amount] = 100.to_s req[:cardholder_name] = 'Fred Hanks' req[:email_address] = 'fred@acme.org' req[:address] = '2000 Elm street' req[:cc_number] = '4111111111111111' req[:cc_expiry] = '0907' req[:transaction_type] = :purchase req[:gateway_id] = 'XXXXXX' req[:password] = 'YYYYYYY' response = http.request_post(uri.path, req.to_json, req_headers) res = ActiveSupport::JSON.decode(response) assert_equal 1, res['transaction_approved'], res.inspect
34.
Transaction set • Purchase •
Refund • Pre-authorization, completion • Void • Debit • ....
35.
Tagged Transaction
36.
API
| Cardholder Data | E-xact </api>
37.
<payment_pages>
Payment Pages
38.
39.
$ rails store
create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create config/initializers create db create doc create lib create lib/tasks create log ....
40.
$ ./script/install active_merchant
(http://activemerchant.org)
41.
patch -p0 <
am.patch (http://www.e-xact.com/developers/downloads/#ActiveMerch)
42.
43.
Merchant Site
| checkout.e-xact.com | Cardholder Data </payment_pages>
44.
Summary
45.
Questions?
46.
Contact