Payments made
   easy(er)
     Billy Cravens
  cf.Objective() 2012
Who am I?
• Billy Cravens

• ColdFusion since 4.0 (1999)

• Houston CFUG manager

• Former DFWCFUG board member

• Other languages: PHP, .NET; node.js ninja in training

• Remember the Wrox book?
Challenges of
payment processing

• security

• infrastructure

• storage
The Past
• The worst - Form posts with no integration
• Pre-web service options
  • Cybercash and others
• Modern payment gateways
  • Authorize.net
The Past
• PayPal

   • Disruptive

   • Integrated

• Other services

   • Google Checkout/Wallet

   • Amazon

   • Complicated APIs
Disadvantages of
    other solutions
• Software

  • Leaving the web stack

• Security

  • PCI compliance

• Cost
Disadvantages of
    other solutions
• User experience

   • Disrupt your brand

• Chargeback concerns

• Credit issues and other limitations
The Web 2.0 Way

• no binary solutions

• no SOAP/XML solutions

• REST

• standards
Goals

• Web 2.0 way

• Use our existing stack

• Control user experience

• Keep it cheap
Web 2.0 Payment
Processing options
• Square

  • Not for website, but worth a mention

  • Low cost card swiping on
    smart phones/tablets

  • free reader, cheap service
Noca
• Cheap

• Credit cards and checks

• Credit cards: 2.99%

• Checks: 1.49%

• Forms rendered on Noca’s end

• “Marketplace” concept
Noca


• Sign up for account at Noca.com

• Confirm deposits and create password
Noca

• Forms rendered on Noca’s end

• Send user to Noca’s site (like PayPal)

• “Advanced integration”

• Returns HTTP POST to callback URL (replyTo)
Noca

• form scope variables at callback URL:
  • merchantIdentity     • status

  • transactionId        • statusDescription

  • statusText           • invoiceId

  • merchantReference    • totalAmount

  • currency
Noca


• “Marketplace” concept

• Sandboxed and live environments
Stripe

• Cheap

• Credit cards only

• Most popular

• Developer focused
Stripe

• Sign up at Stripe.com

• Quick form

• Can play with without signing up

• No confirmation needed (until move to “live” status)
Stripe
• stripe.js to generate token

• REST API/total control, but PCI/security issues

• Returns a token representing card details

• Handles purchases and subscriptions - REST

• Sandboxed and live environments
Stripe - Actions
• Customers

• Charges

• Plans

• Coupons

• Transfers
Stripe


• All actions can be performed programatically or via
  web console, including charge
Stripe - WebHooks

• Not all events occur in real-time

• Specify WebHooks to listen to events

• Passed a JSON object describing event

• Respond with a 200 status code
Stripe


• Provide bank details to go live

•

Payments using Stripe.com

  • 1.
    Payments made easy(er) Billy Cravens cf.Objective() 2012
  • 2.
    Who am I? •Billy Cravens • ColdFusion since 4.0 (1999) • Houston CFUG manager • Former DFWCFUG board member • Other languages: PHP, .NET; node.js ninja in training • Remember the Wrox book?
  • 3.
    Challenges of payment processing •security • infrastructure • storage
  • 4.
    The Past • Theworst - Form posts with no integration • Pre-web service options • Cybercash and others • Modern payment gateways • Authorize.net
  • 5.
    The Past • PayPal • Disruptive • Integrated • Other services • Google Checkout/Wallet • Amazon • Complicated APIs
  • 6.
    Disadvantages of other solutions • Software • Leaving the web stack • Security • PCI compliance • Cost
  • 7.
    Disadvantages of other solutions • User experience • Disrupt your brand • Chargeback concerns • Credit issues and other limitations
  • 8.
    The Web 2.0Way • no binary solutions • no SOAP/XML solutions • REST • standards
  • 9.
    Goals • Web 2.0way • Use our existing stack • Control user experience • Keep it cheap
  • 10.
    Web 2.0 Payment Processingoptions • Square • Not for website, but worth a mention • Low cost card swiping on smart phones/tablets • free reader, cheap service
  • 11.
    Noca • Cheap • Creditcards and checks • Credit cards: 2.99% • Checks: 1.49% • Forms rendered on Noca’s end • “Marketplace” concept
  • 12.
    Noca • Sign upfor account at Noca.com • Confirm deposits and create password
  • 13.
    Noca • Forms renderedon Noca’s end • Send user to Noca’s site (like PayPal) • “Advanced integration” • Returns HTTP POST to callback URL (replyTo)
  • 14.
    Noca • form scopevariables at callback URL: • merchantIdentity • status • transactionId • statusDescription • statusText • invoiceId • merchantReference • totalAmount • currency
  • 15.
    Noca • “Marketplace” concept •Sandboxed and live environments
  • 16.
    Stripe • Cheap • Creditcards only • Most popular • Developer focused
  • 17.
    Stripe • Sign upat Stripe.com • Quick form • Can play with without signing up • No confirmation needed (until move to “live” status)
  • 18.
    Stripe • stripe.js togenerate token • REST API/total control, but PCI/security issues • Returns a token representing card details • Handles purchases and subscriptions - REST • Sandboxed and live environments
  • 19.
    Stripe - Actions •Customers • Charges • Plans • Coupons • Transfers
  • 20.
    Stripe • All actionscan be performed programatically or via web console, including charge
  • 21.
    Stripe - WebHooks •Not all events occur in real-time • Specify WebHooks to listen to events • Passed a JSON object describing event • Respond with a 200 status code
  • 22.
    Stripe • Provide bankdetails to go live •

Editor's Notes