Системный аналитик Intaro Кристина о том, как создавать эффективные интеграции и на что обратить внимание при проектировании. Внутри — чек-лист для самопроверки.
В этой статье мы также обсудим, стоит ли использовать готовые модули или лучше разработать собственное решение.
Кредиты/рассрочки:
Теперь обсудим варианты настройки интеграции платежных систем с вашими системами.
При интеграции платежной системы и в других подобных задачах необходимо выбрать между готовым интеграционным решением и разработкой индивидуального. Готовые решения могут обеспечить быстрый запуск и уменьшение первоначальных расходов, однако они также могут влечь за собой риски и ограничения. Интеграционные модули не всегда доступны публично, поэтому не стесняйтесь обращаться к представителям платежной системы за информацией о наличии подходящих решений.
Чтобы принять решение, важно составить перечень требований к интеграционному модулю. Это позволит оценить, насколько хорошо готовое решение соответствует специфике проекта. Требования могут включать:
Если вы склоняетесь к использованию готового интеграционного модуля, необходимо учитывать потенциальные риски и недостатки:
При необходимости кастомизации модуля, важно оценить свои ресурсы и возможности:
Далее мы подробнее рассмотрим создание собственного интеграционного модуля. Обсудим различные подходы к взаимодействию между системами, рассмотрим вопросы, на которые следует обратить особое внимание, а также выявим перечень настраиваемых параметров модуля.
Интеграционный контур может быть выстроен по нескольким принципам:
Рассмотрим подробнее каждый принцип.
Самая упрощенная схема взаимодействия, когда у вас есть только одна система, которая будет обрабатывать платежи. В таком случае, интеграционный контур выглядит следующим образом:
Здесь представлены 3 ключевых типа операций:
На изображении могут быть отмечены не все потоки данных, так как они могут меняться в зависимости от документации платежных систем и требований к бизнес-процессам.
А как быть, если в контуре несколько систем, в которых должна быть реализована возможность оплаты, но, при этом, построить полную интеграцию нужно только в одной из систем?
Рассмотрим следующий подход, когда в интеграционном контуре «Система 2...N» представляет собой набор систем (CMS, OMS, мобильное приложение), каждая из которых обладает функциональностью инициации оплаты заказа. При таком подходе «Система 2..N» производят сбор и передачу данных для оплаты в «Систему 1», которая, в свою очередь, интегрирована с платежной системой.
Процесс обработки оплаты выглядит следующим образом:
Важно отметить, что при таком подходе «Система 1» может действовать как микросервис, интегрированный с различными платежными системами, и обеспечивать централизованную обработку платежей для всех систем 2...N. Микросервис для платежных систем представляет собой независимый компонент, который специализируется на определенной функциональности — обработке платежей.
Плюсы
Минусы
Если минусы критичны, предлагаем рассмотреть другой вариант, когда интеграция с платежными сервисами строится в нескольких системах или платежная система предоставляет виджет или SDK для инициализации платежа.
В нашем случае, системы 2...N могут сами сформировать заявку на оплату и переадресовать пользователя в платежную систему для оплаты заказа или производят оплату с помощью виджета. В системе 1 происходит обработка заказа (OMS система) и все следующие обмены данными по заказу и оплате происходят в ней.
Процесс обработки заказа выглядит следующим образом:
Плюсы
Минусы
Требования к интеграции с платежными системами могут отличаться в зависимости от выбранного типа оплаты, который планируется внедрить. В своей работе мы группируем их по нескольким типам:
СБП;
Интернет-эквайринг;
Платежные агрегаторы;
Электронные кошельки.
Кредиты от банков и брокеров;
Оплата частями.
Рассрочки от банков и брокеров.
В нашей работе мы часто создаем интеграционные модули для процесса оплаты. Интеграционный модуль представляет собой ключевой компонент, который мы разрабатываем, чтобы настроить взаимодействие между различными системами согласно определенным настройкам. Это позволяет системам успешно обмениваться данными и взаимодействовать друг с другом в рамках процесса оплаты. Настройки могут отличаться в зависимости от платежной системы и системы, в которую мы интегрируем модуль, но основные этапы работ:
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
13261 тендер
проведено за восемь лет работы нашего сайта.
В следующих разделах мы подробнее рассмотрим список вопросов, на которые необходимо обратить внимание при проектировании собственного интеграционного модуля, а также возможный список настроек модуля.
Интеграция предполагает настройку основных процессов по созданию/отмене и возврате платежей. В данной группе оплат прорабатываются базовые вопросы и требования.
Вопросы, которые необходимо проработать:
На одном из наших проектов при использовании платежной системы «Долями» мы столкнулись с подобной проблемой: если покупатель уже имел одну неоплаченную заявку и мы инициировали создание новой, первая заявка автоматически отклонялась системой. Это приводило к автоматической отмене заказов из-за отсутствия оплаты. Чтобы решить этот вопрос, нам пришлось разработать дополнительную логику, которая позволяла выявлять неоплаченные заказы в системе «Долями» и делать данный тип оплаты недоступным для покупателей.
Минимальный список настроек в интеграционном модуле
Представим, что у нас в платежной системе есть несколько статусов оплаты: «Ожидает оплаты» с символьным кодом «new», «Завершена» с символьным кодом «completed» и «Отклонена» с символьным кодом «Declined». У нас в системе есть два статуса оплаты, это оплачен с символьным кодом «paid» и не оплачен «not paid». Мы по своим процессам понимаем, что только для статуса «Завершена» в заказе должен присваиваться статус оплаты «Оплачен», а в остальных случаях заказ считается неоплаченным и в обработку дальше не идет.
Теперь разберемся со статусами заказа. Представим, что у нас автоматическая смена статусов должна происходить по заказу и смена статусов зависит от статуса оплаты. Для оплаченных заказов, по нашим бизнес-процессам, заказ должен отправляться на сборку и в нашей системе это статус заказа «Требуется сборка».
При проработке интеграций с банками-кредиторами, банками-агрегаторами и банками, принимающими оплату по частям, важно учитывать вопросы и настройки модуля, описанные в разделе с интеграцией для первой группы платежных систем. Кроме того, необходимо учитывать дополнительные детали, описанные ниже.
Вопросы, которые необходимо проработать:
К примеру, банк установил предел в 100 000 рублей как максимально допустимую сумму для кредитной покупки, тогда как ваш клиент сделал заказ на сумму 105 000 рублей. В таком случае банк немедленно откажет в кредитовании, из-за чего покупатель может остаться недоволен из-за невозможности оплатить покупку кредитом. Чтобы предотвратить подобную ситуацию, можно предусмотреть введение ограничений, которые будут исключать кредитный способ оплаты для покупателя при превышении установленной суммы заказа или заблокировать возможность выбора этого способа оплаты для сотрудников-операторов.
Минимальный список настроек в интеграционном модуле
Дополнительных настроек в модуле вводить не требуется, достаточно общих настроек, описанных в группе 1.
В рамках рассрочки гораздо больше подводных камней, чем с другими типами оплат, все они связаны с тем, что процент за рассрочку платит продавец, а не покупатель. Аналогично с предыдущим пунктом, важно учитывать вопросы и настройки модуля, описанные в разделе с интеграцией для первой и второй группы платежных систем. Кроме того, необходимо учитывать дополнительные детали, описанные ниже.
Вопросы, которые необходимо проработать:
Что нужно выяснить и согласовать в рамках данного блока вопросов:
Рассмотрим пример:
В заказ добавлен товар А с ценой 73879 рублей в количестве 2 штуки и товар Б с ценой 320 рублей в количестве 9 штук. Скидка на рассрочку по заказу составляет 9%. Логика округления в системе настроена следующим образом:
- скидка считается на каждый товар отдельно – округление скидки идет в пользу продавца, т.е. скидка округляется в меньшую сторону
Произведем расчет скидки на товар с учетом настроенного округления:
Для товара А:
73879 * 9 ÷ 100 = 6 649,11 округляем до 6649 - это цена одного товара с учетом скидки по рассрочке и логики округления.(73879 - 6649) * 2 = 134460 - стоимость товара в заказе с рассрочкой.
Для товара Б:
320 * 9 ÷ 100 = 28(320 - 28) * 3 = 876
Сумма
134460 + 876 = 135336
Минимальный список настроек в интеграционном модуле
В дополнение к базовым настройкам, упомянутым в 1 группе, для управления рассрочками рекомендуем вывести параметр настройки, где будут указываться длительность рассрочки в месяцах и процентная ставка. При работе с брокером, который взаимодействует с различными банками, имеющими свои условия кредитования, целесообразно детализировать эту настройку для каждого банка отдельно.
Успешная интеграция требует глубокого понимания как технических аспектов, так и бизнес-процессов. От выбора между готовым модулем и разработкой собственного решения до проработки деталей интеграционного контура и управления рисками – каждый шаг имеет значение.
Ключ к эффективной интеграции лежит через тщательное планирование, учет индивидуальных потребностей проекта и гибкость в принятии решений. В конечном счете, правильно выполненная интеграция не только оптимизирует процессы оплаты, но и вносит значительный вклад в удовлетворенность клиентов и финансовую стабильность компании.
А чтобы ничего не упустить при проработке интеграции, держите чек-лист для самопроверки. Он является скорее отправной точкой, чем исчерпывающим руководством. В зависимости от специфики ваших проектов и процессов, этот список может потребовать дополнений или изменений.