Выражаем огромную благодарность нашему клиенту, который постарался описать в подробности все шаги по прямой интеграции 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 с экрана.