- Интеграция Apple Pay на сайт. Часть 1
- Создание и настройка Merchant ID для Apple Pay
- Merchant Domains
- Merchant Identity Certificate
- Payment Processing Certificate
- Подключаем оплату через Apple Pay на сайте
- Создание платежной сессии
- Верификация платежной сессии
- Проведение платежа
- Обмен сертификатом Apple Pay Merchant Identity Certificate
Интеграция Apple Pay на сайт. Часть 1
В данной статье мы расскажем о том, что вам потребуется перед непосредственной интеграцией оплаты Apple Pay в код вашего проекта: где нужно зарегистрироваться, какую информацию подготовить и как эту информацию получить.
Чтобы принимать оплату по Apple Pay вам потребуется:
- Зарегистрировать аккаунт Apple ID. Процесс довольно долгий, но без этого никак.
- Зарегистрироваться на одном из платежных шлюзов, которые работают с Apple Pay. Список доступных платёжных шлюзов, принимающих оплату ApplePay, можно посмотреть здесь.
- Для интеграции оплаты Apple Pay в код вашего проекта вам потребуется: получить Merchant ID, верифицировать домен вашего проекта, получить сертификаты Merchant Identity Certificate и Payment Processing Certificate.
Создание и настройка Merchant ID для Apple Pay
После регистрации Apple ID необходимо добавить Merchant ID и перейти на страницу его редактирования. При создании данный идентификатор следует начать со слова merchant, указав при этом адрес вашего основного сайта в обратном порядке. Например, для сайта digital-spectr.ru идентификатор будет иметь значение merchant.ru.digital-spectr.
На странице редактирования Merchant ID имеются 3 блока, которые необходимо заполнить:
- Merchant Domains:
домены, с которых разрешено производить оплату для данного продавца. - Merchant Identity Certificate:
или сертификат удостоверения продавца. Данный сертификат используется для подтверждения данных продавца при инициализации процесса оплаты. - Payment Processing Certificate:
или сертификат обработки платежей. Данный сертификат нужен для шифрования транзакций.
Merchant Domains
Для того чтобы иметь возможность производить оплату с сайта, потребуется подтвердить владение доменом. Для этого нужно добавить данный домен в блоке Merchant Domains (кнопка «Add Domain»), а чтобы подтвердить, необходимо скачать и разместить на сайте файл.
Обращаю внимание на то, что сайт должен быть на HTTPS. О том, как перевести сайт на HTTPS, можно прочитать в нашей статье.
Merchant Identity Certificate
В инструкции от Apple говорится, что для создания сертификатов требуется наличие Mac. Возможно, можно как-то обойтись без него, но мы не пробовали. Итак, для создания сертификата надо воспользоваться утилитой «Связка ключей» («Keychain Access»).
Далее, используя данную утилиту, нужно сформировать запрос на сертификат. Ниже представлена последовательность действий:
Полученный запрос нужно загрузить при создании сертификата в кабинете Apple.
После этого добавится сертификат в формате .cer, который можно скачать (файл merchant_id.cer) и в дальнейшем использовать. Например, используя ту же утилиту «Связка ключей», можно экспортировать в формат .p12. Последовательность действий для экспорта:
- Дважды кликаем по скачанному файлу merchant_id.cer и открываем его в программе «Связка ключей».
Чтобы использовать сертификат в PHP библиотеке cURL, требуется конвертировать сертификат в формат .pem. Для этого можно конвертировать выше полученный сертификат .p12, используя команду OpenSSL или воспользовавшись одним из многочисленных онлайн конвертеров.
После всех этих манипуляций получим два .pem файла (сертификат и закрытый ключ), которые можем использовать для подтверждения данных продавца при оплате.
Payment Processing Certificate
Процесс создания данного сертификата ничем принципиально не отличается от предыдущего. В зависимости от выбранного сервиса обработки платежей, могут быть различные требования, но, скорее всего, будет достаточно отправить им в службу поддержки сертификат в формате .cer.
На этом подготовка необходимой информации заканчивается, далее можно начинать интеграцию Apple Pay на сайт. А как это сделать, расскажем в следующей статье.
Напоследок покажем схему взаимодействия при оплате с помощью Apple Pay.
Хотите принимать на своём сайте оплату через Apple Pay? Обращайтесь!
Источник
Подключаем оплату через Apple Pay на сайте
Сейчас, в том числе и у нас на сайте, и в приложениях ivi, есть явная тенденция роста аудитории на мобильных устройствах. Также растет и доля покупок, совершаемых в интернете с мобильных устройств. В отличие от десктопа, помимо традиционных вариантов оплаты, доступны системы мобильных платежей, например Apple Pay, Android Pay, Samsung Pay. Эти системы можно использовать не только для оплаты в терминалах, принимающих банковские карты, но и для оплаты в приложениях и на веб-сайтах.
Внедрение мобильных платежей мы начали с веб-версии ivi и выбрали мобильный сайт и систему Apple Pay.
Apple Pay — система мобильных платежей от Apple, позволяющая мобильным устройствам проводить платежи в магазинах и в интернете. Пользователь привязывает карту к телефону, и далее при оплате требуется только подтверждение платежа отпечатком пальца или цифровым кодом.
В этой статье я расскажу об использовании библиотеки Apple Pay JS.
Библиотека предназначена для использования Apple Pay на сайтах. Apple Pay JS API поддерживается на:
- iOS начиная от 10 версии в браузере Safari и моделях iPhone, поддерживающих бесконтактные платежи (SE и старше 6);
- macOS от версии 10.12 в браузере Safari на компьютерах с Touch ID или при подключенном iPhone или Apple Watch для подтверждения платежей.
Для того чтобы принимать платежи через Apple Pay на сайте, вам потребуется:
- Девелоперский аккаунт Apple;
- HTTPS на странице, использующей Apple Pay;
- Выбрать платежный шлюз, с которым вы будете работать. Мы пользуемся услугами Payture.
Далее нужно зарегистрировать Merchant ID, создать сертификаты Merchant Identity Certificate и Payment Processing Certificate и верифицировать домены, на которых будет использоваться Apple Pay. Описание процесса есть в инструкции от Payture.
- Merchant ID — идентификатор продавца, представляющий его в Apple Pay;
- Payment Processing Certificate — сертификат, используемый для передачи платежных данных на стороне платежного шлюза. Сервера Apple Pay используют публичный ключ этого сертификата для шифрования платежных данных. Приватный ключ используется для расшифровывания данных при проведении платежа;
- Merchant Identity Certificate — TLS сертификат, используемый для подтверждения данных продавца и авторизации платежных сессий через сервера Apple. Платежная сессия создается при инициализации процесса оплаты. Сертификат используется только на стороне сайта.
Стоит обратить внимание на то, что при верификации нужно указать полное доменное имя, т.е. маску домена указать не получится.
После всей подготовительной работы можно приступить к интеграции Apple Pay на сайт. Процесс интеграции состоит из 3 основных частей:
- Создание платежной сессии, показ диалога платежа и обработка событий платежной сессии. Тут используется Apple Pay JS API;
- Верификация платежной сессии. Требуется для того, чтобы система Apple Pay могла убедиться, что запрос идет от зарегистрированного продавца. Реализуется на бекенде;
- Проведение платежа через платежный шлюз и завершение платежной сессии.
Создание платежной сессии
Перед показом кнопки оплаты через Apple Pay нужно проверить доступен ли Apple Pay на устройстве. Реализуется это так:
Далее с помощью Apple Pay JS API можно проверить есть ли у пользователя активные карты, привязанные к Apple Pay. Предоставляется 2 метода canMakePayments и canMakePaymentsWithActiveCard . Первый проверяет только факт поддержки Apple Pay, второй помимо этого позволяет узнать есть ли по крайней мере 1 карта, привязанная к Apple Pay.
У нас, например, эти проверки используются для того, чтобы решить показать кнопку оплаты через Apple Pay над остальными способами оплаты или под ними. В случае если добавленных карт нет, выводится кнопка Set Up Apple Pay, по клику открываются настройки телефона с разделом Wallet. В итоге пользователь уходит с сайта, а процесс оплаты прерывать не стоит, поэтому кнопка располагается под основными типами оплаты и даже не видна без скролла экрана.
Страницы оплаты для настроенного и ненастроенного Apple Pay:
Как только кнопка отображена на странице, можно создать платежную сессию для того чтобы отобразить диалог оплаты. Сессия может быть создана только по явному пользовательскому действию. По клику на кнопку нужно выполнить следующий код:
В примере приведен минимальный набор свойств у объекта ApplePayPaymentRequest. Для отображения более подробной информации о покупке нужно использовать другие свойства этого объекта.
Для обработки событий платежной сессии нужно реализовать как минимум следующие методы:
- onvalidatemerchant срабатывает при открытии платежной формы Apple Pay. В обработчике этого события требуется верифицировать платежную сессию. Процесс верификации описан далее;
- onpaymentauthorized срабатывает когда пользователь подтверждает платеж на платежной форме Apple Pay с помощью Touch ID, Face ID или кода. Здесь доступен платежный токен, который нужно передать в платежный шлюз для проведения платежа;
После создания объекта ApplePaySession нужно вызвать метод begin для отображения диалога оплаты:
В результате пользователь увидит следующее:
При показе формы срабатывает событие onvalidatemerchant . Для того чтобы продолжить платеж реализуем следующий этап.
Верификация платежной сессии
В параметре события onvalidatemerchant приходит поле validationURL . На этот адрес с бекенда нужно отправить данные, подписанные сертификатом Merchant Identity Certificate.
Метод performValidation возвращает промис от запроса на валидацию. Обработчик этого запроса находится на нашей стороне, реализация такая: на URL из параметра события onvalidatemerchant отправляется post запрос.
В теле запроса содержится json:
Параметры MERCHANT_IDENTIFIER и DISPLAY_NAME берутся из девелоперского аккаунта (их настроили в самом начале), а HOST — это домен, с которого делается оплата.
Запрос должен быть подписан сертификатом Merchant Identity Certificate. В ответе придет json, его и нужно вернуть. После получения этого ответа, вызываем у платежной сессии метод completeMerchantValidation .
Процесс верификации сессии пройден, теперь пользователю требуется подтвердить платеж пальцем или кодом. После этого срабатывает событие onpaymentauthorized . Переходим к этапу проведения платежа.
Проведение платежа
В параметре события onpaymentauthorized содержится объект с платежным токеном, который нужно передать в платежный шлюз. Вся информация, содержащаяся в токене, описана в документации.
Как только платеж проведен, завершаем оплату на стороне клиента.
в success нужно передать один из 2 статусов window.ApplePaySession.STATUS_SUCCESS или window.ApplePaySession.STATUS_FAILURE .
На этом процесс оплаты через Apple Pay заканчивается. Более подробно про Apple Pay JS можно почитать в официальной документации.
Источник
Обмен сертификатом Apple Pay Merchant Identity Certificate
Apple Pay Merchant Identity Certificate — сертификат, который используется для шифрованной передачи платежных данных между серверами Apple Pay и Вашим сайтом. Для того чтобы выполнить обмен сертификатами необходимо:
ЗАМЕЧАНИЕ: Для создания запроса на сертификат, необходимо наличие Mac. Если у Вас нет компьютера с операционной системой MacOS, или Вам необходима любая другая помощь по установке пишите нам на почту apple.pay@epages.su.
- Запустите утилиту Связка ключей (Keychain Access).
- Выберите Связка ключей > Ассистент сертификации > Запросить сертификат в бюро сертификации.
- В диалоговом окне заполните поля E-mail пользователя и Общее имя и в поле Запрос выберите Сохранен на диске и нажмите кнопку Продолжить.
- Сохраните файл .certSigningRequest на компьютер.
Источник