Как быстро интегрировать CloudPayments в сервис на PHP

Привет! На связи Иван Могилат, Backend-разработчик Flowwow. Делюсь библиотекой для работы с CloudPayments и рассказываю, кому она пригодится.

 
 

О сервисе

CloudPayments – это платежный сервис, работающий с банковскими картами Visa, MasterCard, Maestro, Visa Electron, Мир, а также системами оплаты Google Pay и Apple Pay. Позволят проводить платежные операции в любых браузерах и мобильных приложениях.

Flowwow работает с сервисом уже более пяти лет, используя его и для мобайла, и для десктопа. Какое-то время все держалось “на костылях”: решение легко встроить, если вы используете стандартную CMS (WordPress, Joomla и т.п.), но если речь идет о самописном сайте со своими особенностями и функциями, процесс интеграции требует творческого подхода.

Проблема

Выстроенная логика работала до тех пор, пока Flowwow оставался только маркетплейсом цветов: продавцы предлагали товары и сами же их доставляли, а затем получали деньги с учетом удержанной комиссии. В 2019 году мы запустили собственную курьерскую доставку: продавцы пользуются доставкой как услугой, все заботы по ее организации Flowwow берет на себя. Появилась задача встроить платежный сервис в новое приложение, связывающее продавцов и курьеров.

Решение

Мы не могли просто взять кусок кода из одного сервиса и добавить его в новый – поняли, что нужно подготовить библиотеку, которую можно будет использовать для каждого нового проекта. Учитывая, что Flowwow постоянно запускает новые направления – расширение категорий товаров, работа с оптовиками, офлайн-магазины – нам просто необходимо иметь инструмент для быстрого подключения платежей.

В итоге мы привели наработки в удобный вид и создали собственную библиотеку для обработки всех необходимых методов API на бекенде – приема платежей, отмены, возврата средств, выписки чеков и так далее. Сейчас логика работы с платежной системой отделена от основного проекта, ее легче тестировать и труднее сломать.

Результат

Результатом нашей работы с радостью делимся с вами: Cloudpayments api Library. Будет полезно всем, кто пишет сервис на PHP.

1414
18 комментариев

Мне, как покупателю,  не видна схема с криптограммой, которая работает "за сценой". Это создает поле для мошенничества. Вашу платежную форму не сложно скопировать, "по пиксельно", подменить на  фейковую. В случае работы с банком, внимательный покупатель видит, что форма загружена из домена банка, это само по себе вызывает доверие.  

Как архитектор платформы bil24.pro напишу, что все больше покупателей выбирает, например,  СберID при оплате в форме Сбербанка. С другой стороны,  совсем малая часть наших клиентов использует для оплаты билетов CloudPayments, предпочитая работать напрямую с банками, через API. Не знаю, что там у вас сейчас с ценами на сервис, но, на мой взгляд, ваша схема проигрывает конкурентную борьбу банкам. Без обид... ) 

1

По протоколу (API)  интернет-эквайринга банков, например, Сбер или Альфа, когда передаешь в банк  bundle с данными заказа, в ответ приходит URL страницы с формой для ввода данных банковской карты. Эта страница загружается с сервера банка и передает данные карты ему же. А как в случае с CloudPayments? Какой URL у страницы с формой ввода данных карты? Она грузится с сервера CLoudPayments? 

Александр, у CloudPayments нет отдельной формы по ссылке, для оплаты данные карты передаются с криптограмой. Это одна из причин, по которой мы выбрали клауд: при оплате клиент не переходит на другой сайт.

1

То есть нужно подключать 100500 банков вместо агрегатора? Вы нормальные? А если у банка нет API для платежей? Хотя у вас в России наверняка у каждого банка есть, но так не везде.

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

А вы понимаете о чем идет речь?  Зачем "подключать 100500 банков"? В этом нет никакой необходимости. продавец подключает один интернет-эквайринг одного банка, и получает деньги от продаж товаров или услуг на свой расчетный счет в этом банке.  Покупатели платят картами ЛЮБЫХ банков, в любой точке планеты. API банков давно реализованы в виде библиотек, виджетов, плагинов. . В платформах эти API реализованы на системном уровне, подключение сводится к указанию имени и пароля. Причем многие банки используют одно и то же решение, один и тот же API.    Если можно работать с банками напрямую, зачем такой посредник как CloudPayments?

есть ссылка в статье, если вы про эту статью) https://github.com/flowwow/cloudpayments-php-client