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

1. Регистрация

Пройдите регистрацию и активацию в сервисе WayForPay

2. Сертификаты

Необходимо сформировать и выслать сертификаты поддержке сервиса WayForPay.

! Необходим аккаунт разработчика в Apple.

1. Вы можете написать нам на почту support@wayforpay.com  и запросить файл запроса для получения сертификатов, для дальнейшего подключения Apple Pay

2. Создайте MerchantID на сайте https://developer.apple.com/ 

 

Description - любой

Identifier - домен сайта закрепленного за приложением (например: если домен https://example.com.ua, то мерчант merchant.ua.com.example)

 

3. Вернитесь в раздел Identifiers, справа выберай список Merchant IDs и кликните на созданный MerchantID

Тут необходимо создать сертификат с помощью файла запроса, который прислала поддержка WayForPay.

Скачайте сертификат и отправьте поддерже WayForPay.

 

PassKit и iOS

Для интеграции метода в приложение используйте SDK PassKit от Apple для получения PaymentToken и метод оплаты Charge в API WayForPay для проведения платежа.

 

Пример 

Необходима копка. Класс кнопки:

Далее добавляем обработчик и следующий код для демонстрации

Тут создается PassKit запроса платежа, задаются параметры и добавляется массив для подсчета суммы и тестовый пункт "Test Product" стоимостью 1 грн. 

Далее создается контроллер, который инициализируется запросом и назначается делегат. 

Для платежа необходим один метод, для того чтобы скрыть форму оплаты - второй метод.

Когда плательщик подтвердит сработает метод делегата из которого надо будет взять платежный токен Apple Pay и просто переслать его в WayForPay.

Для отправки данных PassKit Apple Pay в WayForPay клиент:

https://github.com/nerzh/WayForPay-Swift-Client

который отправляет этот запрос

Создается запрос с параметрами.

merchantAccount - находится в личном кабинете WayForPay. Адрес сайта - тот который закреплен за мерчантом. 

Создаем объект client. Среди необязательных параметров есть httpClient, он наследуется от протокола WFPHttpClientPrtcl и требует реализовать всего один метод, с помощью которого отправляется запрос на сервер WayForPay. По умолчанию он реализован и запрос отправляется с помощью URLSession. Секретный ключ — тоже из кабинета WayForPay.

 

Добавление продуктов к запросу

Сумма заказа суммируется.  В примере запроса для Apple Pay была 1 грн.

 

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

После того, как в методе делегата  получили Payment Token, добавляю его к запросу и можно отправлять запрос на оплату в WayForPay. В зависимости от ответа сервера вызываю handler completion он покажет пользователю прошла его оплата или нет

 

Другой запрос убирает окно Apple Pay с экрана.