Інтеграція платіжної системи iPay у мобільний застосунок

Платежі в застосунку — точка, де втрачається виручка: клієнт не завершує оплату, а замовлення зависає. Ми налаштовуємо інтеграцію iPay під ключ: розбираємо платіжний контур, усуваємо збої та передаємо замовнику робочі регламенти. Термін і склад робіт фіксуємо заздалегідь.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція платіжної системи iPay у мобільний застосунок
Середній
~2-3 дні
Часті запитання

Інтеграція iPay: де обривається оплата в мобільному застосунку

Інтеграція iPay — це не екран «Оплатити», а узгодженість трьох сторін: застосунку, платіжного сервісу та вашої серверної частини.

Платіж вважається успішним лише тоді, коли всі три бачать той самий статус, і майже будь-який збій оплати в застосунку виникає на стику між ними, а не в самій формі введення картки.

Найдорожчий збій — подвійне списання. Користувач не дочекався відповіді на слабкій мережі, натиснув «Оплатити» повторно, і запит перетворився на окрему операцію: захист від повторів або не закладено, або прив’язано до сесії, яка на той момент уже перестворена.

Втрата вебхука виглядає тихіше, але б’є боляче. Підтвердження від iPay не дійшло — через таймаут, перезапуск сервісу або відкинутий вхідний запит — і замовлення залишається в статусі «очікує оплати», хоча гроші в клієнта вже списано. Далі ручні звірки, звернення до підтримки та повернення.

За нестабільного зв’язку проявляється третій клас — завислий статус платежу. Застосунок закрився раніше, ніж отримав відповідь, а під час наступного запуску не знаходить локального замовлення, тому операція існує, але не прив’язана до користувача і не видна йому в історії.

Усі три збої лікуються на рівні архітектури: ключі ідемпотентності, повторна доставка повідомлень із підтвердженням, планова звірка статусів і сервер як єдине джерело правди. Розбираємо, як це закривається.

Що змінюється після коректної інтеграції iPay

Зміни видно не в інтерфейсі, а в цифрах: скільки оплат доходить до кінця, як швидко система відновлюється після збою і які звернення до підтримки зникають.

Частка доведених оплат

Граничні часи очікування відповіді, повтори запитів і розбір кодів помилок прибирають хибні відмови: клієнт отримує підтвердження за фактом списання, а не «платіж в обробці».

На практиці частка успішних оплат піднімається з 80–85% до 95%+ і тримається на цьому рівні без ручного втручання підтримки.

Повтор не перетворюється на подвійне списання

Кожній операції присвоюється унікальний ключ, тому повтор під час обриву зв’язку не створює друге списання — замовлення проходить рівно один раз, скільки б разів клієнт не натиснув кнопку. Клас звернень «списали двічі» та ручні звірки за ними зникають.

Відновлення після збою

Черга невідправлених операцій і повтор із наростаючою затримкою дають дочекатися iPay, а не втратити замовлення. Час відновлення після недоступності скорочується з годин ручних правок до хвилин автоматичного дозапуску — бухгалтерія просто бачить підсумкову звірку.

Повернення та сторно без ручної роботи

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

Схеми підключення iPay: вибір режиму під задачу

Спосіб приймання оплати визначає не лише екран оплати, а й те, які сценарії застосунок закриє без перероблення.

Один варіант тягне підписні платежі з автоматичним продовженням, інший — разові списання, третій потрібен там, де вбудована оплата всередині застосунку обмежена правилами магазину. Нижче — чотири схеми, між якими реально обирають під час підключення iPay.

Варіант Коли підходить Обмеження
Вбудована оплата всередині застосунку Підписки та разові покупки цифрового контенту Комісія магазину; системний екран оплати замість свого
Підписні платежі через шлюз Регулярний виторг, свої правила продовження та пауз Потрібно зберігати згоду на списання та обробляти відмови
Разові списання за платіжним посиланням Поповнення балансу, оплата разового доступу Користувач переходить у браузер, частина оплат губиться на поверненні
Оплата на стороні бізнесу Послуги та товари поза цифровим контентом Потрібна зв’язка акаунтів, інакше статус не дійде до застосунку

Вибір диктує модель монетизації: підписка потребує збереженої згоди на рекурентні списання та обробки невдалих спроб, разові покупки — швидкого повернення користувача в застосунок.

Змішувати схеми можна, але стан оплати має бути єдиним, інакше частина користувачів оплатить двічі й прийде до підтримки.

Етапи робіт: від аудиту платіжного контуру до передачі

Роботу починаємо з аудиту платіжного контуру: розбираємо, які екрани ініціюють оплату, де зберігаються ідентифікатори замовлень і як застосунок дізнається про результат платежу.

Окремо перевіряємо поведінку під час закриття застосунку посеред операції та під час обриву зв’язку — саме ці сценарії найчастіше дають списання без зарахування.

За підсумками аудиту з’являється схема оплати: послідовність викликів, точки повернення в застосунок і правила обробки відмов.

  1. Аудит платіжного контуру. Інвентаризація місць виклику оплати, розбір поточних статусів замовлень і журналу невдалих платежів — фіксуємо, де саме губляться операції.
  2. Схема оплати. Узгоджуємо послідовність кроків, склад обов’язкових даних замовлення та поведінку екрана при відмові — до написання коду.
  3. Налаштування інтеграції. Підключаємо iPay, описуємо розбір відповідей платіжної системи, повторні спроби та повторний вхід в оплату після збою.
  4. Перевірка сценаріїв. Проганяємо успішну оплату, відмову, скасування користувачем, обрив зв’язку, повторний платіж і повернення — у тестовому середовищі та на реальних операціях.
  5. Дослідна експлуатація. Дивимося логи перших днів на реальному трафіку й правимо рідкісні поєднання умов, які не відтворюються на стенді.
  6. Приймання та передача. Показуємо замовнику журнал проведених перевірок і передаємо карту платіжних статусів, інструкцію для підтримки та порядок розбору спірних операцій.

Ми не закриваємо етап, доки не розібрано всі відхилення від очікуваної поведінки. Після передачі залишається інструкція, за якою підтримка відрізняє збій на стороні платіжної системи від помилки в застосунку — без звернення до розробника.

Що залишається у замовника: конфігурації та регламенти

Інтеграція вважається завершеною не в момент, коли оплата проходить у тестовому сценарії, а коли через пів року її можна змінювати без археології по коду.

Тому кожен етап закривається артефактами, які залишаються у вашому контурі: їх читає новий розробник, ними користується підтримка, на них спирається аудит. Нижче — мінімальний набір, який ми передаємо разом із iPay.

  • Конфігурація інтеграції — єдиний опис параметрів: розділення тестового й бойового контурів, ключі мерчанта та порядок їх ротації, таймаути запитів, підтримувані методи оплати та валютні пари. Не в листуванні, а у файлі поруч із проєктом.
  • Схема потоків оплати — шлях від натискання «Оплатити» до підтвердження, включно з успіхом, скасуванням користувачем, відмовою банку та повторною спробою. Для кожної гілки зазначено, який статус отримує замовлення і що бачить користувач.
  • Політики доступу — хто із співробітників бачить і змінює ключі, де зберігаються секрети, як видаються й відкликаються права, що відбувається, коли людина йде з команди.
  • Документація — словник статусів і кодів відповіді, поведінка застосунку за кожного з них, порядок додавання нової платіжної гілки.
  • Регламент розбору збоїв — які дані знімаються з пристрою та із сервера, за якою ознакою відрізняємо відмову оплати від мережевої чи клієнтської проблеми, кому й як швидко ескалюється.
  • Приймальний чек-ліст — сценарії, які проганяються перед кожним релізом: повернення, повторна оплата, обрив зв’язку в середині операції.

Комплект живе у вашому репозиторії та оновлюється разом із кодом — за ним можна передати супровід іншій команді або розширювати інтеграцію своїми силами.

Розбір збою оплати: як скоротили завислі замовлення втричі

Клієнт прийшов із симптомом: користувачі скаржаться, що гроші списано, а замовлення не оформлено.

Частка успішних оплат трималася близько 89%, і щотижня підтримка вручну розбирала десятки завислих замовлень — доки платіж висить у невизначеному статусі, ні видача товару, ні повернення не запускаються.

Розбір показав: застосунок вважав оплату успішною за відповіддю на своїй стороні, а не за підтвердженням від iPay. Під час закриття екрана, обриву зв’язку або виходу користувача підтвердження губилося, і замовлення залишалося завислим. Повторну обробку повідомлень не вмикали через дублі — вона давала друге замовлення замість одного.

Що змінили в інтеграції

  • Підтвердження оплати перевели на серверну звірку зі шлюзом: статус замовлення змінюється лише за підтвердженою подією.
  • Зробили ідемпотентну обробку повторів — одне списання не перетворюється на два замовлення.
  • Завели журнал станів платежу з фоновою звіркою: розходження спливають самі, а не через скарги користувачів.
  • Додали автоповтор для замовлень у невизначеному статусі та оповіщення чергового при відхиленнях.

Через місяць після релізу частка успішних оплат зросла з 89% до 99,2%, кількість завислих замовлень скоротилася втричі. Час відновлення впав із 40 хвилин ручного розбору до кількох хвилин автоматичної добудови статусу — інженер підключається лише за реального розходження звірки.

Чим відрізняється оплата в застосунку від оплати на сайті?

На сайті платіж іде напряму через еквайринг: користувач вводить картку, банк підтверджує списання, сервер отримує повідомлення й відкриває доступ.

У застосунку гроші приймає магазин, а клієнт отримує лише підтвердження покупки — доступ відкривається після перевірки на стороні магазину.

Перевірки магазинів — головна відмінність. Кожна покупка приходить із підписаною квитанцією, і до її валідації видавати платний контент не можна: підмінена відповідь зміненого клієнта інакше відкриває підписку безкоштовно. Сервер зобов’язаний приймати квитанції та коректно відпрацьовувати повторні повідомлення магазину.

Відновлення підписок влаштовано інакше. Магазин віддає список активних покупок за обліковим записом, а не за пристроєм: після перевстановлення застосунку або зміни телефона підписку повертають запитом до магазину та звіркою з внутрішнім обліком — без повторної оплати.

Прив’язка пристрою додає ще один шар. На сайті доступ прив’язано до акаунта й пошти, у застосунку — до облікового запису магазину, який активний одразу на кількох пристроях.

Щоб людина не отримала два незалежні доступи й не втратила оплачене під час зміни платформи, покупку прив’язують до внутрішнього ідентифікатора користувача, а інтеграція iPay слугує єдиним реєстром прав.

Підсумок: логіка підписки живе в одному місці, а магазин і сайт лише постачають до нього підтверджені події. Тоді оплата з телефона та зі сторінки сходиться в один статус, і користувач не платить двічі.

Часті технічні сумніви щодо інтеграції iPay

Сумніви на старті зазвичай одні й ті самі: що робити з уже працюючим контуром оплати, як поводитимуться клієнти в метро, роумінгу та на поганому зв’язку, чим підтверджується надійність до публікації в магазинах застосунків. Нижче — короткі відповіді на ті, що найчастіше спливають на зустрічі.

У нас уже працює платіжний контур — усе переписувати?

Ні. Новий спосіб оплати підключається поруч зі старим: екрани замовлення та кошика залишаються, змінюється лише шар звернення до платіжного сервісу.

Старий контур продовжує приймати платежі, доки у звітах за новим не залишиться жодної операції — після цього його вимикаємо окремим кроком.

Що бачить клієнт за слабкого інтернету або обриву зв’язку?

Запит ставиться в локальну чергу й повторюється з наростаючою паузою, а на екрані відображається стан «платіж обробляється» замість помилки. Коли зв’язок повертається, застосунок досилає запит і підтягує актуальний статус замовлення — клієнт не втрачає оплату й не оплачує двічі.

Як перевіряється надійність до публікації?

На тестовому контурі відтворюємо відмови: обрив з’єднання в середині оплати, відповідь сервісу із затримкою, повторний запуск застосунку в момент операції, тривалу відсутність мережі. Далі — прогін на реальних пристроях і звірка журналів операцій зі станом замовлень.

Чи можна перейти без простою для клієнтів?

Так, перемикання йде частками користувачів: частина аудиторії працює через новий контур, частина — через попередній. Частка зростає за метриками успішних оплат, а відкат зводиться до повернення попереднього значення, без зупинки застосунку й без попереджень клієнтам.

Як обробляються повторні натискання «Оплатити»?

Кожній спробі присвоюється ідентифікатор операції, і повтор із тим самим ідентифікатором розпізнається як та сама операція — друге списання не проходить. Клієнт зрештою бачить одне замовлення й один платіж, а розходження розбираються за журналами, а не руками через підтримку.

Обговоримо задачу й повернемося з оцінкою та планом

Щоб повернутися з оцінкою робіт, а не загальними словами, нам достатньо ввідних по суті: платформа застосунку, які сценарії оплати вже закрито в iPay, як влаштовано бекенд і чи є у провайдера тестовий контур.

Якщо інтеграції ще немає — опишіть, що має відбуватися під час підписки, разової покупки та повернення; цього вистачить для першої оцінки. Оцінку готують інженери, які потім ведуть впровадження, тому спірні місця спливають на етапі розбору, а не в середині робіт.

За підсумком розбору ви отримуєте:

  • склад робіт — які модулі зачіпаємо в застосунку та на сервері, що залишається без змін;
  • план впровадження за етапами: тестовий контур, реалізація, перевірки, випуск у магазини;
  • строки етапів із позначкою, що залежить від відповідей платіжного провайдера та модерації;
  • оцінку робіт окремо за кожним етапом, щоб можна було рухатися частинами, а не цілком;
  • схему обробки колізій: повторні списання, скасування, повернення, обрив зв’язку в момент оплати;
  • перелік доступів, ключів і даних, які потрібні від вас для старту.

Опишіть задачу в зручному вигляді — листування, короткий дзвінок або доступ до репозиторію. Повернемося з оцінкою та планом впровадження, а невирішені питання щодо інтеграції закриємо до початку робіт.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714