Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
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?
4. The Past
• The worst - 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.0 Way
• no binary solutions
• no SOAP/XML solutions
• REST
• standards
9. Goals
• Web 2.0 way
• Use our existing stack
• Control user experience
• Keep it cheap
10. 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
11. Noca
• Cheap
• Credit cards and checks
• Credit cards: 2.99%
• Checks: 1.49%
• Forms rendered on Noca’s end
• “Marketplace” concept
12. Noca
• Sign up for account at Noca.com
• Confirm deposits and create password
13. Noca
• Forms rendered on Noca’s end
• Send user to Noca’s site (like PayPal)
• “Advanced integration”
• Returns HTTP POST to callback URL (replyTo)
14. Noca
• form scope variables at callback URL:
• merchantIdentity • status
• transactionId • statusDescription
• statusText • invoiceId
• merchantReference • totalAmount
• currency
20. Stripe
• All actions can 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