Перейти до основного вмісту
Версія: 1.0.0

ApplePayApp

Операція купівлі через Apple Pay

Щоб зробити покупку за допомогою Apple Pay із додатку, необхідно спочатку надіслати запит Валідація мерчанта та створення заказу, а потім надіслати запит Підтвердження платежу Apple Pay.

Валідація мерчанта та створення заказу (api/apple/validate)

Production url: https://****.procard-ltd.com/api/apple/validate

POST-параметри:

ПараметрОписТипЗначення
operationТип операціїStringPurchase
merchant_idID мерчантаString
amountСума операції. Приклад: 500.00Float
signatureЗ метою підтвердження валідності даних має бути згенерований і переданий у запиті HMAC_SHA512 контрольний підпис з використанням SecretKey мерчанта.String
Рядок, що підлягає HMAC_SHA512, генерується шляхом конкатенації параметрів merchant_id, order_id, amount, currency_iso, description розділених ";" (крапка з комою) в кодуванні UTF-8.
Порядок параметрів під час конкатенації важливий!
order_idУнікальний номер операції на стороні мерчанта. Якщо операція дублюється - мерчант отримує помилку.String
currency_isoВалюта платежуStringUAH
descriptionПризначення платежу. Виводиться на платіжній сторінці, при введенні платіжних реквізитів. Відображається в виписці за рахунком і реєстрахString
add_paramsМасив з додатковими параметрами. Розширені можливості пошуку потім повертаються мерчанту в callback викликуArray
callback_urlURL, на який прийде інформація про результат виконання платежуString

У відповідь надходять такі параметри:

ПараметрОписТип
order_keyІдентифікатор замовлення в платіжній системіString
codeКод відповіді (0 - успіх)Integer
messageРозшифровка коду відповідіString

Підтвердження платежу Apple Pay (api/apple/payment)

Production url: https://****.procard-ltd.com/api/apple/payment

Система сама визначає, яким шляхом іде автентифікація з 3DS або без залежно від даних отриманих від Apple.

POST-параметри:

ПараметрОписТип
order_keyІдентифікатор замовлення в платіжній системіString
apple_pay_payment_dataДані платіжного токену ApplePay, закодовані в base64String
apple_pay_payment_data_decryptedПараметр передається замість apple_pay_payment_data, якщо використовується оплата з розшифрованим токеном. Дані платіжного токену ApplePay, закодовані в base64.String

У відповідь приходить:

ПараметрОписТипЗначення
transactionStatusСтатус операціїStringApproved - Успішно
Declined - Відмова
reasonТекстова причина відмовиString
reasonCodeКод помилки при відмовіString

Після виклику цього методу приходить callback в backend мерчанта

Приклад запиту на оплату з розшифрованим токеном:

{
"order_key": "9910ae2538be76b828f63a08f14ddf4a267d5148713cb2bb2742848fd622cfd266d86cab7f44b",
"apple_pay_payment_data_decrypted": "ewoiYXBwbGljYXRpb25QcmltYXJ5QWNjb3VudE51bWJlciI6ICI0MDEyMDAwMDAwMDAzMTE5IiwKImFwcGxpY2F0aW9uRXhwaXJhdGlvbkRhdGUiOiAiMjgxMTMwIiwKImN1cnJlbmN5Q29kZSI6ICI5ODAiLAoidHJhbnNhY3Rpb25BbW91bnQiOiAxMDAwMCwKImRldmljZU1hbnVmYWN0dXJlcklkZW50aWZpZXIiOiAiMDQwMDEwMDMwMjczIiwKInBheW1lbnREYXRhVHlwZSI6ICIzRFNlY3VyZSIsCiJwYXltZW50RGF0YSI6ewoib25saW5lUGF5bWVudENyeXB0b2dyYW0iOiIxMjMiLAoiZWNpSW5kaWNhdG9yIjoiNSIKfQp9Cg=="
}

Структура розшифрованого токена:

ПараметрОписаниеТип
applicationPrimaryAccountNumberТокенізований номер карткиString
applicationExpirationDateДата закінчення терміну дії картки (формат YYMMDD)String
currencyCodeВалюта платежуString
transactionAmountСума транзакції. Приклад 500.00Float
deviceManufacturerIdentifierУнікальний ідентифікатор виробника пристроюString
paymentDataTypeТип платіжних данихString
paymentData
onlinePaymentCryptogramКриптограма для безпечних онлайн-транзакційString
eciIndicatorІндикатор електронної торгівлі, показує рівень безпеки транзакціїString

Приклад розшифрованого токена:

{
"applicationPrimaryAccountNumber": "4012000000003119",
"applicationExpirationDate": "281130",
"currencyCode": "980",
"transactionAmount": 10000,
"deviceManufacturerIdentifier": "040010030273",
"paymentDataType": "3DSecure",
"paymentData": {
"onlinePaymentCryptogram": "123",
"eciIndicator": "5"
}
}