<?php
|
include_once "../../../Common/Logging.php";
|
include_once '../../../Common/CommFunc.php';
|
include_once '../../../Common/MongoDB7.php';
|
include_once "wxfunc.php";
|
include_once "GamePlayer.php";
|
|
function doGameServerGMLogic($openid, $gameconfig, $cmd, $paramList)
|
{
|
$ret = array();
|
// 设置 货币
|
if ($cmd == "setMoney") {
|
if (!$paramList || count($paramList) != 2) {
|
return ["help" => "setMoney 货币类型 货币值"];
|
}
|
$gamePlayer = new GamePlayer($openid, $gameconfig["db"]);
|
$ret = $gamePlayer->SetMoney($paramList[0], $paramList[1]);
|
}
|
// 设置 本周最高分
|
else if ($cmd == "setWeekScore") {
|
if (!$paramList || count($paramList) != 1) {
|
return ["help" => "setWeekScore 本周最高分"];
|
}
|
$gamePlayer = new GamePlayer($openid, $gameconfig["db"]);
|
$ret = $gamePlayer->UpdateFieldValue("weekScore", (int) $paramList[0]);
|
}
|
// 设置 历史最高分
|
else if ($cmd == "setHighestScore") {
|
if (!$paramList || count($paramList) != 1) {
|
return ["help" => "setHighestScore 历史最高分"];
|
}
|
$gamePlayer = new GamePlayer($openid, $gameconfig["db"]);
|
$ret = $gamePlayer->UpdateFieldValue("highestScore", (int) $paramList[0]);
|
}
|
// 设置 已过关关卡
|
else if ($cmd == "setMissionNum") {
|
if (!$paramList || count($paramList) != 1) {
|
return ["help" => "setMissionNum 关卡"];
|
}
|
$gamePlayer = new GamePlayer($openid, $gameconfig["db"]);
|
$ret = $gamePlayer->UpdateFieldValue("missionNum", (int) $paramList[0]);
|
}
|
return $ret;
|
}
|
|
function doPlatformServerGMLogic($appid, $secret, $openid, $gameconfig, $cmd, $paramList)
|
{
|
// 以下是需要与微信服务器交互的命令,需要 session_key
|
$ret = array();
|
$dbOpt = new \MongoDB7\MongoDb("session", $gameconfig["db"]);
|
$where = ['openid' => $openid];
|
$result = $dbOpt->query($where);
|
if (!$result) {
|
Logging\LogError("找不到玩家session_key!" . $openid);
|
return ["error" => "no session_key"];
|
}
|
$sessionKey = $result[0]["session_key"];
|
|
$wx = new WXFunc();
|
// 删除已经上报到微信的key-value数据
|
if ($cmd == "removeUserStorage") {
|
if (!$paramList) {
|
return ["help" => "removeUserStorage 普通托管数据key"];
|
}
|
$ret = $wx->removeUserStorage($appid, $secret, $openid, $sessionKey, $paramList);
|
}
|
|
// 上报用户数据后台接口。小游戏可以通过本接口上报key-value数据到用户的CloudStorage。
|
else if ($cmd == "setUserStorage") {
|
if (!$paramList) {
|
return ["help" => "setUserStorage 普通托管数据key"];
|
}
|
}
|
|
// 写用户关系链互动数据存储
|
else if ($cmd == "setUserInteractiveData") {
|
if (!$paramList || count($paramList) != 2) {
|
return ["help" => "setUserInteractiveData 互动数据key1~50 设置值"];
|
}
|
$kv_list = [[
|
'key' => $paramList[0],
|
'value' => $paramList[1]
|
]];
|
$ret = $wx->setUserInteractiveData($appid, $secret, $openid, $sessionKey, $kv_list);
|
}
|
return json_decode($ret, true);
|
}
|
|
function filter_null($v)
|
{
|
return str_replace(" ", "", $v) != "";
|
}
|
|
\Logging\CreateLogging("wx.gm.php");
|
|
$openid = $_POST['openid'];
|
$gamename = $_POST['gamename'];
|
$gmCmdInfo = explode(" ", $_POST['cmd']);
|
Logging\LogInfo("_POST: " . print_r($_POST, true));
|
|
$gameconfig = parse_ini_file("config/" . $gamename . ".ini", true);
|
$appid = $gameconfig["app"]["appid"];
|
$secret = $gameconfig["app"]["appSecret"];
|
|
$ret = array();
|
$cmd = $gmCmdInfo[0];
|
$paramList = array_slice($gmCmdInfo, 1);
|
$paramList = array_filter($paramList, "filter_null"); // 去除空元素
|
Logging\LogInfo("cmd: " . $cmd);
|
Logging\LogInfo("paramList: " . print_r($paramList, true));
|
|
$ret = doGameServerGMLogic($openid, $gameconfig, $cmd, $paramList);
|
if (count($ret) == 0) {
|
$ret = doPlatformServerGMLogic($appid, $secret, $openid, $gameconfig, $cmd, $paramList);
|
}
|
$ret = json_encode($ret);
|
Logging\LogInfo("ret: " . $ret);
|
echo $ret;
|