Перейти к содержанию

Общая информация🔗

Введение🔗

Игровые сервера должны принимать некоторые данные от MRGS, к примеру данные о выдаче игровых бонусов или о платеже пользователя.

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

server_url_settings

К примеру: для приложения 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-02-25
Дата создания: 2020-01-16