Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Demystifying Apple Pay
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Stepan Hruda
October 12, 2015
Programming
240
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Demystifying Apple Pay
Stepan Hruda
October 12, 2015
More Decks by Stepan Hruda
See All by Stepan Hruda
This is how we iOS at ShopKeep
stepanhruda
1
330
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
残高管理から台帳サービスへの進化
artoy
1
200
Next.js: The final boss of Web Performance
guaca
0
260
AWSに止められる覚悟してますか?
morizo_1984
2
540
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
150
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
ActionController meets Protocol Buffers
sorah
0
530
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
Railsバージョンを4倍にした話
optim
0
380
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Leo the Paperboy
mayatellez
10
2.4k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
30 Presentation Tips
portentint
PRO
1
430
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Transcript
@stepanhruda Demystifying Apple Pay
@stepanhruda Principal Engineer stepanhruda ! stepanhruda ! Stepan Hruda
@stepanhruda Pay
@stepanhruda cards loyalty apps NFC Pay "
@stepanhruda
@stepanhruda 210 bits per inch, alphanumeric (7-bit) = 79
characters 75 bits per inch, numeric (5-bit) = 40 characters
@stepanhruda Track 1 Track 2 %B6011898748579348^HAMMER/ MC^16059821000123456789? ;6011898748579348=16059821000123456789? delimiters
format card number cardholder name expiration date service code optional data
@stepanhruda ' # $ merchant processor
& network issuer acquirer cardholder ;6011898748579348 6059821000123456789?
@stepanhruda Bonus round: chip cards more secure sloooooow
@stepanhruda cards loyalty apps NFC Pay "
@stepanhruda " NFC
@stepanhruda 4485 7324 779 55409 4916 7376 5076 7686 4716
9818 4679 5670 4556 4371 1208 0993 4012 8888 8888 8888 & 4111 1111 1111 1111 " 4012 8888 8888 8888 issuer network key
@stepanhruda " secure element " NFC controller CPU
4012 8888 8888 8888 network key transaction count/ID … ;4012888888888888 =16059821000123456789?
@stepanhruda & # $ merchant processor
network issuer acquirer ;4012888888888888 6059821000123456789? " cardholder 4485 7324 779 55409 4716 9818 4679 5670 4012 8888 8888 8888 4111 1111 1111 1111 4111 1111 1111 1111
@stepanhruda cards loyalty apps NFC Pay "
@stepanhruda apps
@stepanhruda Naturally, step 1: “I provisioning” – no iOS
developer ever
@stepanhruda I’d like to accept payments, here’s my
public key Cool story bro, here’s your public key with fluff around it so we know that it’s legit
@stepanhruda StoreKit PassKit N
@stepanhruda PKPaymentRequest • supported networks • shipping • billing
• country • currency • line items PKPayment PKPaymentToken PKPaymentAuthorizationViewController init(paymentRequest:) PKPaymentAuthorizationViewControllerDelegate (didAuthorizePayment:completion:)
@stepanhruda live demo
@stepanhruda PKPaymentToken { "data": “2DzU9u6byIY4qCs3lW4KgK3JWC6Ac+x28Ck5PLCjQP…”, "header": { "ephemeralPublicKey": “MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtM…”,
"publicKeyHash": "spzGX6upCJhx5UD8vCo1+LcIi7+fkxEUaVmhbX18cJM=", "transactionId": “79ccd07eb432f80067d8e5bbc4c38ee1def7fcc1827f…” }, "signature": “MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABg…“, "version": "EC_v1" }
@stepanhruda PKPaymentToken’s decrypted data { "applicationExpirationDate": "200233", "applicationPrimaryAccountNumber": "4012888888888888",
"currencyCode": "840", "deviceManufacturerIdentifier": "XXXXXXXXXX", "paymentData": { "emvData": “UD8vCo1…” }, "paymentDataType": "EMV", "transactionAmount": 20 }
@stepanhruda not in all countries less work N
secure user has to use Apple Pay familiar UX
@stepanhruda cards loyalty apps NFC Pay "
@stepanhruda loyalty
@stepanhruda " credit card loyalty card single read
@stepanhruda Wallet - The home for Apple Pay and more
WWDC 2015: Session 701 { “serialNumber”: “0003461” “"passTypeIdentifier" : “pass.stepanhruda.com.loyalty" “nfc”: { “message”: “2545354543643” “encryptionPublicKey”: “MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQc…“ } } pass.json speculation ahead s
@stepanhruda " pass.foo.com.loyalty secure element pass.foo.com.loyalty 3423454534634 pass.bar.com.loyalty
897097780980 4012 8888 8888 8888
@stepanhruda cards loyalty apps NFC Pay "
@stepanhruda Sources https://developer.apple.com/library/ios/ApplePay_Guide/ProcessPayment.html#//apple_ref/doc/uid/TP40014764-CH5-SW4 http://www.apple.com/apple-pay/ http://www.chyp.com/wp-content/uploads/2015/01/GSMA-HCE-and-Tokenisation-for-Payment-Services-paper_WEB.pdf http://www.planetbiometrics.com/creo_files/upload/article-files/apple_pay_-_what_do_we_know.pdf http://www.virtusa.com/blog/2014/09/applepay-an-attempt-to-demystify-apples-new-service/ https://www.emvco.com/specifications.aspx?id=263 http://www.imore.com/apple-pay-rescue https://github.com/beatty/applepay_crypto_demo
@stepanhruda t
@stepanhruda