Slide 1

Slide 1 text

Developing Apple Pay In-App Provisioning With Sandbox App Kentaro Matsumae (@kenmaz) merpay #tryswift_pre try! Swift Pre Talks 2019, Mar 19th

Slide 2

Slide 2 text

GSBNFXPSLT 8IBUJT4BOECPY"QQ

Slide 3

Slide 3 text

4BOECPY"QQT 8IBUJT4BOECPY"QQ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH

Slide 6

Slide 6 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH *TTVFS "QQMF

Slide 7

Slide 7 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH *TTVFS "QQMF *TTVFSFRVFTUGPSBWJSUVBM QSFQBJEDBSE

Slide 8

Slide 8 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH *TTVFS "QQMF *TTVFBWJSUVBMQSFQBJEDBSE

Slide 9

Slide 9 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH *TTVFS "QQMF 3FRVFTUUPSFHJTUFSDBSEUISPVHI1BTT,JU"1* PassKit - PKAddPaymentPassViewController - PKPassLibrary

Slide 10

Slide 10 text

"QQMF1BZ*O"QQ1SPWJTJPOJOH *TTVFS "QQMF 3FHJTUFSDBSEJOUP8BMMFUBQQ

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

130#-&. w .645UPJOTUBMMUIFBQQWJB5FTU'MJHIUGPS EFCVHHJOH w &WFSZUJNFZPVEFCVH ZPVOFFEUPSFCVJME BOEVQMPBEUIF"QQUP5FTU'MJHIU #VJME 6QMPBE 5FTU'MJHIU1SPDFTTJOH NJO

Slide 13

Slide 13 text

w 5FTU'MJHIUQSPDFTTJOHUJNFEFQFOETPOCJOBSZTJ[F w .JOJNJ[FUIFDPEFUPSFEVDFCVJMEJOHBOE5'QSPDFTTJOH UJNF w 4BOECPY"QQJTVTFGVMUPEPJU 3&40-65*0/

Slide 14

Slide 14 text

0SHBOJ[FQSPWJTJPOJOHSFMBUFE DPEFJOUPPOFDPNQPOFOU 1SPWJTJPOJOH $PSF 1SPWJTJPOJOH 6* .FSQBZGSBNFXPSL

Slide 15

Slide 15 text

4BOECPY"QQXJUI$PSFDPNQPOFOU 1SPWJTJPOJOH $PSF 1SPWJTJPOJOH 6* .FSQBZGSBNFXPSL 4BOECPY "QQ

Slide 16

Slide 16 text

3&46-54 1SPWJTJPOJOH $PSFDPNQPOFOUT ,# 4BOECPY"QQ #VJME 6QMPBE 5FTU'MJHIU1SPDFTTJOH NJO Y'BTUFS

Slide 17

Slide 17 text

6*JNQMFNFOUBUJPO VTJOH4BOECPY"QQ

Slide 18

Slide 18 text

1SPWJTJPOJOH'MPX

Slide 19

Slide 19 text

1SPWJTJPOJOH'MPX

Slide 20

Slide 20 text

1SPWJTJPOJOH'MPX 4BOECPY "QQ 4UBSU

Slide 21

Slide 21 text

1SPWJTJPOJOH$PSF 1SPWJTJPOJOH'MPX 4BOECPY "QQ 4UBSU

Slide 22

Slide 22 text

%FQFOEFODZ*OKFDUJPO public protocol DependencyRegistry { var service: ServiceType { get } var mercariViewControllerFactory: MercariViewControllerFactoryType { get } var mercariExperimentProvider: MercariExperimentsProviderType { get } var nfcClient: NFCClientType { get } … 1SPWJEFTBMMFYUFSOBMFOWJSPONFOUEFQFOEFOUPCKFDUT 1SPWJTJPOJOH $PSF 1SPUPDPM

Slide 23

Slide 23 text

%FQFOEFODZ3FHJTUSZ %FQFOEFODZ 3FHJTUSZ "MM7JFX$POUSPMMFSTBSFJOJUJBMJ[FEXJUI%FQFOEFODZ3FHJTUSZ

Slide 24

Slide 24 text

6*VTFT$PSFDPNQPOFOUUISPVHI %FQFOEFODZ3FHJTUSZ %FQFOEFODZ 3FHJTUSZ 1SPWJTJPOJOH $PSF 1SPWJTJPOJOH 6* .FSQBZGSBNFXPSL 1SPEVDUJPO "QQ

Slide 25

Slide 25 text

.FSQBZGSBNFXPSL 4BOECPY "QQ %FQFOEFODZ 3FHJTUSZ 1SPWJTJPOJOH $PSF .PDL 1SPWJTJPOJOH 6* 6*VTFT$PSFDPNQPOFOUUISPVHI %FQFOEFODZ3FHJTUSZ

Slide 26

Slide 26 text

1SPWJTJPOJOH$PSF 1SPWJTJPOJOH'MPX 4BOECPY "QQ 4UBSU

Slide 27

Slide 27 text

1SPWJTJPOJOH'MPX 4BOECPY "QQ 4UBSU %VNNZ /FYU

Slide 28

Slide 28 text

0UIFSVTFDBTFTPG 4BOECPY"QQ

Slide 29

Slide 29 text

&BTZUPUFTUWBSJPVTFSSPSDBTFT

Slide 30

Slide 30 text

&BTZUPBDDFTTUPBOZTDSFFO %VNNZ /FYU %VNNZ /FYU 5BQT

Slide 31

Slide 31 text

&BTZUPBDDFTTUPBOZTDSFFO 4BOECPY "QQ 1BHF 1BHF 1BHF 1BHF 1BHF 1BHF 5BQ

Slide 32

Slide 32 text

3FDBQ w *OUSPEVDFE"QQMF1BZ*O"QQ1SPWJTJPOJOH w 4BOECPY"QQIFMQTUPJNQSPWFEFWFMPQNFOUF⒏DJFODZ w 6TFGVMGPSEFWFMPQJOHGFBUVSFTUIBUBSFIJHIMZEFQFOEFOUPOUIF FYUFSOBMFOWJSPONFOU w *NQPSUBOUUIBU7JFX$POUSPMMFSTIBWFBMPPTFMZDPVQMFEEFTJHO w 4BOECPY"QQNBZIFMQTZPVSDPEFNPSFMPPTFMZDPVQMFE

Slide 33

Slide 33 text

IUUQTNFSDBSJDPOOQBTTDPNFWFOU 5IBOLZPV 8BOUUPLOPXNPSF