"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;