Mobile API — API, используемое приложением Mobifitness, FitnessKit для клиентов, МойФитнес, а также подходящее для использования на сайтах.
Для работы требуется настройка службы web-service.
Получение анкеты по ID:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"e79a79be-f18a-4b65-812b-6da2a49ea477", "ClubId": "1", "Method": "getClientById", "Parameters": {"ClientID": "17"}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Получение списка посещений:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"e79a79be-f18a-4b65-812b-6da2a49ea478", "ClubId": "1", "Method": "getVisitHistory", "Parameters": {"ClientID": "17"}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Список тренеров для предзаписи:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"79a79be-f18a-4b65-812b-6da2a49ea479", "ClubId": "1", "Method": "getAvailableTrainers", "Parameters": {"ServiceID": null, "StartDate": "2020-02-18 00:00", "EndDate": "2020-03-02 23:59"}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Доступные для предзаписи услуги:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"532279a79be-f18a-4b65-812b-6da2a49ea479", "ClubId": "1", "Method": "getAvailableServices", "Parameters": {"ClientID": 16}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Расписание:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"a29a79be-f18a-4b65-812b-6da2a49ea477", "ClubId": "1", "Method": "getSchedule", "Parameters": {"StartDate": "2025-01-01", "EndDate": "2025-01-31"}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Загрузка клуба:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"a29a79be-f18a-4665-812b-6da2a49ea477", "ClubId": "1", "Method": "getLoadClub", "Parameters": {"ClubId": 1}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Покупка:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"a29b79fe-d18a-4665-812b-6da2a49ea478", "ClubId": "1", "Method": "BuyAndPay", "Parameters": {"ClientID": "437850", "IDTransaction": "bank_transaction_ids", "BuyList": [{"Id": "k36", "Type": "Buy"}]}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
Предварительная запись:
curl -H "Content-Type: application/json" -X POST -d '{"Request_id":"b29b79ce-e18a-4665-812b-6da2a49ea348", "ClubId": "1", "Method": "setAppointment", "Parameters": {"ClientID": "17", "DateTime": "2025-02-27T18:00:00", "RoomID": "8", "Duration": 60, "ServiceID": "68", "EmployeeID": "0", "Reserve": true}}' 'https://test.club-is.ru/api/mobile?USER_ID=30&USER_HASH=f77d565e02169dad60bca51ea19bd53cf1a041d6'
$apiproto = 'https'; // Протокол
$apiaddr = 'test.club-is.ru'; // IP или адрес домена с API
$apiport = ''; // Порт
// Параметры авторизации
$user_id = 30;
$user_hash = 'f77d565e02169dad60bca51ea19bd53cf1a041d6';
$link = $apiproto . '://' . $apiaddr . '/api/mobile?USER_ID=' . $user_id . '&USER_HASH=' . $user_hash;
// Параметры запроса
$request_id = uniqid(); // генерируем уникальный UUID для запроса
$data = array(
'Request_id' => $request_id,
'ClubId' => 1,
'Method' => 'getClientById',
'Parameters' => array(
'ClientID' => 17
)
);
$curl = curl_init(); // Используем cURL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $link);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$out = curl_exec($curl); // Создаем запрос к API
echo 'link:<br>';
echo $link;
echo '<hr>data:<br>';
echo json_encode($data);
echo '<hr>response:<br>';
echo $out; // Выводим результат
Mobifitness или разработчикам сайта нужно предоставить:
http://ip:порт/api/mobile или https://ip:порт/api/mobile в зависимости от выбранного протокола http или https. IP должен быть внешним, белым; на роутере нужно пробросить порт до сервера со службой.USER_ID и USER_HASH находятся на вкладке «Прочее» в модуле «Администратор → Сотрудники → Свойства сотрудника». От этого пользователя в базе будут создаваться данные. Лучше создать отдельного пользователя для этого и правой кнопкой задать ему пароль (на его основе будет сгенерирован USER_HASH и соответственно будет меняться при его смене).




На рабочей станции, на которой настроен web-service, нужно подключить и настроить ККМ для нужного юрлица. Этого достаточно, чтобы оплаты начали пробиваться по ККМ.
Также существуют дополнительные ключи, например если оплаты пробиваются по кассе облачной на стороне Mobifitness и их не нужно проводить по ККМ повторно. Ключи создаются на компьютере, где работает служба, в разделе реестра Компьютер\HKEY_CURRENT_USER\Software\ClubIS LLC\ClubIS Fitness\web-service.
Строковый параметр deposit_fiscalize (true или false) — для включения/отключения пробития чека по депозиту на стороне программы.
Параметр DWORD deposit_legal_id — юрлицо в созданное внесение депозита, необязательно. Если не указано — ставится юрлицо из договора.
Параметр DWORD deposit_paytype_id — тип оплаты, необязательно. Если не указано — «Карта».
Параметры типа оплаты и юрлица также выведены в интерфейсе «Администратор → Интеграции → Mobile API → Тип оплаты» и «Юр.лицо».
По умолчанию чеки и контракт оплачиваются с депозита типом оплаты «депозит»; для всего остального используется указанный тип оплаты (прямая оплата, внесение депозита).

