Web Payments
Turbocharging mobile commerce
through native browser APIs
Jeff Carpenter – @jcarp
Slide 2
Slide 2 text
Who is this
And why are they up here
Jeff Carpenter
Software Engineer
Google Chrome
(Please note: I am not speaking on behalf of Google)
Formerly at Braintree Payments
Slide 3
Slide 3 text
Let’s go on a journey… a mobile commerce journey...
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
Let's fix it
Slide 7
Slide 7 text
Slide 8
Slide 8 text
But what about PCI compliance?
Slide 9
Slide 9 text
How about client-side validation?
Slide 10
Slide 10 text
What about supporting different payment methods?
Slide 11
Slide 11 text
Everyone does
this
Slide 12
Slide 12 text
Everyone does
this in a different
way
Slide 13
Slide 13 text
Everyone does
this in a different
way on mobile
Slide 14
Slide 14 text
More users are buying on mobile...
Slide 15
Slide 15 text
...but mobile conversion is much lower
Slide 16
Slide 16 text
Checkout on
mobile web has a
UX problem
Slide 17
Slide 17 text
Most frustrating aspects of mobile checkout
● Small screen size
● Entering card information
○ Need to enter for each merchant
● Heterogeneity
Slide 18
Slide 18 text
Most frustrating aspects of mobile checkout
● Small screen size
● Entering card information
○ Need to enter for each merchant
● Heterogeneity
Slide 19
Slide 19 text
Browsers can
already store your
credit card
Slide 20
Slide 20 text
Solution: native
payment APIs for
web
Slide 21
Slide 21 text
I’m excited about web
payments because I
don’t like entering my
credit card 1000 times
Slide 22
Slide 22 text
I'm even more
excited about
web payments
because I'm lazy
Slide 23
Slide 23 text
2016 has seen two native APIs emerge
PaymentRequest
Google I/O May 2016
Safari Apple Pay
WWDC June 2016
new PaymentRequest(instruments, details).show()
.then(instrumentResponse => {
console.log(instrumentResponse.details)
// Spinner is shown to customer
// as you complete transaction
// with your back-end
instrumentResponse.complete()
}
)
Try it yourself!
Chrome 53, Android only
● Demo pages
○ https://googlechrome.github.io/samples/paymentrequest/
● Integration guide
● https://developers.google.com/web/fundamentals/primers/payment-
request/?hl=en
Slide 31
Slide 31 text
When will PaymentRequest be available?
● Available for credit cards
now in Chrome 53!
● Android Pay late 2016
● 3rd party apps 2017
Slide 32
Slide 32 text
When will
PaymentRequest be
in all browsers?
Slide 33
Slide 33 text
Mozilla Firefox
PaymentRequest in development
Slide 34
Slide 34 text
Microsoft Edge
PaymentRequest in development
Slide 35
Slide 35 text
Safari
Apple Pay in macOS Sierra and iOS 10
Intent to implement PaymentRequest
Slide 36
Slide 36 text
Apple Pay in Safari
Slide 37
Slide 37 text
Apple Pay Payment
Processing Certificate
Apple Pay Merchant
Identity Certificate
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
if (window.ApplePaySession) {
var merchantId = 'com.dogs’
ApplePaySession
.canMakePaymentsWithActiveCard(merchantId)
.then(function (canMakePayments) {
if (canMakePayments) {
// show Apple Pay buttons
}
})
}
Learning more
● Good explanation of W3C rationale:
○ https://www.w3.org/Payments/
● Bringing seamless checkouts to the mobile web - Google I/O 2016
○ https://www.youtube.com/watch?v=yelPlCVZLEE
● Apple Pay WWDC talk
○ https://developer.apple.com/videos/play/wwdc2016/703/
Slide 56
Slide 56 text
Thank You
Comments - Questions -
Tomatoes - @jcarp
Special thanks to:
● Elliot Lee, Braintree
● Zach Koch, Google Chrome
Slide 57
Slide 57 text
Resources
https://github.com/alrra/browser-logos/
The collective pug owners of the internet