Apple Pay

theMAP предоставляет возможность осуществлять списания денежные средства с карты Покупателя с использованием токена Apple Pay вместо реквизитов карты.

Для реализации оплаты с использованием Apple Pay необходимо:

  1. Зарегистрироваться в Apple Developer Program.

  2. В случае использования мобильного приложения - получить одобрение от Apple.

  3. Подтвердить владение доменами.

  4. Получить от theMAP файл запроса подписи сертификата (CSR).

  5. Используя полученный CSR, создать сертификат в партнёрском центре Apple.

  6. Предоставить в theMAP созданный сертификат.

Схема получения токенизированного номера карты:

API theMAP поддерживает передачу и обработку токена (как оригинального - ApplePay, так и расшифрованного - DecryptApplePay) в методах: Block, Pay и storeCard в параметре payment_token. Пример запроса на одностадийную оплату Pay:

{
    "key": "ApplePayTestTerminal",
    "payment_token": {
        "type": "DecryptApplePay",
        "data": "ewogICAgImdhdGV3YXlNZXJja......"
    },
    "merchant_order_id": "ApplePayTestOrder-001",
    "amount": 101
}

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

{
    "Success": true,
    "OrderId": "ApplePayTestOrder-001",
    "Amount": 101,
    "ErrCode": ""
}

DecryptApplePay

Параметр paymentToken.data должен содержать расшифрованное и закодированное в Base64 значение свойства paymentData, полученного из объекта PKPaymentToken от системы Apple Pay (подробнее см. докум ентацию Apple Pay). Таким образом, чтобы сделать запрос на оплату в платёжный шлюз, продавец должен: получить от системы Apple Pay объект PKPaymentToken, содержащий свойство paymentData; извлечь значение свойства paymentData, расшифровать его и закодировать его в Base64

{
 "applicationPrimaryAccountNumber": "6543564567623223",
 "deviceManufacturerIdentifier": "050110030273",
 "currencyCode": "643",
 "applicationExpirationDate": "220430",
 "paymentData":
 {
 "onlinePaymentCryptogram":
"AM32yL0vuOOmAAGG0iQUAoABFA=="
 },
 "paymentDataType": "3DSecure",
 "transactionAmount": 1010
}