Book Image

Apple Pay Essentials

By : Ernest Bruce
Book Image

Apple Pay Essentials

By: Ernest Bruce

Overview of this book

Apple Pay, one of the most talked about offerings of the latest iOS 9 release, is a digital wallet and electronic payment system developed by Apple Inc. Paying in stores or within apps has never been easier or safer. Gone are the days of searching for your wallet, and the wasted moments finding the right card! Now you can use your credit cards and rewards cards with just a touch. It allows payment to merchants, using Near field Communication (NFC), and within iOS apps. Implementing Apple Pay within apps for payment is a bit tricky, but our book solves this problem for you. Whether you are a brand new iOS app developer or a seasoned expert, this book arms you with necessary skills to successfully implement Apple Pay in your online-payment workflow. Whether you are a brand new iOS app developer or a seasoned expert, this book arms you with the necessary skills to successfully implement Apple Pay. We start off by teaching you how to obtain the certificates necessary to encrypt customers’ payment information. We will use Xcode and Objective C for the interface and Node.js for server side code. You will then learn how to determine whether the customer can use Apple Pay, and how to create payment requests. You will come to grips with designing a payment-processor program to interact with the payment gateway. Finally, we take a look at a business-focused view of Apple Pay protocols and classes. By the end of this book, you will be able to build a fully functional Apple Pay-integrated iOS app
Table of Contents (13 chapters)

Implementing a shared method to compute summary items


To respond to the delegate method calls from the payment sheet, you should have a single method that computes the payment summary items based on the shipping information. Here's a possible implementation of such a method:

// client_app/merchantapp/ProductCard.m
@property Product*           product;
@property PKShippingMethod*  selected_shipping_method;
...
// tally the summary items' cost and the grand total
- (NSArray<PKPaymentSummaryItem*>*) computeSummaryItems
{
   NSDecimalNumber* product_price=
      [NSDecimalNumber decimalNumberWithString:_product.price];
      
   NSDecimalNumber* shipping= 
      _selected_shipping_method?
         _selected_shipping_method.amount :
         [NSDecimalNumber zero];
         
   NSDecimalNumber* tax=
      [product_price decimalNumberByMultiplyingBy:
         [NSDecimalNumber decimalNumberWithString:@"0.08"]];
         
   NSDecimalNumber* total=
      decimal_number_sum(@[product_price,...