Для начала вам необходимо зарегистрировать Apple Merchant ID. Начните с перехода на страницу с инструкцией по регистрации идентификатора продавца на веб-сайте Apple Developer.
Заполните форму с описанием и идентификатором. Ваше описание предназначено для ваших собственных потребностей и может быть изменено в будущем (мы рекомендуем использовать название вашего мобильного приложения). Идентификатор должен быть уникальным (во всех приложениях Apple, а не только в вашем) и не может быть изменен позже (хотя вы всегда можете создать другое). Мы рекомендуем использовать merchant.fondy.eu.{{Your_app_name}}. Сохраните это значение для последующего использования при разработке приложения.
Детальная инструкция:
1.1 Перейдите в Dashboard вашего аккаунта в Apple Developer https://developer.apple.com/account/#
1.2 Войдите в меню Certificates, Identifiers & Profiles
1.3 В меню Identifiers нажите + для создания Merchant ID: https://developer.apple.com/account/resources/identifiers/add/bundleId
1.4 Заполните Description (на ваш выбор) и Identifier (merchant.fondy.eu.{{Your_app_name}}.):
Вам необходимо подключить сертификат в ваше приложение для шифрования данных платежей. Для этого выполните 3 шага:
2.1 Предоставьте необходимую для формирования CSR файла информацию в службу поддержки Fondy. Для этого заполните, пожалуйста, там, где стоит знак «?»:
Country Name (2 letter code) [AU]: ?
State or Province Name (full name) [Some-State]: ?
Locality Name (eg, city) []: ?
Organization Name (eg, company) [Internet Widgits Pty Ltd]: ?
Organizational Unit Name (eg, section) []: ?
Common Name (e.g. server FQDN or YOUR name) []: ?
Email Address []: ?
2.2 Получите 2 файла CSR (запрос на подпись сертификата) от Fondy:
Apple Pay Payment Processing Certificate Request
Apple Pay Merchant Identity Certificate Request
2.3 Используйте эти CSR файлы для генерации сертификатоа продолжая шаг 1.4
блок Apple Pay Payment Processing Certificate:
блок Apple Pay Merchant Identity Certificate :
2.4 Скачайте и передайте полученные сертификаты обратно в Fondy для настройки вашего мерчанта.
Последний шаг этого процесса — добавить в ваше приложение функцию Apple Pay. В Xcode откройте настройки своего проекта, выберите вкладку «Capabilities» и включите переключатель Apple Pay. В этот момент вам может быть предложено войти в свою учетную запись разработчика. Установите флажок рядом с идентификатором продавца, который вы создали ранее, и все готово!
3.2 в интеграции SDK укажите merchant_id полученный при регистрации в Fondy Мерчант-Портале в конструкторе
self.api = [PSCloudipspApi apiWithMerchant:1396424 andCloudipspView:self.webView];
ссылка на строку в github:
3.4 в интеграции SDK укажите merchant_id полученный при регистрации в Fondy Мерчант-Портале в конструкторе
this.api = new Cloudipsp(<ваш Fondy merchant_id>, this.cloudipspWebView);
ссылка на строку в github:
Для прямой интеграции с Apple Pay API, следуйте инструкции Apple Pay.
openssl genrsa -out merchant.key 2048
Apple Pay Merchant Identity Certificate Private Key:
openssl ecparam -out apple_pay.key -name prime256v1 -genkey
openssl req -new -key merchant.key -out merchant.csr
Apple Pay Merchant Identity Certificate Request:
openssl req -new -sha256 -key apple_pay.key -nodes -out apple_pay.csr
openssl pkcs12 -export -out merchant.p12 -inkey merchant.key -in merchant.pem
Пример PHP 7.2
<?php $ch = curl_init(); $merchantIdentifier = 'merchant.fondy.eu.{{Your_app_name}}'; // Ваш идентификатор мерчанта Apple Pay с шага 1.4 $domainName = 'доменное имя'; //Доменное имя вашего сайта, с которого выполняется оплата $displayName = 'описание вашего сервиса'; $data = [ 'merchantIdentifier' => $merchantIdentifier, 'domainName' => $domainName, 'displayName' => $displayName ]; curl_setopt($ch, CURLOPT_URL, $validationURL); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_CERTINFO, true); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); curl_setopt($ch, CURLOPT_SSLCERT, __DIR__ . '/merchant.pem'); curl_setopt($ch, CURLOPT_SSLKEY, __DIR__ . '/merchant.key'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); echo json_encode($res);
{ "token": { "paymentData": { "data": "1e3kqjVc...HYJkFFBevkjnAO1jjA9oZsg==", "signature": "MIAGCSq...AfMDB4b77L6sCICoUo9Lr+0mSvGrn5wKYvB19yOYEAuVwTcxickud0LmIAAAAAAAA", "header": { "transactionId": "6fb8a4ea40c8a30c2f8...7b80d9d92d060796018e", "ephemeralPublicKey": "MFkwEwYHKoZIz.....W56yaUW+kMjaDsvaRpVldv17/mDgP4cK8F0gXmvBaJ3SA==", "publicKeyHash": "Yx3yIurI+gR....xH82t/v9uId/8eKM+A=" }, "version": "EC_v1" }, "transactionIdentifier": "6FB8A4EA40C8A30....81EFCC255E7B80D9D92D060796018E", "paymentMethod": { "network": "Visa", "type": "debit", "displayName": "Visa 1111" } } }