Интеграция платежных систем что это
Как выбрать и интегрировать платежную систему в сайт и/или приложение? Ч. 1
Вне зависимости от того, являетесь вы небольшим бизнесом или огромной eCommerce платформой, существует необходимость принимать и обрабатывать платежи от своих клиентов. На первый взгляд, прием онлайн-платежей может показаться сложным процессом и потребовать много усилий (создание учетной записи продавца, усиление безопасности платежей и защита от мошенничества, наличие сертификата безопасности и т.д). Но это всё может не потребоваться, если вы пользуетесь платежной системой, которая осуществляет все транзакции.
Во время выбора платежной системы в первую очередь стоит понимать, что она должна соответствовать требованиям и нуждам как вашего бизнеса, так и ваших клиентов. Поэтому процесс обработки платежа должен быть безопасным, удобным, простым и быстрым, а также поддерживающим разные методы оплаты и подходящим для вашей платформы или мобильного приложения. Неверный выбор приведет к ошибкам в системе, сбоям в платежах и потере клиентов. Давайте разберемся, как этого избежать!
Как работает платежная система?
В то время как для покупателя процесс оплаты представляет собой просто заполнение формы, за ней стоят несколько учреждений и сервисов, обрабатывающих платеж в несколько секунд. Для большего понимания последовательности этого процесса и места платежной системы в нем, предлагаем изучить иллюстрацию.
Какие критерии определяют выбор платежной системы?
Разобравшись с тем, что такое платежные системы и какие функции они выполняют, пора понять, как они отличаются и как выбрать подходящую для вашего бизнеса. Ниже представлены критерии, которые стоит учесть при выборе:
География. Никто не знает ваш рынок и индустрию так же хорошо, как вы. Поэтому вы должны проверить представленность системы в странах дистрибуции, а также в стране регистрации вашего бизнеса. Также не забывайте учитывать возможное расширение на другие рынки и страны.
Поддерживаемые платформы. В большинстве случаев платежные системы могут быть интегрированы и в сайт, и в мобильное приложение, но некоторые специализируются на одной платформе. Если вы используете несколько платформ, убедитесь, что платежная система подойдет для каждой. Также изучите возможности кастомизации для идеальной синхронизации.
Метод интеграции. Данный критерий определяет, насколько безопасной, быстрой и совместимой с вашей платформой будет платежная система, и включает следующие типы:
хостинговая (все процессы выполняются и контролируются платежной системой, все данные также принадлежат сервису; вы не отвечаете за контроль над процессами и безопасность, получаете меньше конверсий, так как покупатели покидают ваш сайт во время перехода в систему; тем не менее, данный вариант может подойти малому бизнесу)
Direct Post (система интегрируется в вашу платформу с помощью API, но данные хранятся на сервере сервиса; вы получаете полную кастомизацию, но из-за отправки данных системе этот метод не считается безопасным);
нехостинговая, или интегрированная (вы получаете полный контроль и кастомизацию; покупатели не покидают вашу платформу для оплаты, поэтому все данные хранятся на вашем сервере; из-за сбора большого кол-ва данных покупателей, чаще всего безопасность вашей платформы должна быть подтверждена PCI DSS сертификацией, а также вам потребуется помощь разработчиков для интеграции системы с помощью API).
Платежи и комиссии. Каждая платежная система взимает комиссии, так как в процессе используются инструменты третьих сторон для обработки и авторизации платежей. Это может включать плату за установку, ежемесячный платеж, комиссию за транзакцию, комиссию за международную транзакцию и др. Выбирайте систему с подходящими для вашего бизнеса затратами, а также внимательно изучайте документацию для избежания скрытых платежей.
Поддерживаемые методы оплаты и валюты. Убедитесь в том, что выбранная платежная система поддерживает популярные (особенно в вашей стране и индустрии) методы оплаты: кредитные/дебетовые карты (например, Visa, MasterCard, AmericanExpress) и электронные кошельки (например, ApplePay, Alipay, WeChat Pay). Если ваша платформа является международной, вам также потребуется мультивалютная поддержка. Некоторые платежные системы обрабатывают более 100 валют и даже криптовалюты.
Документация и служба поддержки. Этот момент является наиболее важным для вашей команды разработчиков. Если вы хотите, чтобы система была интегрирована быстро и идеально работала с вашей платформой, выберите ту, которая предлагает понятно описанные гайды по интеграции и оказывает постоянную поддержку. Уверены, что вы не хотите получить кучу ошибок во время обработки платежей из-за неверной документации или же ждать подтверждения от службы поддержки неделю
Разрешенный тип продукта. Некоторые системы поддерживают оплату только за физические продукты или только за цифровые продукты. Чтобы быть 100% уверенным, что ваш тип продукта поддерживается, лучше перепроверить данную информацию, прежде чем начать работать с определенной платежной системой.
Если некоторые детали описанного не совсем понятны или ваш нужна помощь в выборе платежной системы или ее интеграции, команда Fingers Media готова поделиться опытом и подобрать лучшее для вашего бизнеса решение.
Наш опыт: Stripe, Hipay, Ixopay
Для того, чтобы у вас сложилось более четкое представление об основных функциях платежных систем и как они могут отличаться, мы кратко расскажем о тех, которые мы чаще всего использовали с нашими европейскими заказчиками: Stripe, Hipay, Ixopay.
Stripe
Доступные страны: 30+ стран (в основном Европа и Северная Америка).
Поддерживаемые платформы: веб, iOS, Android
Методы оплаты: все основные типы кредитных и дебетовых карт, e-wallets, банковские переводы и т.д
Валюты: 135+ валют, Bitcoin.
Конкурентные преимущества: четкая документация, которая позволяет интегрировать систему очень быстро (для нашей команды обычно занимает не больше одного дня), нет неожиданных ошибок и проблем в системе, прекрасная быстрая служба поддержки и простая кастомизация для любого типа платформы.
Дополнительные решения: Atlas (платформа для поддержки развития стартапов), Connect (платформа с большим кол-вом инструментов для создания маркетплейса и простой оплаты поставщикам), Radar (управление рисками и защита от мошенничества), Sigma (кастомизированные отчеты для вашего бизнеса), Climate (процент от каждой покупки идет на развитие технологий по борьбе с изменениями климата).
HiPay
Доступные страны: Европа, Северная Америка
Поддерживаемые платформы: веб, iOS, Android
Комиссии: нет платы за установку и месячных платежей, комиссия за транзакцию зависит от месячного оборота бизнеса + фиксированной сумма ( +0.25€ за транзакцию, iDEAL: +0.79€ за транзакцию).
Конкурентные преимущества: защита от мошенничества (3D secure), большое кол-во валют и методов оплаты, что делает платформу поистине международной.
Недостатки: документация для интеграции сервиса описывается нашими разработчиками как не очень четкая.
Дополнительные решения: аналитика данных с полезными инсайтами для вашего бизнеса, отчеты в реальном времени, автоматизированная банковская выверка, специальные планы по типа бизнеса (Professional, Enterprise, Marketplace).
Ixopay
Доступные страны: везде, где вы можете принимать платежи
Поддерживаемые платформы: веб, iOS, Android
Методы оплаты: 200+ основных методов
Валюты: все, что поддерживаются вашим адаптером
Комиссии: плата за установку и комиссия за транзакции зависит от типа вашего бизнеса и оборота
Конкурентные преимущества: данный сервис является агрегатором платежных систем, что видно по разнообразному функционалу; можно приобрести собственную white label платформу
Недостатки: задержки в планировщике платежей
Дополнительные решения: использует лишь один API для интеграции с адаптером, провайдером платежных услуг (PSP), процессором, системой планирования ресурсов (ERP), BI системой или другим необходимым вам сторонним сервисом. Также доступны Smart Routing Engine (контроль пути пользователя на платформе), система управления рисками и выверка и обработка бухгалтерской документации.
Заключение
Ввиду удобства и простоты объем онлайн-платежей (особенно мобильных) увеличивается с каждым годом, что делает наличие интеграции вашей платформы с платежной системой главным ожиданием пользователей во время покупок.
Выбирая платежную систему для вашего бизнеса, убедитесь в том, что вы
выбрали ту, которая имеет идеальное соотношение цены и качества,
учли особенности вашего сектора и страны, а также популярные методы оплаты и валюты,
изучили всю документацию о платежах и интеграции системы во избежание неожиданностей во время обработки платежей,
изучили дополнительные решения, которые предлагает сервис, так как они могут быть очень полезны в автоматизации бизнеса и укреплении безопасности.
Читайте продолжение о типах платежных систем и самых популярных из них на территории стран СНГ во второй части статьи.
Если у вас остались вопросы, вам нужна помощь разработчиков в интеграции платежной системы или есть идея создания инновационного продукта, свяжитесь с нашей командой Fingers Media и мы будем рады помочь!
Популярные статьи
Читайте наши последние статьи
Как интегрировать SMS-сервис в сайт и/или приложение?
Узнайте, как интегрировать SMS-сервис и выбрать правильный
Как выбрать и интегрировать платежную систему в сайт и/или приложение? Ч. 2
Какие типы платежных систем существуют и какую выбрать для СНГ
Опрос пользователей
Методы проведения опросов
Gap-анализ в IT проектах
Как проводить gap-анализ и зачем
Встраиваемые поисковые системы в мобильных приложений. Часть 2
Поисковые системы в мобильных приложениях
Эмпатия в UI/UX дизайне
Как проектировать для пользователя
Встраиваемые поисковые системы в мобильных приложений
Поисковые системы в мобильных приложениях
Как я планирую свой рабочий день
Разбор проблемы планирования и фиксации затраченного времени
Чек-лист для разработки мобильных приложений для детей
О чем не стоит забывать при создании приложений для детей
Появилась идея для проекта? Мы хотим узнать о том, что важно для вас
Подключение к платежному сервису — быстро и удобно. Миф или реальность? Часть 2
Всем привет! Совсем недавно мы рассказывали про внутреннюю кухню подключения к платежному сервису: как ускоряем и автоматизируем процессы в части заключения договора. А сегодня мы поговорим о технической стороне вопроса — об интеграции сайтов и сервисов с нашим платежным решением.
Если начать по порядку, то для приема платежей интегрироваться с сервисом ЮKassa не обязательно — с помощью сервиса можно выставлять клиентам счета. Для этого в Личном кабинете ЮKassa можно создать ссылку для оплаты товара или услуги и отправить покупателю. Подробно мы рассказали про этот сервис в одной из Хабр-статей. А сейчас хотим рассказать, какие способы интеграции сайта и нашего платежного решения мы развиваем.
Конструктор платежных форм
Компаниям и предпринимателям, которые в онлайне предлагают небольшой ассортимент товаров или услуг, не нужны сложные системы управления сайтом. Благотворительные организации и фонды зачастую тоже создают сайты из 2-3 страниц для сбора пожертвований. Специально для таких простых случаев мы некоторое время назад сделали конструктор платежных форм.
Цель конструктора — даже технически не подкованному человеку дать возможность быстро создать платежную форму для своего сайта.
В конструкторе можно настроить «корзину» на один или несколько товаров и запрашивать контактные данные покупателя — электронную почту, адрес доставки. Можно сделать форму максимально простой с вводом произвольной суммы. Этот вариант подойдет благотворительным организациям, которые предлагают людям самим выбрать сумму перевода. Исходный код формы генерируется на лету при изменении любой из ее настроек. Сгенерированный код достаточно скопировать из конструктора и добавить на свой сайт.
Процесс оплаты с помощью такой формы происходит просто. Когда пользователь нажимает кнопку «Заплатить», форма отправляет запрос по API в наш бэкенд на создание платежа и переводит плательщика на форму оплаты. По итогам платежа отправляется webhook для уведомления о статусе. При успешной оплате на указанный при создании формы e-mail отправляется письмо с деталями о заказе — контактами покупателя для доставки товара.
Интеграция через готовый модуль
Но, конечно, полноценным интернет-магазинам конструктора не достаточно. Большинство интернет-магазинов, контентных платформ используют системы управления сайтом (CMS) для автоматизированной обработки заказов и учета товарного ассортимента или предоставления услуг. Для легкой интеграции с такими платформами используются готовые платежные модули.
У ЮKassa есть такие модули для более 150 платформ. Это самый большой охват на рынке платежных решений. Некоторые модули — это разработки производителей самих CMS-платформ, другие — наши собственные: например, для InSales, Opencart и других.
Пользователи CMS — это далеко не всегда разработчики. Поэтому и здесь наша задача — сделать так, чтобы широкой аудитории было доступно подключение нашего платежного сервиса.
Расскажем о трех решениях, которые мы создали для того, чтобы максимально упростить процесс интеграции платежного модуля.
Первое — это детектор CMS.
После регистрации в ЮKassa пользователи указывают адрес сайта, на который хотят добавить прием платежей. Наше решение — детектор CMS — анализирует страницы сайта и определяет CMS-платформу.
Для анализа мы используем библиотеку сервиса wappalyzer.com. В ней есть база соответствия компонентов веб-приложения, основанная на регулярных выражениях в JS, CSS, meta-тегах, cookie и др. Детектор сопоставляет найденные компоненты со своей базой и определяет CMS-платформу, используемую на сайте. Информация о CMS-системе и существующих для нее платежных модулях поступает в Личный кабинет ЮKassa.
Второе решение — это автоматическая настройка параметров под платежные модули. Получив данные о CMS-платформе от детектора, мы в Личном кабинете ЮKassa предзаполняем технические настройки под существующий платежный модуль — тип протокола и URL для уведомлений о платежах. Это избавляет пользователя от самостоятельного поиска адреса для уведомлений в инструкциях к платежному модулю.
Дальше нужно в платежном модуле CMS-системы указать номер магазина (shop ID) и секретный ключ API из Личного кабинета ЮKassa. После этого интеграция будет завершена — кроме вставки двух параметров, больше не придется производить никаких других действий.
Третье решение, которое еще больше упрощает подключение, — интеграция через OAuth-авторизацию.
OAuth — это протокол авторизации, который позволяет получить доступ к правам стороннего сервиса для определенной площадки. Собственный OAuth-сервис ЮKassa помогает платежному модулю отправлять запросы на проведение платежей через API и получать уведомления об их статусах, проводить денежные возвраты.
Для интеграции с модулем, который работает на OAuth, достаточно нажать на кнопку «Авторизоваться через ЮKassa» и подтвердить передачу прав.
После этого интеграция начинает работать без каких-либо дополнительных настроек. Такая OAuth-авторизация сейчас реализована в модулях Shopify, InSales, amoCRM, Битрикс24.
Эти три решения делают интеграцию ЮKassa с большинством систем очень простой, прозрачной и понятной даже для тех пользователей, которые не обладают навыками разработки.
Интеграция через API
Конечно, многие сайты не используют CMS-системы и хотят получить больше возможностей от платежного сервиса — например, настроить сложный сценарий платежей. Для этого есть возможность самостоятельной интеграции с ЮKassa по нашему API. Это уже отдельная история, но про некоторые возможности можно почитать в нашем блоге.
Заключение
Этими статьями мы хотели показать, что с помощью ЮKassa настроить прием платежей на любом сайте очень просто — и это доступно любому пользователю. А если вы разработчик и к вам обратились за помощью с интеграцией — можете вступить в нашу партнерскую программу и предложить своим клиентам выгодные условия для подключения к ЮKassa.
Как интегрировать платёжную систему на своём сайте
1. Платёжные реквизиты. Неудобно и небезопасно, так как реквизиты могут быть скомпрометированы мошенниками.
2. Интернет-кошельки. Безопаснее предыдущего пункта, но не предоставляют необходимых инструментов бизнесмену.
3. Разработка собственной платёжной системы. Долго и дорого.
4. Эквайринг. Удобно и достаточно безопасно, если выбрать качественный сервис.
Для того чтобы даже пользователи виртуальных карт имели возможность совершать покупки так же безопасно и удобно, как держатели банковских карт, многие компании предлагают интернет-эквайринг — сервис для приёма платежей, встраиваемый в сайт, приложение или другой интернет-сервис. Сегодня речь пойдёт об интернет-эквайринге от сервиса «ВсеПлатежи».
Сервис «ВсеПлатежи» прежде всего ориентирован на оплату услуг различных компаний, ЖКХ, штрафов, кредитов, налогов, интернета, телефонии и так далее. Подробно об этом сервисе мы написали в этой статье. На данный момент сервисом пользуется более 300 тысяч физических лиц, а более 500 юридических лиц по достоинству оценили удобство интернет-эквайринга от «ВсеПлатежи».
Для чего нужен интернет-эквайринг «ВсеПлатежи» и как он работает
«ВсеПлатежи» предоставляет универсальный инструмент «Платёжный шлюз «ВсеПлатежи», через который можно принимать платежи на ресурсе бизнесмена по договору интернет-эквайринга. Система оплаты подходит для любых направлений бизнеса, расчётных центров, телеком-провайдеров и других компаний, предоставляющих товары и услуги. Интернет-эквайринг «ВсеПлатежи» предлагает несколько вариантов оплаты:
— размещение на сайте vp.ru;
— виджет-кнопка и Lite-виджет;
— платёжный шлюз и шлюз для расчётных центров;
— приложение для VK.
Как можно заметить, «ВсеПлатежи» предлагает широкие возможности для интеграции в различные сервисы, в том числе и для интернет-магазинов в VK, что позволяет проводить безопасные и быстрые платежи. Интернет-магазинам в Instagram и других соцсетях подойдёт вариант с платёжным шлюзом.
Принцип действия интернет-эквайринга прост. Клиент выбирает способ оплаты банковской картой и автоматически переходит на форму ввода данных карты, защищённую шифрованием. Банк, который обслуживает «ВсеПлатежи», передаёт информацию о платеже банку, выпустившему карту пользователя. После одобрения платежа клиент получает уведомление об оплате, а бизнесмен — данные по проведённой платёжной операции в системе.
Какие задачи решает интернет-эквайринг «ВсеПлатежи»
1. Онлайн-оплата на сайте. Добавляет функцию оплаты без необходимости разработки платёжного решения.
2. Повышение скорости и удобства оплаты. Сервис имеет хорошо оптимизированный код и простой интерфейс, благодаря чему подгрузка страницы платёжного шлюза происходит практически мгновенно даже на медленном интернете.
3. Снижение затрат на комиссию. Увеличение чистой прибыли за счёт снижения ставок по платежам.
4. Замена устаревшего платёжного сервиса. Повышение безопасности и надёжности.
Достоинства интернет-эквайринга от сервиса «ВсеПлатежи»
— Безопасность и надёжность. Сервис «ВсеПлатежи» имеет лицензию ЦБ РФ и работает официально и прозрачно. Кроме того, система распознаёт и блокирует мошеннические операции.
— Адаптивность. Система оплаты подстраивается под размер экрана и одинаково хорошо смотрится как на больших мониторах, так и на экранах смартфонов.
— Персонализация. Платёжный сервис может быть настроен так, чтобы он выглядел как оригинальный продукт от компании бизнесмена. Возможна настройка логотипа, контактов и других данных с адаптацией под дизайн ресурса.
— Приём банковских карт «МИР». Расширение аудитории потенциальных покупателей.
— Низкие ставки по комиссии. «ВсеПлатежи» предлагает комиссию, которая составляет от 1 % до 3,5 %.
— Решения для бизнеса любого масштаба — от малого до крупных корпораций.
— «Под ключ». Сервис самостоятельно разрабатывает и интегрирует систему.
Одно из главных достоинств интернет-эквайринга «ВсеПлатежи» в том, что он предоставляется бесплатно. Единственное, за что нужно будет платить, — это комиссия за обработку платежей. Это предложение намного выгоднее самостоятельной разработки платёжного сервиса или заказа его разработки в студии.
Сервис имеет достоинства, которые оценят и покупатели. Во-первых, простой и понятный дизайн. Во-вторых, высокая скорость работы. В-третьих, функционал для клиента, такой как автозаполнение, подсказки, маски ввода, автопроверка типа карты и валидация полей. Всё это сделает оплату быстрой, понятной и удобной.
Как метод интеграции с платежной системой влияет на конверсию
Зачем тратить свое время и деньги, а затем и ресурсы программистов на интеграцию с платежной системой если можно нажать пару кнопок и вуаля, вы уже принимаете платежи на своем сайте?
Увы, бесплатный сыр бывает только в мышеловке. Сэкономив на подключении платежных методов, владелец сайта роет себе яму в долгосрочной перспективе: занижая конверсию и тем самым сводя к нулю выгоду от быстрого старта.
Давайте разберемся в видах технической интеграции и их недостатках.
Интеграция без интеграции
Выставление счета на email или телефон — покупателю приходит ссылка со списком товаров и реквизитами для оплаты удобным ему способом.
Для подключения выставления счета по почте или на телефон от владельца интернет-ресурса требуется только нажать несколько кнопок в личном кабинете платежной системы, предоставляющей услугу — выставить счет. Никакой интеграции, а покупатель может оплатить счет любым платежным средством, доступным в платежной системе.
Кнопка на сайте — вы размещаете кнопку на своем сайте, клик на которую ведет на сайт платежной системы с уже предзаполненными реквизитами платежа. Покупателю остается выбрать способ оплаты и совершить покупку. Уведомление о принятых средствах придет к вам на почту.
Оплата по QR-коду — другая форма переадресации клиента по ссылке на предзаполненную платежную страницу. «Под капотом» работает точно так же, разница только в способе доставки ссылки покупателю.
Полная и частичная интеграция
Модуль для CMS/CRM — покупатель выбирает платежное средство на вашем сайте, а платежная система получает запрос уже с указанием большинства параметров. Остается только ввести номер карты или кошелька и подтвердить платеж.
Частичная интеграция (HTTP уведомления) — после клика в корзине покупатель видит платежную страницу со всеми деталями покупки, можно даже в дизайне магазина.
Полная интеграция (по API/SDK для приложений) — возможно всё!
Это всё хорошо, но что мне делать?
Если вам нужно начать принимать платежи «вчера», действительно, выгодно подключить платежные методы самым незатратным способом. Однако для долгосрочных планов, чтобы предлагать покупателям все возможности приема платежей, задумайтесь о полной интеграции или хотя бы о модуле для вашей CMS, чтобы не усложнять платежный сценарий без необходимости и не ронять тем самым конверсию.
Как мы интегрировали платежную систему в российский проект
Пять месяцев назад мы опубликовали NPM модуль для работы с новой версией Яндекс.Касса, которая вышла в октябре 2017 года. Наш модуль попал в официальную документацию, и его уже скачали более 1300 раз.
На Хабре, совместно с коллегами из Яндекса, мы уже рассказывали об опыте создания модуля, но за кадром остался наш опыт, который мы получили, когда столкнулись с интеграцией платежной системы для российских клиентов.
Поэтому сегодня мы хотим рассказать, как для одного из отечественных клиентов мы переходили от интеграции привычных нам заграничных платежных систем на русские аналоги, с какими трудностями столкнулись и как их решали.
Как работали с платёжными системами
Раньше мы работали только с платежными системами зарубежных клиентов. У нас был опыт интеграции с Authorize.net, Paypal, Braintree, Stripe, Payoneer, Wirecard и Svea.
С этими платёжными системами легко взаимодействовать и реализовать разные функции. Например, когда мы работали над сервисом грузоперевозок по Европе, мы интегрировали в проект несколько систем оплаты и написали алгоритм — он реализовывал сложную логику денежных операций. Когда пользователь заказывал услугу, система переводила деньги со счёта заказчика на счёт сервиса, а алгоритм проводил транзакции: пересчитывал оплату в случае проблем с доставкой, конвертировал в валюту, проводил возврат и перенос сроков платежей, списывал процент за использование сервиса.
Лучшие представители платёжных систем позволяют начать разработку в песочнице даже без регистрации. У многих — отличная документация, и почти все помогают решать задачи без активного участия поддержки. Разработчики могут из личного кабинета управлять правами и доступами. Платёжные системы имеют SDK для большинства популярных платформ, что уже сейчас — негласный стандарт.
Чтобы интегрировать платёжную систему, разработчику нужно:
Что поменялось
Год назад мы начали работать и на отечественном рынке. Одним из первых проектов стало приложение Sellsay. Оно помогает пользователям развивать навыки в переговорах, а также является площадкой для взаимной профессиональной помощи.
У приложения много возможностей помимо стандартных функций: авторизации и регистрации, создания и редактирования проектов. Через сервис вы можете обратиться
к бизнес-тренеру. Если вы обладаете необходимыми знаниями, вы можете получить сертификат и стать самостоятельным тренером, участвовать в событиях и тренингах
от создателей приложения, зарабатывать деньги.
Чтобы в сервисе могли расплачиваться, было необходимо интегрировать платёжную систему — такую, где можно платить рублями и долларами, переносить срок платежа и делать его возврат, сохранять карты и не вводить данные при повторных покупках, использовать Apple и Android Pay. Чтобы это реализовать, мы выбрали систему Braintree.
И тут мы допустили огромный фейл. Мы согласовали и реализовали основной функционал работы с платёжной системой, но не учли одной важной детали. Узнали о ней за две недели до релиза, когда готовили проект к запуску. Мы не учли, что Braintree не работает с компаниями из России. Зарегистрировать компанию в штатах — не вариант. У нас остался один выход: в кратчайшие сроки заменить систему оплаты.
Яндекс.Касса: работа с первой версией API
После анализа систем мы остановились на Яндекс.Кассе: сервис позволял реализовать почти весь функционал, подходил клиенту по цене и решал проблему 54-ФЗ при подключении онлайн-кассы.
Чуть позже мы поняли, что наше видение интеграции в корне отличается от видения Яндекс.Кассы и её службы безопасности. Весь этап интеграции запомнился больше бесконечными договорами, бланками и созвонами, нежели написанием кода.
Так, чтобы получить тестовые ключи, необходимо предоставить ссылку на приложение в Apple Store или Google Play. Откуда у нас ссылка, если приём платежей — обязательное требование для публикации приложения? Эту проблему удалось решить, но и потом возникали ситуации, когда необходимо было реализовать и опубликовать функционал для его активации менеджером.
Да, почти все запросы решаются общением с персональным менеджером. Но если вопросы в личном кабинете попадают к личному менеджеру, то при звонке велика вероятность попасть на случайного, свободного на линии менеджера и получить совершенно случайный ответ. Через некоторое время — попасть на другого менеджера и получить противоположный ответ на тот же вопрос.
Ещё одно неудобство: Яндекс поддерживает API нескольких поколений. Даже у Яндекс.Кассы несколько подсистем, которые используют разную документацию, аутентификацию и так далее. В итоге приходится одновременно реализовывать несвязанные между собой API. Например, реализуете приём платежей, а для отмены необходимо начинать всё сначала: заявки, договор, звонки, изучение и интеграцию API.
Финальные недели перед запуском превратились в ад. Чтобы запустить проект вовремя, нам пришлось усилить команду и работать сверхурочно, а Яндекс.Касса тем временем не упускала возможность дать нам понервничать.
Сравнение Яндекс.Касса со Stripe
В сообществе разработчиков Stripe — лидер по удобству интеграции и работы с платёжной системой. Они первые, кто позаботился о программистах и сделал платёжную систему максимально удобной и гибкой. Это позволило разработчикам не только облегченно вздохнуть, но ускорить и удешевить процесс интеграции.
У Яндекс.Кассы и Stripe можно найти много общего. Например, обе системы построены на REST-like принципах, используют коды ответов HTTP, поддерживают CORS (и ответы приходят в JSON), обе поддерживают идемпотентность. Есть «песочница» — полная копия реального магазина, и переход между режимами производится лишь заменой ключей: не нужно менять API или URL.
Но в тоже время они очень разные, и для того, чтобы показать, насколько у этих систем разные подходы, мы рассмотрим реализацию некоторых этапов на конкретных примерах.
Поскольку на данном проекте реализовали серверную часть на Node.js, то и примеры буду приводить для него.
Подключаем к проекту.
Запрашиваем данные карты
Подключить аналогично клиентскую библиотеку и запросить токен с отображением формы для ввода карты.
По правде говоря, на сайте должна быть платёжная форма. Когда пользователь нажимает «Оплатить», эта форма отправляется на указанный выше адрес и передаёт параметры методом POST. Но у нас мобильное приложение, поэтому пришлось отказаться от формы и формировать ссылку на стороне сервера с открытием в WebView.
Эта ссылка отдаётся клиенту для ввода данных карты и подтверждения платежа. Но тут нас ждал очередной сюрприз: в конце 2017 года Яндекс.Касса не поддерживает адаптивный дизайн. Всевозможные манипуляции с настройками не давали результата.
Дизайн не адаптируется под мобильное приложение
Оказалось, чтобы переключить внешний вид страницы оплаты в адаптивный режим, нужно оставить заявку в личном кабинете. Нам пришлось обращаться в техподдержку снова.
Ура, адаптированный дизайн под мобилку в 2017!
Но только для оплаты банковскими картами
Проверяем факт оплаты
Оплата проверяется в процессе формирования платежа и в случае ошибки функция API вернет соответствующее исключение.
Пользователи производят оплату на стороне Яндекс.Кассы, но приложение пользователя ещё не знает о факте оплаты. Поэтому Яндекс.Касса должна сообщить серверу, что оплата была осуществлена. Для этого разработчики должны создать WebHook и настроить Яндекс.Кассу, чтобы она могла использовать адреса из WebHook для передачи факта оплаты.
Уведомление сервера об оплате происходит в 2 этапа:
Как можно догадаться, согласование и подключение заняло некоторое время. Оно плавно вышло за границы дедлайна.
Описываем правила отмены сохранения карт и реализуем возможность удаления. Затем отправляем приложение на ревью в службу безопасности Яндекс.Кассы и ждём ответа.
Если ответ положительный, появляется возможность сохранять карты после успешной оплаты и совершать повторные платежи при помощи протокола MWS.
Пример запроса из документации:
Из примеров видно, что Stripe более приспособлен для разработчиков и обладает большим разнообразием функций и возможностей. Но есть одно большое НО: Stripe, как и Braintree, не работает в России, хоть и может принимать платежи из разных стран. Владелец аккаунта на Stripe должен быть резидентом доступных ему стран — Россия не в их числе.
Что в результате
Даже с учетом того, что нам пришлось делать много дополнительной работы и общаться с поддержкой, мы не только успели почти все завершить в срок, но и провели еще и дополнительную работу. За неделю до релиза вышла новая версия API Яндекс.Кассы и мы создали NPM-модуль и переписали код.