Developing Apple Pay In-App Provisioning in merpay

Developing Apple Pay In-App Provisioning in merpay

Presentation slide for "merpay Tech Talk for iOS/Android Engineer" event.
https://mercari.connpass.com/event/124161/

D2f212ce418f3daa29c23914c9b6892b?s=128

Kentaro Matsumae

March 27, 2019
Tweet

Transcript

  1. 1.

    Developing Apple Pay In-App Provisioning in merpay Kentaro Matsumae (@kenmaz)

    merpay #merpay_techtalk merpay Tech Talk for iOS/Android Engineer, Mar 27th
  2. 3.
  3. 8.

    "QQMF1BZ3FHJTUSBUJPO'MPX J04%FWJDF "QQMF 1BZNFOU /FUXPSL w $BSEIPMEFSOBNF w $BSE/VNCFS '1"/

     w 4FDVSJUZ$PEF 5PLFO %1"/ 4FDVSF &MFNFOU '1"/TV⒏Y  IUUQTTVQQPSUBQQMFDPNKBKQ)5 '1"/ˠ%1"/
  4. 10.

    w '1"/ 'VOEJOH1SJNBSZ"DDPVOU/VNCFS  w %1"/ %FWJDF1SJNBSZ"DDPVOU/VNCFS  w 1BZNFOUQSPDFTTVTFTFODSZQUFE%1"/POMZ

    OPU'1"/ w &ODSZQUFEBOETUPSFEJO4FDVSF&MFNFOU w %1"/DIBOHFTFWFSZUJNFZPVSFHJTUFS w l5PLFOJ[BUJPOzl5PLFO1BZNFOUz '1"/%1"/
  5. 12.
  6. 21.

    1,"EE1BZNFOU1BTT7JFX$POUSPMMFS open class PKAddPaymentPassViewController : UIViewController { public init?( requestConfiguration

    configuration: PKAddPaymentPassRequestConfiguration, delegate: PKAddPaymentPassViewControllerDelegate?) } public protocol PKAddPaymentPassViewControllerDelegate : NSObjectProtocol { public func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, generateRequestWithCertificateChain certificates: [Data], nonce: Data, nonceSignature: Data, completionHandler handler: @escaping (PKAddPaymentPassRequest) -> Void) public func addPaymentPassViewController(_ controller: PKAddPaymentPassViewController, didFinishAdding pass: PKPaymentPass?, error: Error?) }
  7. 22.

    1,1BZNFOU1BTT1,1BTT-JCSBSZ open class PKPaymentPass : PKPass { open var primaryAccountIdentifier:

    String { get } open var primaryAccountNumberSuffix: String { get } weak open var deviceAccountIdentifier: NSString? { get } weak open var deviceAccountNumberSuffix: NSString? { get } } open class PKPassLibrary : NSObject { open func passes() -> [PKPass] open func remotePaymentPasses() -> [PKPaymentPass] open func present(_ pass: PKPaymentPass) open func canAddPaymentPass(withPrimaryAccountIdentifier primaryAccountIdentifier: String) -> Bool open func canAddFelicaPass() -> Bool }
  8. 30.
  9. 41.

    %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