Freedompay
Продукт: Shelter Cloud | Уровень: Shelter | Статус: Stable
ID системы: 27
Описание
Интеграция с платёжной системой Freedompay — казахстанский платёжный агрегатор. Поддерживает оплату банковскими картами и другие способы.
Настройка в Shelter Cloud
Параметры учётной записи настраиваются через PrivateSettings:
| Параметр | Описание |
|---|---|
| V_Token | Токен магазина |
| V_SecretKey | Секретный ключ для подписи |
| V_Currency | Валюта: KZT, RUB, USD, EUR |
| V_Domain | Домен платёжной системы |
Конфигурация сервиса (appsettings.json)
| Параметр | Описание |
|---|---|
| IPWhiteList | Список разрешённых IP для callback. Доступ: отдел разработки |
API Endpoints
URL платежа: https://<V_Domain>/api/payment
Callback
URL для callback: https://cloud.shelter.ru/Freedompay/Result
Алгоритм подписи
Алгоритм: MD5
- Преобразовать объект в плоский словарь
- Отсортировать по имени параметра
- Конкатенировать значения через ";"
- Добавить префикс "Result;" и секретный ключ
- Вычислить MD5
Процесс оплаты
- Клиент нажимает «Оплатить»
- Формирование данных платежа
- Вычисление подписи (sig)
- Отправка данных на Freedompay
- Редирект клиента на страницу оплаты
- После оплаты — callback на /Result
- Проверка подписи и запись платежа
Поддерживаемые валюты
| Код | Валюта |
|---|---|
| KZT | Казахстанский тенге |
| RUB | Российский рубль |
| USD | Доллар США |
| EUR | Евро |
Коды НДС (tax_type)
| Код | Описание |
|---|---|
| 0 | Без НДС |
| 2 | НДС 12% |
| 4 | НДС 18% |
| 6 | НДС 10% |
| 8 | НДС 20% |
Мониторинг (Zabbix)
Health check URL: https://cloud.shelter.ru/Freedompay/
Логирование
Все события логируются в Graylog (channel: Freedompay).
Примеры сообщений при callback
Получен callback:
Оплата: POST /Freedompay/Result Data: {"order":"12345","amount":5000.00,"status":"success","sig":"abc123"}
Успешная оплата:
Оплата успешно: 100
Ошибка подписи:
Ошибка оплаты: Сформированная сигнатура не совпадает с полученной
Неверный статус:
Ошибка оплаты: статус не success
Устранение неполадок
Ошибка «Invalid signature»
Причина: Неправильно сформирована подпись.
Решение:
- Проверьте алгоритм формирования плоского массива
- Убедитесь в правильной сортировке параметров
- Проверьте секретный ключ
Callback не приходит
Решение:
- Проверьте URL в options.callbacks.result_url
- Убедитесь, что сервер доступен из интернета