Общая информация🔗
Подключение к API🔗
- URL для подключения: https://mrgs.astrum.team/pub/s2s.php
- URL для тестирования: https://mrgs.astrum.team/pub/s2s_test.php
| Параметр | Метод | Значение | Обязательно | Тип | Описание |
|---|---|---|---|---|---|
| action | GET | device_info | да | строка | Команда запроса |
| appId | GET | 38 | да | число | ID приложения |
| hash | GET | 00d0f8f01cff64ab2e8f2a4122b318b1 | да | строка | Подпись запроса. md5(все параметры, отсортированные по алфавиту + секретный ключ приложения) |
| format | GET | json | нет | строка | Формат ответа сервера |
Формат ответа🔗
| Параметр | Описание |
|---|---|
| json | Возвращает JSON (по умолчанию) |
| php | PHP сериализация |
| amf | AMF3 бинарный формат |
Ответ🔗
Если в ответе параметр status равен 0, то запрос прошел успешно. Если status меньше 0 - произошла ошибка. Текст ошибки будет в параметре error.
Параметр result, при ошибке, будет пустым массивом.
Проверка подписи🔗
Hash вычисляется по следующим правилам. Все параметры GET запроса сортируются по алфавиту (по ключам) и собираются в строчку через http_build_query(). После этого к строке добавляется символ & и секретный ключ приложения. После этого берется MD5 от получившейся строки
Пример🔗
/pub/s2s.php?action=device_info&appId=38&format=json&openUDID=7a094faa0667549d6d39d65b1736d0be064730c4&hash=598b6a8f699da98cf68021c261c21eb2
$GET = array(
'appId' => 38,
'action' => 'device_info',
'format' => 'json',
'openUDID' => '7a094faa0667549d6d39d65b1736d0be064730c4',
);
ksort($GET);
$GETString = http_build_query($GET); // action=device_info&appId=38&format=json&openUDID=7a094faa0667549d6d39d65b1736d0be064730c4
$hash = md5($GETString.'&'.$server_secret_key); // md5('action=device_info&appId=38&format=json&openUDID=7a094faa0667549d6d39d65b1736d0be064730c4&'.'CeWMmaBX6hIvxxCs2qXlPKwjxl4YscD5') в целях безопасности, секретный ключ был изменен в примере.
Ответ
array (
'status' => 0,
'error' => '',
'result' =>
array (
'id' => '7a094faa0667549d6d39d65b1736d0be064730c4',
'deviceName' => 'iPhone Simulator',
'country' => 'RU',
'platform' => 'x86_64',
'odin1' => 'dfb7f341235ffa1d2b3e13eaa63fb1d658390b0c',
'displayHeight' => '568',
'displayWidth' => '320',
'language' => 'en',
'localizedModel' => 'iPhone Simulator',
'memoryMax' => '8192.00',
'model' => 'iPhone Simulator',
'systemName' => 'iPhone OS',
'systemVersion' => '6.0',
'timeZone' => '+0400',
'reachability' => '2',
'carrier' => '',
'isPayment' => '1',
'isTest' => '1',
'ip' => '1599402021',
'flags' => '1',
'registerTime' => '1353585172',
'lastActiveTime' => '1355346237',
'atime' => '1355346436',
'location' =>
array (
'id' => '7a094faa0667549d6d39d65b1736d0be064730c4',
'City' => 'Moscow',
'Country' => 'Russia',
'CountryCode' => 'RU',
'Name' => 'Ленинградский проспект 45к5',
'State' => 'Moscow',
'Street' => 'Ленинградский проспект 45к5',
'SubAdministrativeArea' => 'Moscow',
'SubThoroughfare' => '45к5',
'Thoroughfare' => 'Ленинградский проспект',
'ZIP' => '125167',
'latitude' => '55.79766',
'longitude' => '37.53194',
'ctime' => '1355346232',
'atime' => '1355346436',
),
'applications' =>
array (
1 =>
array (
'id' => '16',
'deviceId' => '7a094faa0667549d6d39d65b1736d0be064730c4',
'applicationId' => '38',
'applicationVersion' => '1.1',
'applicationBuild' => '700',
'country' => 'RU',
'displayName' => 'MRGServiceExample',
'identifier' => 'ru.akeb.MRGServiceExample',
'name' => 'MRGServiceExample',
'memoryUse' => '24.04',
'registerTime' => '1353585172',
'lastActiveTime' => '1355346237',
'isPayment' => '0',
'atime' => '1355346436',
),
),
'token' =>
array (
),
),
)
Коды общих ошибок для всех запросов🔗
| Код | Описание |
|---|---|
| 0 | Нет ошибок |
| -1 | Нет подписи! |
| -2 | Нет приложения! |
| -3 | Нет команды! |
| -4 | Нет такой команды! |
| -5 | Нет такого формата! |
| -6 | Нет такого приложения! |
| -7 | Неправильная подпись! |
Последнее обновление: 2025-01-21
Дата создания: 2020-01-16
Дата создания: 2020-01-16