Интеграции со сторонними сервисами: что нужно определить в первую очередь

By Manboo Studio4 min read
Запросить оценку проектаWhatsApp
Интеграции со сторонними сервисами: что нужно определить в первую очередь

Фраза «Нужно всего лишь подключить платёжную систему» чаще всего предшествует трёхнедельной задержке. Проблема редко заключается в программировании; обычно дело в учётной записи, одобрении и различиях между тестовой и рабочей средами.

Почему интеграция — это не маленькая задача

Подключение к внешнему сервису требует большего, чем просто вызов этого сервиса:

  • Создание и проверка учётной записи у провайдера, часто с предоставлением документов компании.
  • Одобрение или проверка перед предоставлением доступа к рабочей среде — особенно у платёжных провайдеров.
  • Управление учётными данными отдельно для тестовой и рабочей сред.
  • Обработка каждого возможного сбоя, который может возникнуть у провайдера: отклонение, тайм-аут, частичный успех, повторная отправка.
  • Сверка — сопоставление сведений провайдера о произошедшем с данными, записанными вашим приложением.
  • Тестирование в песочнице, которая ведёт себя иначе, чем рабочая среда.

Именно последние два пункта требуют основных усилий, но в списке функций это незаметно.

Сроки запуска: начинайте заранее

Это календарные задачи, а не задачи разработки, и их следует начинать в самом начале проекта:

  1. Платёжные провайдеры. Для подачи заявки на торговый счёт требуются регистрационные данные компании, банковские реквизиты, а иногда и проверка бизнес-модели. Это может занять от нескольких дней до нескольких недель, а для некоторых категорий бизнеса возможен отказ — стоит подтвердить возможность подключения до проектирования решения с расчётом на конкретного провайдера.
  2. Сервисы обмена сообщениями. SMS во многих странах требуют регистрации идентификатора отправителя и предварительного одобрения шаблонов, что является формальной процедурой с собственной очередью.
  3. Интеграции с платформами. Подключение к сформировавшейся экосистеме обычно требует подтверждённой учётной записи и может включать проверку того, как вы используете платформу.
  4. Корпоративные системы. Подключение к существующей системе клиента означает получение доступа, документации и тестовой среды от сторонней организации, сроки которой вы не контролируете. Обычно именно это становится самым длительным этапом.

Песочница — не рабочая среда

Тестовые среды упрощены. При запуске регулярно проявляются следующие различия:

  • Ограничения частоты запросов в песочнице часто отсутствуют или являются мягкими, тогда как в рабочей среде они строгие.
  • Задержка в песочнице ниже, поэтому тайм-ауты, которые никогда не возникали при тестировании, появляются в рабочей среде.
  • Разнообразие ошибок уже: песочницы создают несколько сценариев, тогда как в рабочей среде их гораздо больше.
  • Проверка данных в песочнице иногда менее строгая, поэтому реальные данные отклоняются по причинам, которые тестирование не выявило.

Практическое решение — провести проверку в рабочей среде перед запуском: выполнить небольшое количество реальных транзакций с настоящими учётными данными и проверить весь процесс от начала до конца, включая сверку.

Проектирование с учётом неизбежных сбоев

Внешняя зависимость в какой-то момент окажется недоступной. Что должно произойти в таком случае — это решение, которое нужно принять при проектировании, а не случайность:

  • Действие пользователя завершается ошибкой или ставится в очередь? Платёж должен быть явно отклонён. Уведомление можно поставить в очередь и повторить попытку.
  • Что видит пользователь? Конкретное сообщение намного лучше общего сообщения об ошибке и снижает нагрузку на службу поддержки.
  • Безопасно ли повторить операцию? API платежей и обмена сообщениями обычно поддерживают ключ идемпотентности, благодаря которому повторный запрос не приводит к двойному списанию. Его использование обязательно для любых операций, связанных с деньгами.
  • Как вы об этом узнаете? Ошибки интеграции следует записывать в журнал и передавать в систему оповещений, а не незаметно игнорировать.

Версионирование и изменение, которого вы не внесли

Провайдеры меняют свои API. О версиях, выводимых из эксплуатации, заранее уведомляют, причём уведомление приходит по электронной почте тому, кто зарегистрировал учётную запись, — это ещё одна причина, по которой учётная запись должна принадлежать клиенту.

Две привычки помогают предотвратить последующий сбой: закрепляйте конкретную версию API, а не отслеживайте последнюю версию автоматически, и убедитесь, что уведомления учётной записи поступают человеку, который сможет принять меры. Если интеграция перестала работать из-за вывода устаревшей версии из эксплуатации по заранее опубликованному графику, это предотвратимый сбой.

Стоимость

Сторонние сервисы обычно взимают плату за использование, и для небольшого приложения это часто становится крупнейшей регулярной статьёй расходов. До принятия решения стоит выяснить:

  • Модель ценообразования — за транзакцию, сообщение, вызов API или активного пользователя.
  • Есть ли бесплатный тариф и что происходит после достижения его лимита.
  • Как изменится стоимость при десятикратном росте текущего использования.
  • Есть ли минимальные объёмы или обязательства по ежемесячной оплате.

Интеграция с AI или сервисом обмена сообщениями, недорогая при объёме пилотного проекта, при масштабировании может стать основной операционной статьёй расходов. Если выяснить это заранее, возможно, выбор провайдера изменится.

Связанные услуги Manboo

Запрос оценки проекта

Опишите цель продукта, текущий процесс, целевые платформы, ограничения и сроки решения. Мы оценим объём и предложим практичный следующий шаг.

Интеграции со сторонними сервисами: что нужно определить в первую очередь

Добавить требования к проекту (необязательно — для оценки объёма и стоимости)
Мы используем эти данные только для рассмотрения и ответа на ваш запрос по проекту. Ознакомьтесь с политикой конфиденциальности. Пожалуйста, не отправляйте пароли и секретные ключи API.