Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
-
underflow favorited this 5 months ago
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

