Braintree SDK v.zero or "A payment gateway walks into a bar..." - Devfest Nantes 2014
-
Upload
alberto-lopez-martin -
Category
Technology
-
view
559 -
download
1
Transcript of Braintree SDK v.zero or "A payment gateway walks into a bar..." - Devfest Nantes 2014
v.zeroA modern foundation for accepting Payments
Alberto López
Braintree_Dev. <Advocate/>
DevFest Nantes 2014
#DevFest #Nantes
@Braintree_dev
@AlbertusLM
m Commerce in France
#DevFest #Nantes @Braintree_dev @AlbertusLM
2014-‐ 5K model A -‐ 4K model B -‐ 6K watch C
# Android Devices
#DevFest #Nantes @Braintree_dev @AlbertusLM
-‐ 1M ice-‐Creams -‐ 2M clothes -‐ 43M sports
# euros mcommerce / vertical of business
PLEASE, BUSINESS PRESENTATION NO
#DevFest #Nantes @Braintree_dev @AlbertusLM
Drop-in UI
> Mobile, born and raise
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
PLEASE, PRODUCT PRESENTATION NO
#DevFest #Nantes @Braintree_dev @AlbertusLM
v.zeroA modern foundation for accepting Payments
Alberto López
Braintree_Dev. <Advocate/>
DevFest Nantes 2014
#DevFest #Nantes @Braintree_dev @AlbertusLM
v.zero
Alberto López
Braintree_Dev. <Advocate/>
DevFest Nantes 2014
A payment gateway walks into a bar…Thanks to Justin Woo ;)
A modern foundation for accepting Payments
#DevFest #Nantes @Braintree_dev @AlbertusLM
A bank account walks into a bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…and says to the bartender:
“I’ve been having a hard time meeting people”
The bartender answers:
“Wait, aren’t you supposed to be good at generating…
#DevFest #Nantes @Braintree_dev @AlbertusLM
“interest”
#DevFest #Nantes @Braintree_dev @AlbertusLM
I have a girlfriend
#DevFest #Nantes @Braintree_dev @AlbertusLM
I want to propose to her
#DevFest #Nantes @Braintree_dev @AlbertusLM
(shhh, don’t say it to her)
#DevFest #Nantes @Braintree_dev @AlbertusLM
This is me Looking for a ring…
https://flic.kr/p/cHEgTj#DevFest #Nantes @Braintree_dev @AlbertusLM
… on the Internet
#DevFest #Nantes @Braintree_dev @AlbertusLM
I am an a**hole
#DevFest #Nantes @Braintree_dev @AlbertusLM
I am an a**hole
Go to a J
eweller
y
#DevFest #Nantes @Braintree_dev @AlbertusLM
NO
#DevFest #Nantes @Braintree_dev @AlbertusLM
I am a lazy person
#DevFest #Nantes @Braintree_dev @AlbertusLM
Let’s go to e-surf!
#DevFest #Nantes @Braintree_dev @AlbertusLM
Things I thi
nk that shou
ld
change for m
aking easier
purchases on
Internet
#DevFest #Nantes @Braintree_dev @AlbertusLM
A payment gateway walks into a bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…the bartender says:
“Why do you keep coming in here day after day ?”
The payment gateway looks at him miserably and says:
“I’m just looking for some…
#DevFest #Nantes @Braintree_dev @AlbertusLM
“validation”
#DevFest #Nantes @Braintree_dev @AlbertusLM
Amazing jewellery store
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://goo.gl/PYb26w
Captcha
#DevFest #Nantes @AlbertusLM@Braintree_dev
Completely Automated Public Turing Test To Tell Computers
and Humans Apart
#DevFest #Nantes @AlbertusLM@Braintree_dev
#DevFest #Nantes @AlbertusLM@Braintree_dev
#DevFest #Nantes @AlbertusLM@Braintree_dev
#DevFest #Nantes @AlbertusLM@Braintree_dev
#DevFest #Nantes @AlbertusLM@Braintree_dev
#DevFest #Nantes @Braintree_dev @AlbertusLM
An American Express walks into a bar in Moscow…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…the bartender says:
“Sorry mate, You aren’t allowed in here without a ….”
#DevFest #Nantes @Braintree_dev @AlbertusLM
“VISA”
#DevFest #Nantes @Braintree_dev @AlbertusLM
Not autodetect credit card type
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
*It’s on Wikipedia#DevFest #Nantes @Braintree_dev @AlbertusLM
Restaurant onlINe
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://jquerycreditcardvalidator.com
http://creditcardjs.com
#DevFest #Nantes @Braintree_dev @AlbertusLM
https://github.com/jgrana/CreditCardEntry
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
CVV, CVC2, CID…
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
·_· mmm
o_· ooohh
#DevFest #Nantes @Braintree_dev @AlbertusLM
O_o OMG
#DevFest #Nantes @Braintree_dev @AlbertusLM
O_O WTF
#DevFest #Nantes @Braintree_dev @AlbertusLM
#_# dead
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://jessepollak.github.io/card/
http://kenkeiter.com/skeuocard/
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
A payment gateway walks into a bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
…and tries to pick up someone at the bar, but she turns him down.
The Payment gateway looks at the
bartender and says:
“Well, this is awkward, normally I’m the one who…
“declines”
#DevFest #Nantes @Braintree_dev @AlbertusLM
Not validate a Credit Card # field inline
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://goo.gl/YR7pRa
#DevFest #Nantes @Braintree_dev @AlbertusLM
Luhn algorithm
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://en.wikipedia.org/wiki/Luhn_algorithm
http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://capdroid.wordpress.com/2011/09/19/creditdebit-card-validation-using-luhn-mod10-algorithm/
http://codereview.stackexchange.com/questions/59521/credit-card-validator-using-luhns-algorithm
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
Setting up the date
https://flic.kr/p/efSMKw
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
Keep labels visible at all times
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
http://mrg.bz/ft5PmH
no limiting the number of digits
#DevFest #Nantes @Braintree_dev @AlbertusLM
Card Number of Digits
AMEX 15
Visa 13 or 16
MasterCard 16
Discover 16
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
·_· mmm
O_o OMG
#DevFest #Nantes @Braintree_dev @AlbertusLM
O_O WTF
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
A Payment Gateway walks into a Hawaiian bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…the bartender says:
“Aloha!”
The Payment Gateway, confused, says:
“Sorry, I don’t understand you”
So,the bartender answers:
“Well, this is because you are not…”#DevFest #Nantes @Braintree_dev @AlbertusLM
“native”
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
Client Side
#DevFest #Nantes @Braintree_dev @AlbertusLM
v.Zero
1. Obtain a Client Token
Request the client token from your server, then initialize Braintree and present drop-in UI:
#DevFest #Nantes @Braintree_dev @AlbertusLM
To present the Drop In UI, set the EXTRA_CLIENT_TOKEN value to the client token and start the activity:
#DevFest #Nantes @Braintree_dev @AlbertusLM
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE) { if (resultCode == BraintreePaymentActivity.RESULT_OK) { String paymentMethodNonce = data.getStringExtra(BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE); postNonceToServer(paymentMethodNonce); } } }
2. Present Drop In UI
When your user provides payment information, your app code receives a paymentMethodNonce in your calling Activity's onActivityResult, which you will override to get the response:
#DevFest #Nantes @Braintree_dev @AlbertusLM
3. Post the Payment Method Nonce to Your Server
Send the resulting payment method nonce to your server
#DevFest #Nantes @Braintree_dev @AlbertusLM
Server Side
#DevFest #Nantes @Braintree_dev @AlbertusLM
v.Zero
1. Import Braintree
In your code, configure the environment and API credentials:
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
2. Provide a Client Token to Your client
Your server is responsible for creating a client token, which contains all authorization and configuration information your client needs to initialize a Braintree Client SDK to communicate with Braintree.
3. Create a transaction
Once your client successfully obtains a customer payment method, it receives a payment method nonce representing customer payment authorization, which it then sends to your server.
#DevFest #Nantes @Braintree_dev @AlbertusLM
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
NATIVE Payment Gateway
http://mrg.bz/ft5PmH
security
#DevFest #Nantes @Braintree_dev @AlbertusLM
client_token
payment_nonce
SECURE Payment Gateway
http://mrg.bz/ft5PmH
Additional payment methods
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
Braintree Account
#DevFest #Nantes @Braintree_dev @AlbertusLM
GLOBAL Payment Gateway
I <3 v.Zero
#DevFest #Nantes @Braintree_dev @AlbertusLM
#DevFest #Nantes @Braintree_dev @AlbertusLM
A Payment Gateway walks into a bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…and says to the bartender:
“Hey, do you have any dessert?”
The bartender answers:
“Well, may be you want an…
#DevFest #Nantes @Braintree_dev @AlbertusLM
“apple”
#DevFest #Nantes @Braintree_dev @AlbertusLM
A payment gateway walks into a bar…
#DevFest #Nantes @Braintree_dev @AlbertusLM
…the bartender says:
“You are new to this joint, aren’t you?”
The Payment Gateway look at him and says:
“Yeah, I just…”
#DevFest #Nantes @Braintree_dev @AlbertusLM
“discovered” it
#DevFest #Nantes @Braintree_dev @AlbertusLM
do you <3 v.Zero?
#DevFest #Nantes @Braintree_dev @AlbertusLM
By the way…
#DevFest #Nantes @Braintree_dev @AlbertusLM
I only have the flowers
https://flic.kr/p/oVByur
#DevFest #Nantes @AlbertusLM@Braintree_dev
Tank you!
#DevFest #Nantes @Braintree_dev @AlbertusLM
Original Source
S
#DevFest #Nantes @Braintree_dev @AlbertusLM
Braintree: https://www.braintreepayments.com/
Get Started with Braintree https://developers.braintreepayments.com/android+php/start/overview
Braintree v.zero: https://www.braintreepayments.com/v.zero
Sandbox environment: https://sandbox.braintreegateway.com/login
#DevFest #Nantes @Braintree_dev @AlbertusLM
Questions?
Think twice before asking,
seriously
Source photo
Alberto López - Braintree_Dev. [email protected]
@AlbertusLM / @Braintree_dev