Apple Pay для мобильных приложений

Apple Pay для мобильных приложений

9 сентября 2014 года в ходе очередной презентации, компания Apple представила собственную систему мобильных платежей — Apple Pay.

С помощью платежной системы Apple Pay пользователи iPhone 6 и iPhone 6+, а также владельцы новейших версий Apple Watch могут совершать покупки онлайн, пользоваться дополнительными преимуществами apple pay для мобильных приложений и совершать платежи при помощи технологии NFC (Near Field Communication). Для авторизации платежей используются технологии Touch ID или Face ID.

Ниже мы рассмотрим как интегрировать и подключить Эпл Пей в мобильное приложение, которое требует подключения данной платежной системе в ходе разработки.

Карта доступности Apple Pay (по состоянию на 17 мая 2018 года). Синий: запущено Голубой: запуск запланирован

Итак начнём

Мы будем использовать актуальную на момент написания статьи (5 ноября 2018года) версию Swift 4.2 и Xcode 10.1.

Для интеграции Apple Pay в мобильное приложение Вы должны иметь зарегистрированный и оплаченный аккаунт разработчика (https://developer.apple.com)

Создаем проект на основе Single View Application.

Следующим шагом необходимо придумать название проекта. В качестве примера будем использовать ApplePayExample.

Далее переходим к классу ViewController. В нем и будет осуществляться работа.

Настройка Apple Pay в мобильном приложении

Для подключения Apple Pay необходимо воспользоваться библиотекой PassKit.

PassKit позволяет:

  1. Добавить Apple Pay в приложение;
  2. Управлять карточками в приложении Wallet.

Для настройки Apple Pay необходимо выполнить 3 обязательных шага:

  1. Создать merchant ID;
  2. Включить Apple Pay в Xcode;
  3. Создать тестового пользователя.

Заходим на https://developer.apple.com, авторизуемся в своем аккаунте и переходим на Certificates, Identifiers & Profiles.

В группе Identifiers выбираем вкладку App IDs. Заполняем необходимые поля соответственно мобильному приложению и следуем дальнейшим инструкциям.

После этого в группе Identifiers необходимо выбрать пункт Merchant IDs.

Следуя инструкциям, создаем Merchant ID для приложения.

Identifier рекомендуется называть в формате «merchant» + Bundle ID. Например: merchant.com.myapp

Мы практически завершили приготовления к нашему проекту.

Далее требуется перейти на https://appstoreconnect.apple.com в раздел Users and Access, выбрать Testers в секции Sandbox и, следуя инструкциям, создать профиль тест-пользователя.

Профиль пользователя необходим для тестирования платежей.

Шаг №1

Шаг №2

Шаг №3

Настройка Xcode

Шаг №1

Сначала нам необходимо активировать Apple Pay в Capabilities Xcode и добавить, ранее созданный Merchant ID.

Шаг №2

Все, Apple Pay активирован. Переходим к наиболее интересной части проекта — написанию кода.

Сначала откройте Main.storyboard и добавьте кнопку.

Перейдите в ViewController.swift.

Для начала работы необходимо импортировать библиотеку PassKit: import PassKit

 // MARK - Properties  
  private var paymentRequest: PKPaymentRequest = {
    let request = PKPaymentRequest()
    request.merchantIdentifier = "merchant.stfalcon.com.applepayexample"
    request.supportedNetworks = [.visa, .masterCard]
    request.supportedCountries = ["UA"]
    request.merchantCapabilities = .capability3DS
    request.countryCode = "UA"
    request.currencyCode = "UAH"
    request.paymentSummaryItems = [PKPaymentSummaryItem(label: "iPhone Xs 64 Gb", amount: 34999.99)]
    return request
  }()

Далее необходимо создать экземпляр класса PKPaymentRequest.

    // MARK: - @IBActions
    @IBAction func purchase(_ sender: Any?) {
        if let controller = PKPaymentAuthorizationViewController(paymentRequest: paymentRequest) {
            controller.delegate = self
            present(controller, animated: true, completion: nil)
        }
    }

и создать IBAction для кнопки.

Открывая PKPaymentAuthorizationViewController, необходимо подписаться на его delegate, таким образом, будет виден статус транзакции.

Кроме того, необходимо имплементировать методы делегата. Имитировать успешную транзакцию мы будем следующим образом:

extension ViewController: PKPaymentAuthorizationViewControllerDelegate {
 
    func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {
        completion(PKPaymentAuthorizationResult(status: .success, errors: nil))
    }
 
    func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
        controller.dismiss(animated: true, completion: nil)
    }
 
}

completion(PKPaymentAuthorizationResult(status: .success, errors: nil))

Мы готовы к проверке Apple Pay.

Перед проверкой Apple Pay необходимо пройти авторизацию с помощью ранее созданного Sandbox пользователя и добавить в iPhone карту для тестирования.

Пример карт для тестирования:

MasterCard

  • FPAN: 5204 2477 5000 1471
  • Expiration Date: 11/2022
  • CVC: 111

Visa

  • FPAN: 4761 1200 1000 0492
  • Expiration Date: 11/2022
  • CVV 533

Запустите проект и нажмите кнопку «Pay».

Транзакция прошла успешно. Поздравляем, теперь Вы знаете, как интегрировать Apple Pay в мобильное приложение.

Что говорит статистика?

Компания Apple не разглашает статистику по Apple Pay, однако по данным экспертов, количество пользователей данного платежного сервиса составляет порядка 31% общего количества владельцев iPhone (более 252 млн. человек).

Кроме того, глава компании Тим Кук недавно заявил, что почти миллиард транзакций было осуществлено с применением Apple Pay в третьем квартале 2018 года.

Также растет количество банков, поддерживающих Эпл Пей. В июне 2018 года Apple сообщила о том, что свыше 4900 банков по всему миру поддерживают оплату посредством данного платежного сервиса.

Зачем Вам Apple Pay?

Из раздела выше в принципе становится ясно, зачем Apple Pay нужен, но давайте разберемся, подробнее. Итак, как он работает.

Пользователи могут совершать покупки онлайн, пользуясь Safari браузером, а также через мобильные приложения. Больше нет необходимости носить кредитные карты с собой, достаточно коснуться пальцем экрана iPhone ( если у Вас Touch ID) или просто усмехнуться в экран (в случае с Face ID) и Ваша покупка будет подтверждена.

Безопасно ли это? — спросите Вы. — Да! Однозначно, это безопасно. Во время осуществления оплаты девайс не передает данные платежной карты. Телефон генерирует специальный одноразовый токен и использует его для осуществления транзакции.

Не имеет значения, кто Вы:

  1. Пользователь
  2. Бизнесмен
  3. Разработчик

Вы просто обязаны интегрировать технологию в свой бизнес, проект или повседневную жизнь. Благодаря технологии Apple Pay можно практически полностью отказаться от использования пластиковых карт.