Інтеграція 1С-Бітрікс із платіжною системою iPay (Білорусь)

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс із платіжною системою iPay (Білорусь)
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Бітрікс з платіжною системою iPay (Білорусь)

iPay — білоруський платіжний агрегатор від компанії «Дежур», що працює на базі процесингу небанківської кредитно-фінансової організації. Шлюз підтримує картки Visa, Mastercard, Белкарт та платежі через ЄРІР. Для малого і середнього бізнесу в Білорусі iPay часто виступає альтернативою прямому підключенню до банків — зі спрощеною документацією та швидким onboarding.

Як працює iPay

iPay надає два варіанти інтеграції:

Hosted Payment Page — покупець перенаправляється на сторінку iPay, обирає спосіб оплати та платить. Магазин отримує сповіщення. Мінімальні вимоги до безпеки на стороні магазину — PCI DSS не потрібен.

API-інтеграція — дані картки приймаються формою на сайті магазину та передаються до iPay. Потребує PCI DSS або токенізації через JS-бібліотеку iPay.

Для більшості впроваджень на Бітрікс використовується Hosted Page як простіший і безпечніший варіант.

Ендпоінт: https://api.ipay.by/ (бойове середовище), https://sandbox.ipay.by/ (тест).

Технічна інтеграція з Бітрікс

Офіційного модуля iPay на Маркетплейсі Бітрікс немає. Реалізується як кастомний обробник у /local/php_interface/include/sale_payment/ipay_belarus/.

Ініціалізація платежу — POST-запит до /api/v1/payments:

{
  "shop_id": "YOUR_SHOP_ID",
  "order_id": "BXORDER_12345",
  "amount": 5990,
  "currency": "BYN",
  "description": "Замовлення №12345 у магазині Example",
  "success_url": "https://yourshop.by/thank-you/?order=12345",
  "fail_url": "https://yourshop.by/payment-error/?order=12345",
  "notify_url": "https://yourshop.by/bitrix/tools/sale_ps_result.php",
  "lang": "ru"
}

Сума передається в білоруських копійках (BYN × 100). iPay повертає payment_id та payment_url — на останній виконується редирект покупця.

Обробка сповіщень

iPay надсилає POST на notify_url при зміні статусу платежу. Тіло сповіщення:

{
  "payment_id": "ipay_txn_98765",
  "order_id": "BXORDER_12345",
  "status": "PAID",
  "amount": 5990,
  "currency": "BYN",
  "paid_at": "2024-06-15T14:32:11Z",
  "signature": "sha256_hash_here"
}

Верифікація підпису — SHA-256 від рядка payment_id + order_id + amount + currency + shop_secret. Без перевірки підпису будь-хто може надіслати фальшиве сповіщення про оплату.

Статуси: PAID (оплачено), FAILED (помилка), CANCELLED (скасовано), EXPIRED (сплинув термін).

Термін дії платіжної сесії

За замовчуванням iPay дає покупцю 15 хвилин на завершення оплати. Після закінчення сесія закривається зі статусом EXPIRED. У Бітрікс це означає, що обробник повинен вміти працювати з таймаутами: при отриманні EXPIRED — повідомити покупця та запропонувати нову спробу без створення дублюючого замовлення.

Термін можна збільшити до 60 хвилин через параметр expire_at у запиті створення платежу — корисно для B2B-замовлень, де рішення про покупку приймається довше.

Повернення через API

iPay підтримує повернення через API: POST до /api/v1/payments/{payment_id}/refund з параметрами amount (часткове або повне повернення) та reason. З адміністративної частини Бітрікс це можна реалізувати як кнопку «Повернення» на сторінці замовлення — метод ProcessRequestRefund обробника викликає API та оновлює статус платежу.

Реальний кейс: конфлікт з кешуванням сторінки

Білоруський інтернет-магазин дитячих товарів. Після успішної оплати через iPay покупці іноді бачили сторінку з реквізитами старого замовлення іншого користувача. Причина: сторінка «дякуємо за замовлення» кешувалася nginx, і при редиректі з success_url повертався кешований відповідь. Рішення: додати заголовок Cache-Control: no-store, no-cache для URL сторінок замовлення та переконатися, що параметр ?order= читається динамічно з Бітрікс-сесії, а не з URL.

Тестування

У тестовому середовищі iPay (sandbox.ipay.by) тестові картки публікуються в особистому кабінеті розробника. Для ЄРІР-оплати в тесті використовується емулятор — нотифікація приходить автоматично через 30 секунд після створення рахунку.

Терміни підключення: отримання тестового доступу — 1–2 дні. Розробка обробника — 2–3 дні. Бойове підключення з перевіркою документів компанії — 5–10 робочих днів.