Общая информация🔗
Введение🔗
Игровые сервера должны принимать некоторые данные от MRGS, к примеру данные о выдаче игровых бонусов или о платеже пользователя.
Один из менеджеров создает новый бонус и спустя некоторое время выдает этот бонус для игрока UserID=e7b9bdd689f099cb0490ab6a25e0139b в приложении MRGServiceExample под ID=38.
Когда менеджер, подтвердит выдачу бонуса для этого игрока, то в очередь отправки межсерверных сообщений попадет еще одно сообщение, которое будет отправлено в течении минуты на игровой сервер по адресу, который записан в настройках приложения.

К примеру: для приложения MRGServiceExample указан адрес - https://your.game.server/pub/mrgs.php
Менеджер выдал бонус.
Крон, который занимается рассылкой сообщений, собирает все необходимые данные и отправляет их через CURL на данный адрес, дописывая в GET-параметры: действие и подпись.
Все остальные данные, передаются POST-ом или JSON.
В результате крон отправит данные на https://your.game.server/pub/mrgs.php?action=bonus&hash=12de10299c1a96d3bb3c750ddec62c6e
Из адресной строки мы видим передаваемое действие action=bonus и hash, который является подписью.
Процесс создания и валидации подписи описан в разделе Проверка подписи.
POST-ом передаются следующие данные:
{
bonus: {
id: 1,
userId: e7b9bdd689f099cb0490ab6a25e0139b,
deviceId: 8fdd6ce268d633837ed987506bc1e905fcd62ef9,
...
},
appId: 38,
appVersion: 1.0.3,
requestUserId: e7b9bdd689f099cb0490ab6a25e0139b,
user: {
id: e7b9bdd689f099cb0490ab6a25e0139b,
...
},
user_info: {
id: e7b9bdd689f099cb0490ab6a25e0139b,
...
},
device: {
id: 8fdd6ce268d633837ed987506bc1e905fcd62ef9,
...
}
}
Основная информация находится по тому ключу, который был передан в action.
При желании можно принимать параметры не в POST массиве, а в виде JSON. Для этого нужно в настройках приложения установить галочку "Отправлять данные на сервер в JSON"
Общие параметры🔗
Во всех запросах на сервер будет приходить три массива user, device_application и device
[user] => Array (
[id] => 87bdfdc480c8b629e157839e75fdf2e0
[appId] => 38
[deviceId] => 7a094faa0667549d6d39d65b1736d0be064730c4
[deviceName] => iPhone Simulator
[slot] => 1
[country] => RU
[data] =>
[notes] => Поменял время на устройстве
[stime] => 1353689947
[atime] => 1356103632
[appVersion] => 1.1
[appBuild] => 700
[language] => en
[registerTime] => 1353689947
[loginTime] => 1356103387
[logoutTime] => 0
[flags] => 1
[isPayment] => 1
),
[device_application] => Array (
[id] => 16
[deviceId] => 7a094faa0667549d6d39d65b1736d0be064730c4
[applicationId] => 38
[applicationVersion] => 1.1
[applicationBuild] => 700
[platform] => x86_64
[country] => RU
[displayName] => MRGServiceExample
[identifier] => ru.akeb.MRGServiceExample
[name] => MRGServiceExample
[memoryUse] => 25.12
[registerTime] => 1353585172
[lastActiveTime] => 1356103387
[isPayment] => 0
[source] => 992205ecc38d44578f3cf46ab53c03a6
[atime] => 1356103632
),
[device] => 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
[isJailbreak] => 0
[ip] => 2147483647
[flags] => 1
[registerTime] => 1353585172
[lastActiveTime] => 1356103387
[atime] => 1356103632
)
Дата создания: 2020-01-16