$channel, "ServerID" => $server_id), $serverInfo, null, false) || !isset($serverInfo)) { exit; } $StartDateStr = $serverInfo["StartDate"]; $JsonBranch = $serverInfo["JsonBranch"]; $ServerName = $serverInfo["ServerName"]; // 请求参数 // 属性 描述 类型 必填 // game_id 我方的游戏id,我们运营提供 int 是 // server_id 区服id String 是 // server_name 区服名称 String 是 // open_time 开服时间,格式yyyy-MM-dd HH:mm:ss string 是 // timestamp 请求时间,时间戳,精确到秒 int 是 // sign 签名 String 是,通用签名规则 // 响应结果 // 属性 描述 类型 必返 // code 响应码:0成功,1失败 int 是 // msg 响应消息 string 是 // data 响应数据 array 否 $postData = array( "game_id" => $game_id, "server_id" => $server_id, "server_name" => $ServerName, "open_time" => $StartDateStr, "timestamp" => time(), ); $postData["sign"] = make_sign($postData, $Callback_Key); $postUrl = "https://api.aldgames.com/cp/report_server"; // $postUrl = "http://127.0.0.1:8080/serverops/hy/report_server_t.php"; \Logging\LogInfo("postUrl: " . $postUrl); \Logging\LogInfo("postData: " . print_r($postData, true)); $retStr = \CommFunc\DoPost($postUrl, $postData); \Logging\LogInfo("retStr: " . $retStr); $ret = json_decode($retStr, true); if (!isset($ret) || $ret["code"] != 0) { \Logging\LogError("errormsg:" . $ret["msg"]); echo $retStr; exit; } \Logging\LogInfo("report_server OK! server_id:" . $server_id); $ReportSPTime = date("Y-m-d H:i:s"); DBOper\Update("GameServers", array("Channel" => $channel, "ServerID" => $server_id), array("ReportSPTime" => $ReportSPTime)); $ret["ReportSPTime"] = $ReportSPTime; echo json_encode($ret); exit; function make_sign(array $data, $game_key) { if (array_key_exists('sign', $data)) { unset($data['sign']); } ksort($data); $_data = []; foreach ($data as $k => $v) { $_data[] = $k . '=' . $v; } $str = implode('&', $_data) . '&' . $game_key; return sha1(md5($str)); }