Как подключить Freedom Pay (бывший PayBox) в мобильное приложение
Подключение Freedom Pay, бывший PayBox, к приложению iOS и Android: заявка и анкета, требования к сайту, подпись запросов, SDK, тесты, сроки и ошибки.
Чтобы принимать оплату через Freedom Pay в мобильном приложении, нужно подать заявку, заполнить и подписать анкету, подготовить сайт по требованиям сервиса, получить доступ в личный кабинет мерчанта и подключить API или мобильный SDK через свой сервер. Все запросы к Freedom Pay подписываются секретным ключом, поэтому он хранится только на сервере. После тестовых платежей приложение переводится в боевой режим.
Freedom Pay это тот же сервис, что раньше назывался PayBox.money: ребрендинг прошёл в 2022 году, и в старых проектах вы ещё встретите прежнее имя в коде и настройках. Ниже разберём подключение по шагам и технические детали, которые важно сделать правильно с первого раза.
Кому подходит Freedom Pay
Freedom Pay это платёжный сервис, который принимает оплату картами и перечисляет деньги на расчётный счёт мерчанта. В документации сервиса описаны приём платежей, сохранение карт, возвраты, выплаты, рассрочка и выставление счетов. Для приложений это удобно в нескольких сценариях:
- интернет-магазин или доставка, где клиент платит картой любого банка;
- сервис записи и услуг, где нужна предоплата или оплата после визита;
- сервисы с регулярными платежами за физические услуги, например абонемент в спортзал, где важно сохранить карту клиента;
- маркетплейсы и сервисы, которым нужны выплаты исполнителям.
Как и в случае любого эквайринга, Freedom Pay подходит для физических товаров и услуг. Цифровой контент внутри приложения (подписки на премиум-функции, игровая валюта) Apple и Google требуют продавать через свои встроенные покупки.
Шаг 1. Заявка, анкета и документы
На сайте freedompay.kz процесс подключения для бизнеса описан как последовательность шагов:
- Оставить заявку с контактными данными.
- Заполнить анкету: данные о компании и руководителе.
- Подготовить сайт, на котором видны реальные товары или услуги.
- Скачать анкету, подписать, поставить печать, отправить скан, а оригиналы передать в офис Freedom Pay.
- После проверки документов получить доступ в личный кабинет.
- Выполнить техническую интеграцию по документации.
- Провести тестовые платежи и принять первую боевую оплату.
Точный список документов и сроки проверки сервис сообщает при подаче заявки, их лучше уточнить у менеджера или в поддержке. Для малого бизнеса у сервиса есть отдельный упрощённый продукт, условия по нему тоже смотрите на сайте.
Шаг 2. Требования к сайту: даже если продаёте в приложении
Платёжные сервисы проверяют, что бизнес реальный и клиенту понятно, что он покупает. Freedom Pay в инструкции прямо перечисляет, что должно быть на сайте:
- реальные товары или услуги с ценами;
- реквизиты компании и контакты;
- политика конфиденциальности;
- логотипы платёжных систем;
- условия оплаты, доставки и возврата.
Если у вас только приложение, сделайте простой сайт-визитку с этими страницами. Та же политика понадобится и для публикации в сторах, подробности в статье про политику конфиденциальности для приложения.
Шаг 3. Техническая схема интеграции
Интеграция строится через ваш сервер. Приложение никогда не отправляет запросы к Freedom Pay с секретным ключом.
- Клиент нажимает «Оплатить», приложение передаёт заказ на ваш сервер.
- Сервер формирует запрос на создание платежа в Merchant API Freedom Pay: номер заказа, сумма, описание, адреса для уведомлений и возврата клиента.
- Запрос подписывается: по документации к полям запроса добавляется случайная строка pg_salt и секретный ключ мерчанта, от этого считается подпись pg_sig. Ответы Freedom Pay тоже подписаны, и сервер обязан их проверять.
- В ответ сервер получает ссылку на платёжную страницу и передаёт её приложению.
- Приложение открывает страницу во встроенном браузере или использует мобильный SDK, клиент вводит карту и проходит 3-D Secure.
- Freedom Pay отправляет результат на ваш result_url. Сервер проверяет подпись, сумму и номер заказа и только после этого меняет статус заказа.
- Клиент возвращается в приложение через success_url или failure_url, и приложение запрашивает у сервера актуальный статус.
Как спроектировать такие методы на сервере, описано в статье про API для мобильного приложения.
SDK, страница оплаты или сохранённая карта
| Способ | Когда выбирать | На что обратить внимание |
|---|---|---|
| Платёжная страница в WebView | Быстрый старт, Flutter или React Native, одна реализация на обе платформы | Корректно ловить возврат по success_url и failure_url |
| Android SDK и iOS SDK Freedom Pay | Нативные приложения, важна конверсия на экране оплаты | Минимальные версии ОС и обновления SDK, для Flutter нужна обёртка |
| Сохранение карты | Повторные заказы, абонементы, оплата после оказания услуги | Согласие клиента, понятная кнопка удаления карты в профиле |
В документации Freedom Pay отдельно описаны JS SDK, Android SDK и iOS SDK, а также сохранение карт. Какой вариант выбрать, зависит от стека приложения и того, как часто клиенты платят повторно.
Тестирование и перевод в боевой режим
В кабинете и документации Freedom Pay есть инструменты для тестовых платежей. Проверьте минимум такие сценарии:
- успешная оплата и отказ банка;
- клиент закрыл страницу оплаты на середине;
- уведомление на result_url пришло раньше, чем клиент вернулся в приложение;
- уведомление не пришло совсем, и сервер должен сам запросить статус платежа;
- полный и частичный возврат;
- повторное нажатие «Оплатить» без двойного списания.
Все обращения к Freedom Pay и все входящие уведомления пишите в журнал на сервере: время, номер заказа, сумма, ответ сервиса. Когда клиент из Шымкента позвонит и скажет «деньги списались, а заказа нет», вы найдёте ответ за минуту, а не будете сверять выписки вручную. Такой журнал пригодится и бухгалтерии при сверке поступлений.
После тестов переключите сервер на боевые ключи и сделайте первую реальную оплату на небольшую сумму с последующим возвратом.
Что увидит клиент в приложении
Техника важна, но клиент оценивает оплату по трём экранам. Сделайте их понятными, и число брошенных корзин заметно снизится.
- Перед оплатой. Итоговая сумма, состав заказа, доставка и способ оплаты на одном экране. Никаких сюрпризов на странице банка.
- Во время оплаты. Индикатор загрузки и кнопка «Назад», которая не ломает заказ. Если клиент ушёл в банковское приложение для подтверждения, по возвращении он должен попасть обратно на экран заказа, а не на главную.
- После оплаты. Ясный результат: «Оплачено, заказ передан курьеру» или «Оплата не прошла» с кнопкой повторить и сменить способ. Чек и история платежей в профиле.
Отдельно продумайте статус «Ожидаем подтверждение банка». Бывает, что деньги списались, а уведомление ещё не дошло до сервера. Лучше честно показать ожидание и обновить статус через несколько секунд, чем предложить оплатить повторно.
Сроки и стоимость
Комиссию и сроки проверки документов Freedom Pay на странице инструкции не публикует: условия называет менеджер, и они могут зависеть от оборота и вида деятельности. Уточняйте их до подписания анкеты.
Разработка зависит от готовности приложения. Если корзина и сервер уже есть, подключение одного платёжного провайдера с уведомлениями, возвратами и тестами обычно занимает от одной до трёх недель. Сохранение карт и регулярные списания добавляют время на экраны профиля и обработку ошибок.
Частые ошибки при подключении Freedom Pay
- Секретный ключ в приложении. Подпись pg_sig считается только на сервере, иначе ключ можно извлечь из сборки и создавать платежи от вашего имени.
- Нет проверки подписи ответа. Сервер принимает любое «успешно» на result_url. Всегда проверяйте подпись и сумму.
- Статус оплаты по возврату клиента. Переход на success_url не гарантирует оплату. Источник правды это уведомление или запрос статуса.
- Старые настройки PayBox. При переносе проекта остаются старые адреса и библиотеки. Сверьте их с актуальной документацией freedompay.kz.
- Сайт не прошёл проверку. Нет оферты, контактов или правил возврата, и подключение затягивается.
Общие правила защиты платежей и ключей собраны в статье о безопасности мобильного приложения. Если клиенты в основном платят через Kaspi, посмотрите также интеграцию Kaspi Pay в приложение: часто разумно дать оба способа.
Частые вопросы
Freedom Pay и PayBox это одно и то же?
Да, PayBox.money в 2022 году сменил название на Freedom Pay. Если в старом проекте интеграция называется PayBox, сверьте адреса и библиотеки с текущей документацией freedompay.kz.
Можно ли сохранить карту клиента для повторных оплат?
В документации Freedom Pay описано сохранение карт. Клиент должен дать согласие, а в профиле приложения нужна возможность удалить сохранённую карту.
Какая комиссия у Freedom Pay?
На странице инструкции по подключению тарифы не опубликованы. Условия называет менеджер сервиса, уточняйте их до подписания анкеты.
Есть ли у Freedom Pay SDK для iOS и Android?
Да, в документации есть разделы Android SDK и iOS SDK, а также JS SDK. Для Flutter и React Native обычно используют платёжную страницу во встроенном браузере или пишут обёртку над SDK.
Нужен ли сайт, если продажи только в приложении?
Да, Freedom Pay проверяет сайт: товары с ценами, реквизиты, контакты, политику конфиденциальности и условия возврата. Подойдёт простой сайт с этими страницами.
Подключим Freedom Pay под ключ
Команда applications.kz подключает Freedom Pay, Kaspi и Halyk ePay в приложения на iOS, Android и Flutter: сервер, подписи запросов, экран оплаты, сохранение карт, возвраты и тестирование. Если приложение уже работает и нужно добавить оплату, это задача для доработки приложения. Напишите через форму контактов или в WhatsApp +7 707 928 13 15, смету подготовим бесплатно за 24 часа.