Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Demystifying Apple Pay

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Demystifying Apple Pay

Avatar for Stepan Hruda

Stepan Hruda

October 12, 2015

More Decks by Stepan Hruda

Other Decks in Programming

Transcript

  1. @stepanhruda  210 bits per inch, alphanumeric (7-bit) = 79

    characters 75 bits per inch, numeric (5-bit) = 40 characters
  2. @stepanhruda  '    # $ merchant processor

     & network issuer acquirer cardholder  ;6011898748579348 6059821000123456789?
  3. @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 
  4. @stepanhruda "  secure element " NFC controller CPU 

    4012 8888 8888 8888 network key  transaction count/ID … ;4012888888888888 =16059821000123456789?
  5. @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
  6. @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
  7. @stepanhruda  PKPaymentRequest • supported networks • shipping • billing

    • country • currency • line items PKPayment PKPaymentToken PKPaymentAuthorizationViewController init(paymentRequest:) PKPaymentAuthorizationViewControllerDelegate (didAuthorizePayment:completion:)
  8. @stepanhruda PKPaymentToken  { "data": “2DzU9u6byIY4qCs3lW4KgK3JWC6Ac+x28Ck5PLCjQP…”, "header": { "ephemeralPublicKey": “MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtM…”,

    "publicKeyHash": "spzGX6upCJhx5UD8vCo1+LcIi7+fkxEUaVmhbX18cJM=", "transactionId": “79ccd07eb432f80067d8e5bbc4c38ee1def7fcc1827f…” }, "signature": “MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABg…“, "version": "EC_v1" }
  9. @stepanhruda PKPaymentToken’s decrypted data  { "applicationExpirationDate": "200233", "applicationPrimaryAccountNumber": "4012888888888888",

    "currencyCode": "840", "deviceManufacturerIdentifier": "XXXXXXXXXX", "paymentData": { "emvData": “UD8vCo1…” }, "paymentDataType": "EMV", "transactionAmount": 20 }
  10. @stepanhruda not in all countries  less work N 

    secure user has to use Apple Pay familiar UX
  11. @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