Paykeeper

Продукт: Shelter Cloud | Уровень: Shelter | Статус: Stable

ID системы: 8

Описание

Интеграция с платёжной системой Paykeeper для приёма онлайн-платежей. Российская платёжная система с поддержкой фискализации.

Настройка в Shelter Cloud

Параметры учётной записи настраиваются через PrivateSettings:

Параметр Описание
V_PayKeeperUrl URL сервера Paykeeper
V_PayKeeperPassword Пароль для подписи
V_Phone Телефон по умолчанию
V_Email Email по умолчанию

Конфигурация сервиса (appsettings.json)

Параметр Описание
IPWhiteList Список разрешённых IP для callback. Доступ: отдел разработки

API Endpoints

URL платежа: https://<V_PayKeeperUrl>/pay/

Callback

URL для callback: https://cloud.shelter.ru/payments/Default.aspx

Алгоритм подписи

Алгоритм: SHA256

sign = SHA256(sum + clientid + orderid + service_name + client_email + client_phone + password)

Процесс оплаты

  1. Клиент нажимает «Оплатить»
  2. Получение данных брони и строк оплаты
  3. Формирование параметров и подписи
  4. POST на сервер Paykeeper
  5. Редирект клиента на страницу оплаты
  6. После оплаты — callback
  7. Запись платежа

Параметры запроса

Параметр Описание
sum Сумма в рублях (целое)
orderid Номер заказа
service_name Описание услуги
client_email Email клиента
client_phone Телефон клиента
clientid Имя клиента
sign Подпись (SHA256)

Поддерживаемые валюты

Код Валюта
RUB Российский рубль

Мониторинг (Zabbix)

Health check URL: https://cloud.shelter.ru/payments/

Логирование

Все события логируются в Graylog (channel: Paykeeper).

Примеры сообщений при callback

Получен callback:

Callback. OrderId:ORD-001 (cashId:100 reservationId:200 orderId: 300) Sum: 5000.00 Body: clientid=Guest&orderid=ORD-001&sum=5000&sign=abc123

Валидная подпись:

Callback: Valid

Ошибка подписи:

Callback: Invalid hash: Сформированная подпись не совпадает

Ошибка обработки:

Callback: Не заданы параметры Paykeeper

Устранение неполадок

Ошибка «Не заданы параметры Paykeeper»

Причина: Отсутствуют учётные данные для кассы.

Решение: Проверьте настройки в PrivateSettings.

Неверная подпись

Решение:

  1. Проверьте порядок конкатенации параметров
  2. Убедитесь, что сумма передаётся как целое число
  3. Проверьте кодировку (UTF-8)

Main cash is not found

Причина: Нет главной строки начисления.

Решение: Проверьте, что у начисления B_IsMain = 1.

Связанная документация