Документація iFrame

Модуль оплати Monobank можна інтегрувати на ваш сайт за допомогою iFrame. Це дозволяє клієнтам здійснювати платежі безпосередньо на вашому сайті без перенаправлення на зовнішні сторінки.

Створення рахунку для оплати

Виставлення рахунку відбувається за допомогою API створення рахунку.
Важливо передати додатковий параметр в запиті "displayType": "iframe"

Технічна реалізація iFrame

Базовий HTML-код

html
				
					
<iframe
    id="payFrame"
    title="monopay"
    width="600"
    height="600"
    src="{{pageUrl}}"
    allow="payment *"
    style="border-radius: 24px;"
></iframe>

				
			

Обов'язкові параметри

ПараметрЗначенняОпис
idpayFrameІдентифікатор фрейму
titlemonopayНазва фрейму для доступності
allowpayment *Дозвіл на обробку платежів (обов'язковий параметр)
src{{pageUrl}}URL сторінки оплати, який надається після створення рахунку

Вимоги до розмірів

  • Мінімальна ширина: 576px
  • Мінімальна висота: 576px
  • Радіус заокруглення: 24px

iFrame повинен відображатися по центру екрану.

Рекомендується використовувати CSS для центрування:

css
				
					
.iframe-container {
    display: flex;
    justify-content: center;
    align-items: center;
}

				
			

Обробка подій iFrame

Приклад:

javascript
				
					
function listenFrame(event) {
    const data = JSON.parse(event.data || "{}");
   
    // Обробка кліку по кнопці "назад" або "повернутись на сайт"
    if (data.message === "close-button") {
        closeModal();
    }
   
    // Обробка переходу на мобільному пристрої через діпклінк
    if (data.message === "monopay-link") {
        window.location.href = data.value;
    }
}

window.addEventListener("message", listenFrame, false);

				
			

Де:

  • close-button: клік по кнопці "назад" або "повернутись на сайт"
  • monopay-link: перехід через діпклінк на мобільному пристрої

Приклад повної інтеграції

Повний приклад
				
					
// html
<div class="iframe-container">
    <iframe
        id="payFrame"
        title="monopay"
        width="600"
        height="600"
        src="{{pageUrl}}"
        allow="payment *"
        style="border-radius: 24px;"
    ></iframe>
</div>

// javascript
// Обробка подій інтерфейсу
function listenFrame(event) {
    const data = JSON.parse(event.data || "{}");
   
    // Кнопка "назад" або "повернутись назад"
    if (data.message === "close-button") {
        closeModal();
    }
   
    // Діпклінк для мобільного додатку
    if (data.message === "monopay-link") {
        window.location.href = data.value;
    }
}

window.addEventListener("message", listenFrame, false);

// Допоміжні функції
function closeModal() {
    // Ваш код для закриття модального вікна
}

// css
.iframe-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 20px;
}