Інтеграція 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 в мобільні додатки, які розробляються і потребують інтеграції платіжних опцій.

Apple mobile Pay сумісний з такими зчитувачами безконтактних карток, як Visa PayWave, MasterCard PayPass, American Express ExpressPay.

Карта покриття країн Apple Pay (станом на 17 травня 2018 року). Темно-синій: запущено Світло-блакитний: планується

Почнемо

Ми будемо використовувати останню версію Apple Pay (станом на 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. Добавити Apple Pay в мобільний додаток;
  3. Керувати картками в додатку Гаманець;
.

Для налаштування Apple Pay потрібно виконати 3 обов'язкових кроки:

  1. Створити ідентифікатор продавця;
  2. Увімкнути Apple Pay в Xcode;
  3. Створити тестового користувача.
.

Перейдемо на https://developer.apple.com, авторизуємося під своїм обліковим записом і перейдемо в розділ Сертифікати, ідентифікатори та профілі.

Перейдіть до групи Ідентифікатори та оберіть вкладку Ідентифікатори додатків. Заповніть усі необхідні поля відповідно до вашої програми та дотримуйтесь подальших інструкцій.

Після цього в групі Ідентифікатори торговця виберіть Ідентифікатори.

Створіть Merchant ID для вашого додатку, дотримуючись наведених інструкцій.

Ідентифікатор рекомендується називати наступним чином "merchant" + Bundle ID. Наприклад: merchant.com.myapp

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

Далі нам потрібно перейти в розділ https://appstoreconnect.apple.comКористувачі та доступ, в розділі Пісочниця вибрати Тестувальники і створити тестового користувача, дотримуючись інструкцій.

Ми хочемо, щоб користувач міг тестувати платежі.

Крок 1

Крок 2

Крок 3

Переходимо до налаштування Xcode

Крок 1

Перш за все, нам потрібно увімкнути Apple Pay в Capabilities Xcode і додати створений раніше Merchant ID.

Крок 2

Тепер, коли Apple Pay увімкнено, ми можемо перейти до найцікавішого - написання коду.

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

Далі переходимо до ViewController.swift.

Для початку нам потрібно імпортувати бібліотеку PassKit: імпортувати 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

// ПОМІТКА: - @IBActions
    @IBAction func purchase(_ sender: Any?){{ifif let controller = PKPaymentAuthorizationViewController(paymentRequest: paymentRequest){
            controller.delegate = self
            present(controller, animated:true, completion:nil)}
 
 
<p>та створити <strong>IBAction</strong> для кнопки.</p>
 
<p>При відкритті <strong>PKPaymentAuthorizationViewController</strong> ми повинні підписатися на його делегат, щоб бачити статус транзакції.</p>
 
<p>Після цього нам потрібно реалізувати методи делегату. Успішну транзакцію ми імітуватимемо наступним чином:
 </p>
 
<pre lang="objc">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
  • Дата закінчення терміну дії: 11/2022
  • CVC: 111

Віза

  • FPAN: 4761 1200 1000 0492
  • Дата закінчення: 11/2022
  • CVV 533

Запустіть проект і натисніть кнопку «Оплатити».

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

А як щодо статистики?

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

Нещодавно глава компанії Тім Кук також зазначив, що за допомогою цього сервісу в 3-му кварталі 2018 року було здійснено майже 1 мільярд транзакцій.

Зростає і кількість банків, які підтримують Apple pay. У червні 2018 року Apple оголосила, що понад 4 900 банків у всьому світі підтримують цю платіжну опцію.

Для чого потрібен Apple Pay?

Вважаю, що в розділі вище пояснюється, навіщо Apple Pay потрібен саме вам.

Але як це працює насправді? Ви можете здійснювати покупки онлайн (через браузер Safari), а також за допомогою додатків. Вам не потрібно носити з собою картки, достатньо лише доторкнутися до iPhone (якщо у вас є Touch ID) або просто посміхнутися необхідним спеціальним датчикам (якщо у вас є Face ID). Цього буде достатньо, щоб здійснити покупку.

Чи безпечно це? запитаєте ви. Так, однозначно, безпечно. Ваш пристрій не передає ваші фінансові дані під час транзакції, натомість він генерує спеціальний одноразовий токен і обмінює його під час платіжної операції.

У разі якщо ви:

  1. користувач
  2. підприємець
  3. розробник

Ви просто зобов'язані інтегрувати цю технологію (у свій бізнес, проект чи життя). Завдяки цій технології ви зможете відмовитися від використання карток фізично.