Today we'll take a look at how to add Apple Pay to an app, letting users buy things. Let's begin.

Our first step is to go to Project > Capabilities > Apple Pay and flip the switch to "on". This will configure our project to use Apple Pay and create a Merchant ID for us automatically (We'll use this later when configuring our payment request). Then, we'll importing PassKit, and add a button to kick off the process:

let paymentButton = PKPaymentButton ( type : . Buy , style : . Black ) paymentButton . addTarget ( self , action : "paymentButtonTapped" , forControlEvents : . TouchUpInside )

Next, inside paymentButtonTapped , we'll create a payment request, andan authorization view controller.

func paymentButtonTapped () { let request = PKPaymentRequest () request . merchantIdentifier = "merchant.com.magnus.apple-samplecode.apple-pay.Emporium" request . countryCode = "US" request . currencyCode = "USD" request . supportedNetworks = [ PKPaymentNetworkVisa , PKPaymentNetworkMasterCard ] request . merchantCapabilities = . Capability3DS // 3DS or EMV request . paymentSummaryItems = [ PKPaymentSummaryItem ( label : "Little Bites of Cocoa Volume 1" , amount : NSDecimalNumber ( double : 39.99 ), type : . Final ), PKPaymentSummaryItem ( label : "Shipping" , amount : NSDecimalNumber ( double : 5.99 ), type : . Final ), PKPaymentSummaryItem ( label : "Tax" , amount : NSDecimalNumber ( double : 3.79 ), type : . Final ), PKPaymentSummaryItem ( label : "Total" , amount : NSDecimalNumber ( double : 49.77 ), type : . Final ) ] let authVC = PKPaymentAuthorizationViewController ( paymentRequest : request ) authVC . delegate = self presentViewController ( authVC , animated : true , completion : nil ) }

Then we'll implement the authorized delegate function:

func paymentAuthorizationViewController ( controller : PKPaymentAuthorizationViewController , didAuthorizePayment payment : PKPayment , completion : ( PKPaymentAuthorizationStatus ) -> Void ) { print ( payment . token ) completion ( . Success ) }

Now that we've got the groundwork laid, we can sign up for a payment provide like Stripe.