Slideshare.net (beta)

 
Post To TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 1 (more)

Payments On Rails

From ExactTransactions, 3 months ago

Emil Marceta's talk at RailsConf 2008 (E-xact Transactions Ltd.)

1134 views  |  0 comments  |  1 favorite  |  2 embeds (Stats)
Download not available ?
 

Categories

Add Category
 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 1134
on Slideshare: 1101
from embeds: 33

Slideshow transcript

Slide 1: Payments On Rails E-xact Transactions (emil@e-xact.com)

Slide 2: <introduction> Hello

Slide 3: E-xactly, who?

Slide 4: Payment Processor

Slide 5: 1-866-733-8613. Vancouver, BC

Slide 7: :founded => 1999, :per_year => 3B.dollars, :team => (2..8)

Slide 8: Me?

Slide 9: About </introduction>

Slide 10: <exactonrails> Merchants | E-xact | Payment Network

Slide 11: special && !special

Slide 12: “Non-special” • Standard Rails platform • Plugins - Solr, cache_fu, will_paginate etc. • Capistrano / Webistrano • SQL Backend

Slide 13: Apache Proxy (mod_security, mod_proxy_balancer,...) | ||| lighttpd/fastcgi Rails

Slide 14: “Special” • Mission Critical Financial services • High Volume Transactions Processing • Rails to the “Enterprise”

Slide 15: “Big Rewrite”

Slide 16: Win32 (.NET)

Slide 17: Why Rails?

Slide 18: 2006

Slide 19: 2006 Fall

Slide 20: 2007 Spring

Slide 21: Migrated 5K Customers

Slide 22: Customers

Slide 23: RPM

Slide 24: Primary Provider For </exactonrails>

Slide 25: <api> api.e-xact.com

Slide 26: gem install exact4r

Slide 27: # build a purchase request request = Exact::Request.new({ :transaction_type => "00", # purchase :amount => 10.50, :cardholder_name => "Simon Brown", :cc_number => "4111111111111111", :cc_expiry => "1005", # MUST be YYMM format :gateway_id => "XXXXXXX", # which gateway to submit the request to :password => "YYYYYY" # your password for that gateway }) response = request.submit

Slide 28: Response response.transaction_tag # 1234 response.exact_resp_code # "00" response.exact_message # "Transaction Normal" response.bank_resp_code # "00" response.bank_message # "APPROVED"

Slide 29: :rest || :json || :soap

Slide 30: SOAP (legacy)

Slide 31: REST XML (default)

Slide 32: JSON

Slide 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

Slide 34: Transaction set • Purchase • Refund • Pre-authorization, completion • Void • Debit • ....

Slide 35: Tagged Transaction

Slide 36: API | Cardholder Data | E-xact </api>

Slide 37: <payment_pages> Payment Pages

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

Slide 40: $ ./script/install active_merchant (http://activemerchant.org)

Slide 41: patch -p0 < am.patch (http://www.e-xact.com/developers/downloads/#ActiveMerch)

Slide 43: Merchant Site | checkout.e-xact.com | Cardholder Data </payment_pages>

Slide 44: Summary

Slide 45: Questions?

Slide 46: Contact