Web
Операція купівлі через Apple Pay
Для інтеграції кнопки Apple Pay на платіжну сторінку інтернет магазину необхідно реалізувати метод ApplePaySession.canMakePaymentsWithActiveCard. Метод визначає, чи підтримує цей пристрій оплату за допомогою Apple Pay.
Якщо так - необхідно відобразити кнопку "Купити за допомогою Apple Pay".
Далі необхідно створити об'єкт ApplePaySession з параметрами покупки:
countryCode: 'UA',
currencyCode: 'UAH',
supportedNetworks: ['visa', 'masterCard'],
merchantCapabilities: ['supports3DS'],
total: { label: 'Your Merchant Name', amount: '10.00' },
Опис полів можна подивитися в документації Apple Pay on Web.
На подію onvalidatemerchant необхідно призначити обробник, в якому буде викликатися API "api / apple / validate". Опис методу буде нижче.
На подію onpaymentauthorized необхідно призначити обробник, який буде викликати API "api / apple / payment".
Після підтвердження платежу в onpaymentauthorized необхідно викликати метод ApplePaySession.completePayment.
Документацію по ApplePaySession можна знайти на оф.сайті Apple.
Валідація мерчанта Apple Pay (api/apple/validate)
Production url: https://pay.concord.ua/api/apple/validate
POST-параметри:
Параметр | Опис | Тип | Значення |
---|---|---|---|
operation | Тип операції | String | Purchase |
apple_validation_url | Цей параметр приходить в подію onvalidatemerchant, event.validationURL session.onvalidatemerchant = (event) => { console.log(event.validationURL); } | String | |
merchant_id | ID мерчанта | String | |
amount | Сума операції. Приклад: 500.00 | Float | |
signature | З метою підтвердження валідності даних має бути згенерований і переданий у запиті HMAC_MD5 контрольний підпис з використанням SecretKey мерчанта. | String | |
Рядок, що підлягає HMAC_MD5, генерується шляхом конкатенації параметрів merchant_id, order_id, amount, currency_iso, description розділених ";" (крапка з комою) в кодуванні UTF-8. | |||
Порядок параметрів під час конкатенації важливий! | |||
order_id | Унікальний номер операції на стороні мерчанта. Якщо операція дублюється - мерчант отримує помилку. | String | |
currency_iso | Валюта платежу | String | UAH |
description | Призначення платежу. Виводиться на платіжній сторінці, при введенні платіжних реквізитів. Відображається в виписці за рахунком і реєстрах | String | |
add_params | Масив з додатковими параметрами. Розширені можливості пошуку потім повертаються мерчанту в callback виклику | Array | |
callback_url | URL, на який прийде інформація про результат виконання платежу | String |
У відповідь надходять такі параметри:
Параметр | Опис | Тип |
---|---|---|
apple_validate_data | Дані, які необхідно передати в метод session.completeMerchantValidation | string |
order_key | Ідентифікатор замовлення в платіжній системі | string |
code | Код відповіді (0 - успіх) | integer |
message | Розшифровка коду відповіді | string |
Підтвердження платежу Apple Pay (api/apple/payment)
Production url: https://pay.concord.ua/api/apple/payment
POST-параметри:
Параметр | Опис | Тип |
---|---|---|
order_key | Ідентифікатор замовлення в платіжній системі | string |
apple_pay_payment_data | Дані закодовані в base64, отримані в новій події onpaymentauthorized в параметрі event.payment. | string |
Приклад: session.onpaymentauthorized = (event) => { console.log(event.payment); } |
У відповідь приходить:
Параметр | Опис | Тип | Значення |
---|---|---|---|
transactionStatus | Cтатус операції | String | Approved - Успішно Declined - Відмова |
reason | Текстова причина відмови | String | |
reasonCode | Код помилки при відмові | String |
Після виклику цього методу приходить callback в backend мерчанта