Как сделать оплату при помощи Apple Pay
Если вы захотите сделать оплату на кассе, используя iPhone, на заблокированном девайсе необходимо нажать два раза кнопку «Домой», после чего активизируется NFC-чип смартфона, а на экране высветится изображение банковской карты и ее последние 4 цифры.
Финансово-кредитное учреждение имеет право сделать ограничение на максимальную сумму при оплате посредством Apple Pay и дополнительно запросить PIN-код.
Если вам нужно заплатить при помощи Apple Watch, нужно два раза нажать на боковую кнопку часов и приблизить их к терминалу.
Для осуществления покупки в приложении или на сайте, который поддерживает Apple Pay, необходимо поднести палец к датчику Touch ID с целью подтверждения платежа.
Так в чем же отличие от NFC?
Многим данный вопрос сразу придет в голову. Отвечаем, Apple Pay – нечто гораздо большее, хотя и очень похоже. Составляющая сервиса, отвечающая за бесконтактный платеж, действительно основана на технологии NFC. Именно поэтому возможно совмещение со всеми возможными терминалами.
Банками налажена и успешно используется технология выпуска карт с чипами NFC. Обладатели Android-устройств пользуются оплатой товаров и услуг через сторонние приложения. Бесконтактные платежи отлажены, обкатаны, надежно защищены и абсолютно безопасны.
Apple Pay – не только платежи через NFC, но и планомерно работающая платежная система, полноценно защищающая данные пользователя и его деньги везде, особенно при покупках в сети интернет. Дополнительная безопасность создается динамическими кодами, передающимися вместо персонифицированных данных с карты. Коды полностью сохраняют всю информацию о пользователе в секрете.
Как работают такие платежи?
Для реализации такого платежного механизма инженерам из Apple потребовалось разработать беспрецедентные механизмы защиты данных, которые заключаются в четырех основных пунктах:
- BaseElement. Аппаратно за проведение платежа отвечает чип с технологией передачи данных на близком расстоянии (так называемый NFC). Он активируется на расстоянии не более 20 см от терминала.
- SecureElement. Программно для проведения банковской операции необходимы данные кредитной карты человека. Из-за повышенных требований к безопасности эти данные хранятся в специально выделенной части памяти смартфона. На аппаратном уровне заблокирован любой доступ к этому сектору. При платеже этот элемент обменивается данными в зашифрованном виде с базовым элементом (аппаратным чипом).
- SecureEnclave. Эта часть отвечает за подтверждение личности человека, который проводит платеж. Тут хранятся отпечатки пальца и данные с Face ID. Функция этого элемента – при совпадении личности запустить платежную операцию.
-
ApplePayServers. Эта часть управляет хранением доступных для приложений данных (например, карты для Wallet), а также осуществляет дополнительную шифровку платежа.
Верификация платежной сессии
В параметре события onvalidatemerchant
приходит поле validationURL
. На этот адрес с бекенда нужно отправить данные, подписанные сертификатом Merchant Identity Certificate.
applePaySession.onvalidatemerchant = (event) => { // отправляем запрос на валидацию сессии performValidation(event.validationURL) .done( (merchantSession) => { // завершаем валидацию платежной сессии this.applePaySession.completeMerchantValidation(merchantSession); } ).fail( () => { this.applePaySession.abort(); // показ сообщения об ошибке и т.п. } ); };
Метод performValidation
возвращает промис от запроса на валидацию. Обработчик этого запроса находится на нашей стороне, реализация такая: на URL из параметра события onvalidatemerchant отправляется post запрос. В теле запроса содержится json:
{ "merchantIdentifier": "MERCHANT_IDENTIFIER", "domainName": "HOST", "displayName": "DISPLAY_NAME" }
Параметры MERCHANT_IDENTIFIER и DISPLAY_NAME берутся из девелоперского аккаунта (их настроили в самом начале), а HOST — это домен, с которого делается оплата. Запрос должен быть подписан сертификатом Merchant Identity Certificate. В ответе придет json, его и нужно вернуть. После получения этого ответа, вызываем у платежной сессии метод completeMerchantValidation
. Процесс верификации сессии пройден, теперь пользователю требуется подтвердить платеж пальцем или кодом. После этого срабатывает событие onpaymentauthorized
. Переходим к этапу проведения платежа.
ли со статьей или есть что добавить?