В умовах зміненого ринку МИР Pay став єдиним інструментом безконтактної оплати для російських покупців з картками МИР — в обігу понад 170 млн карток. Інтеграція платіжної системи МИР в 1С-Бітрікс реалізується через банк-еквайр, який працює з НСПК. Окремого API для прямого підключення без банку не існує. Ми вже кілька років інтегруємо платіжні системи в 1С-Бітрікс, і інтеграція МИР Pay — один з найчастіших запитів. Головний біль: хочеться, щоб оплата проходила швидко і без помилок, але без велосипедів. Покажемо на реальному досвіді, як це зробити.
Як вибрати спосіб інтеграції МИР Pay?
Через існуючий еквайр МИР — якщо у вас підключено Тинькофф, CloudPayments або ЮKassa, МИР Pay зазвичай включається без додаткової розробки. Банк-еквайр визначає тип картки за BIN і маршрутизує транзакцію через НСПК. T-Pay SDK від Тинькофф включає МИР Pay і автоматично пропонує його власникам карток МИР. Payment Request API — браузерний стандарт W3C, підтримуваний в Chrome, Яндекс.Браузері, Firefox та Safari.
Порівняння підходів
| Метод | Складність | Час інтеграції | Підтримка браузерів |
|---|---|---|---|
| Через існуючий еквайр | Низька | 0.5–1 день | Не залежить |
| T-Pay SDK | Середня | 1–2 дні | Android + iOS WebView |
| Payment Request API | Висока | 2–4 дні | Chrome, Yandex, Firefox, Safari |
Payment Request API виграє по широті: він покриває в 1.5 рази більше браузерів, ніж T-Pay SDK, і не вимагає встановлення додаткового SDK. Інтеграція через еквайр в 2-3 рази швидше, ніж кастомна реалізація. Вибір методу впливає на бюджет: через еквайр — мінімальні витрати, кастомна реалізація дорожче. Зв'яжіться з нами для вибору оптимального варіанту.
Чому варто обрати Payment Request API?
Payment Request API — це стандарт W3C, який підтримується всіма сучасними браузерами (більше 90% користувачів). На відміну від T-Pay SDK, він не вимагає встановлення бібліотек і працює однаково на всіх пристроях. Якщо ваш сайт обслуговує користувачів з різними браузерами, цей варіант є кращим. При цьому важливо пам'ятати, що для старих браузерів потрібен fallback на стандартну форму оплати. Економія на транзакціях при виборі правильного методу може скласти до 30%.
Як підключити МИР Pay через Тинькофф?
Інтеграція через Тинькофф: серверна частина
// Створення платіжної сесії $params = [ 'TerminalKey' => TINKOFF_TERMINAL, 'Amount' => (int)($order->getPrice() * 100), 'OrderId' => $order->getAccountNumber(), 'Description' => 'Замовлення #' . $order->getAccountNumber(), 'SuccessURL' => 'https://shop.ru/payment/success/', 'FailURL' => 'https://shop.ru/payment/fail/', 'NotificationURL' => 'https://shop.ru/bitrix/tools/sale_ps_result.php', 'PayType' => 'O', ]; $params['Token'] = generateTinkoffToken($params, TINKOFF_SECRET); $response = tinkoffRequest('/v2/Init', $params); // Тинькофф показує МИР Pay на сторінці $response['PaymentURL'] // автоматично, якщо картка покупця — МИР Payment Request API: кнопка МИР Pay на сайті
// Перевіряємо підтримку Payment Request API if (!window.PaymentRequest) { return; // fallback до стандартної форми } const mirMethod = { supportedMethods: 'https://pay.mir.ru/', }; const pr = new PaymentRequest( [mirMethod], { total: { label: 'Разом', amount: { currency: 'RUB', value: orderAmount.toFixed(2) }, }, } ); pr.canMakePayment().then(canPay => { if (canPay) { document.getElementById('mir-pay-btn').style.display = 'flex'; } }); document.getElementById('mir-pay-btn').addEventListener('click', async () => { const response = await pr.show(); const result = await fetch('/api/mir-pay-confirm.php', { method: 'POST', body: JSON.stringify({ details: response.details, orderId }), }); const data = await result.json(); response.complete(data.success ? 'success' : 'fail'); }); PHP-обробник токена МИР Pay
// local/api/mir-pay-confirm.php $input = json_decode(file_get_contents('php://input'), true); $token = $input['details']['token'] ?? ''; $orderId = (int)($input['orderId'] ?? 0); // Передаємо в Тинькофф (підтримує МИР Pay токени) $charge = tinkoffRequest('/v2/FinishAuthorize', [ 'TerminalKey' => TINKOFF_TERMINAL, 'PaymentId' => getPaymentIdByOrderId($orderId), 'CardData' => base64_encode($token), 'Token' => generateTinkoffToken([...], TINKOFF_SECRET), ]); if ($charge['Success']) { $payment = getBitrixPayment($orderId); $payment->setPaid('Y'); $payment->save(); echo json_encode(['success' => true]); } Які технічні складнощі виникають?
Найчастіша проблема — некоректна обробка токена МИР Pay при використанні власного еквайра. Наприклад, банк може не підтримувати FinishAuthorize з CardData. У такому випадку потрібно переходити на T-Pay SDK або налаштовувати двостадійний платіж. Друга складність — коректне визначення типу картки за BIN: не всі банки надсилають BIN у callback. Ми рекомендуємо підключати тестові картки МИР на етапі розробки (офіційний симулятор НСПК на Wikipedia).
Що входить до роботи
- Аналіз поточного стеку та вибір оптимального способу інтеграції.
- Налаштування платіжного шлюзу в 1С-Бітрікс (підключення модуля, еквайра).
- Реалізація кнопки МИР Pay на стороні клієнта через Payment Request API або SDK.
- Розробка серверної частини для роботи з токенами та 54-ФЗ.
- Тестування на тестових картках МИР у бойовому оточенні.
- Документація та передача доступів (адмінка, лог-файли).
- Гарантія 30 днів на коректну роботу платежів.
Типові помилки при інтеграції: BIN не розпізнається — перевірте список підтримуваних банків; токен закінчується — використовуйте одностадійний платіж або збільшуйте таймаут; фрейм не відображається — вимкніть блокувальники реклами або перевірте Content Security Policy.
Терміни
| Задача | Строк |
|---|---|
| Включення через існуючий еквайр | 0.5–1 день |
| Кастомна реалізація з Payment Request API | 2–4 дні |
| Тестування на тестових картках МИР | 0.5–1 день |
| Повний цикл (аналітика + реалізація + тест) | від 3 до 7 днів |
Брендинг МИР Pay
НСПК регламентує оформлення кнопки МИР Pay. Офіційні ресурси та логотипи — на mironline.ru. Кнопку не можна довільно перейменовувати або змінювати колірну схему.
Замовте інтеграцію МИР Pay з 1С-Бітрікс у нас. Отримайте консультацію по вашому проекту — ми оцінимо поточну інфраструктуру та запропонуємо оптимальне рішення під ключ.







