Фраза «Нужно всего лишь подключить платёжную систему» чаще всего предшествует трёхнедельной задержке. Проблема редко заключается в программировании; обычно дело в учётной записи, одобрении и различиях между тестовой и рабочей средами.
Почему интеграция — это не маленькая задача
Подключение к внешнему сервису требует большего, чем просто вызов этого сервиса:
- Создание и проверка учётной записи у провайдера, часто с предоставлением документов компании.
- Одобрение или проверка перед предоставлением доступа к рабочей среде — особенно у платёжных провайдеров.
- Управление учётными данными отдельно для тестовой и рабочей сред.
- Обработка каждого возможного сбоя, который может возникнуть у провайдера: отклонение, тайм-аут, частичный успех, повторная отправка.
- Сверка — сопоставление сведений провайдера о произошедшем с данными, записанными вашим приложением.
- Тестирование в песочнице, которая ведёт себя иначе, чем рабочая среда.
Именно последние два пункта требуют основных усилий, но в списке функций это незаметно.
Сроки запуска: начинайте заранее
Это календарные задачи, а не задачи разработки, и их следует начинать в самом начале проекта:
- Платёжные провайдеры. Для подачи заявки на торговый счёт требуются регистрационные данные компании, банковские реквизиты, а иногда и проверка бизнес-модели. Это может занять от нескольких дней до нескольких недель, а для некоторых категорий бизнеса возможен отказ — стоит подтвердить возможность подключения до проектирования решения с расчётом на конкретного провайдера.
- Сервисы обмена сообщениями. SMS во многих странах требуют регистрации идентификатора отправителя и предварительного одобрения шаблонов, что является формальной процедурой с собственной очередью.
- Интеграции с платформами. Подключение к сформировавшейся экосистеме обычно требует подтверждённой учётной записи и может включать проверку того, как вы используете платформу.
- Корпоративные системы. Подключение к существующей системе клиента означает получение доступа, документации и тестовой среды от сторонней организации, сроки которой вы не контролируете. Обычно именно это становится самым длительным этапом.
Песочница — не рабочая среда
Тестовые среды упрощены. При запуске регулярно проявляются следующие различия:
- Ограничения частоты запросов в песочнице часто отсутствуют или являются мягкими, тогда как в рабочей среде они строгие.
- Задержка в песочнице ниже, поэтому тайм-ауты, которые никогда не возникали при тестировании, появляются в рабочей среде.
- Разнообразие ошибок уже: песочницы создают несколько сценариев, тогда как в рабочей среде их гораздо больше.
- Проверка данных в песочнице иногда менее строгая, поэтому реальные данные отклоняются по причинам, которые тестирование не выявило.
Практическое решение — провести проверку в рабочей среде перед запуском: выполнить небольшое количество реальных транзакций с настоящими учётными данными и проверить весь процесс от начала до конца, включая сверку.
Проектирование с учётом неизбежных сбоев
Внешняя зависимость в какой-то момент окажется недоступной. Что должно произойти в таком случае — это решение, которое нужно принять при проектировании, а не случайность:
- Действие пользователя завершается ошибкой или ставится в очередь? Платёж должен быть явно отклонён. Уведомление можно поставить в очередь и повторить попытку.
- Что видит пользователь? Конкретное сообщение намного лучше общего сообщения об ошибке и снижает нагрузку на службу поддержки.
- Безопасно ли повторить операцию? API платежей и обмена сообщениями обычно поддерживают ключ идемпотентности, благодаря которому повторный запрос не приводит к двойному списанию. Его использование обязательно для любых операций, связанных с деньгами.
- Как вы об этом узнаете? Ошибки интеграции следует записывать в журнал и передавать в систему оповещений, а не незаметно игнорировать.
Версионирование и изменение, которого вы не внесли
Провайдеры меняют свои API. О версиях, выводимых из эксплуатации, заранее уведомляют, причём уведомление приходит по электронной почте тому, кто зарегистрировал учётную запись, — это ещё одна причина, по которой учётная запись должна принадлежать клиенту.
Две привычки помогают предотвратить последующий сбой: закрепляйте конкретную версию API, а не отслеживайте последнюю версию автоматически, и убедитесь, что уведомления учётной записи поступают человеку, который сможет принять меры. Если интеграция перестала работать из-за вывода устаревшей версии из эксплуатации по заранее опубликованному графику, это предотвратимый сбой.
Стоимость
Сторонние сервисы обычно взимают плату за использование, и для небольшого приложения это часто становится крупнейшей регулярной статьёй расходов. До принятия решения стоит выяснить:
- Модель ценообразования — за транзакцию, сообщение, вызов API или активного пользователя.
- Есть ли бесплатный тариф и что происходит после достижения его лимита.
- Как изменится стоимость при десятикратном росте текущего использования.
- Есть ли минимальные объёмы или обязательства по ежемесячной оплате.
Интеграция с AI или сервисом обмена сообщениями, недорогая при объёме пилотного проекта, при масштабировании может стать основной операционной статьёй расходов. Если выяснить это заранее, возможно, выбор провайдера изменится.
Связанные услуги Manboo
- Разработка приложений на Flutter для MVP под iOS и Android.
- Разработка бизнес-программного обеспечения для CRM, систем бронирования, учёта запасов и управления рабочими процессами.
- Разработка административных панелей для операционных информационных панелей и управления серверной частью.
- Интеграция AI API, когда ваш продукт готов к интеллектуальному поиску, чату или автоматизации.
- Запросить оценку объёма работ и проекта, когда вы готовы спланировать первую версию.
