<?php
|
include_once '/Common/CommFunc.php';
|
include_once '/Common/Logging.php';
|
include_once "/db/DBOper.php";
|
include_once "/ProjComm/CfgReader.php";
|
|
header("Content-type: text/html; charset=utf-8");
|
|
// https://developer.shg.vn/article/view?id=150&lang=ch
|
|
\Logging\CreateLogging("yn.queryrole.php");
|
\Logging\LogInfo("_POST: " . print_r($_POST, true));
|
|
$server_id = $_POST["server_id"]; // cp方区服id
|
$role_id = $_POST["role_id"]; // cp方角色id
|
$timestamp = $_POST["timestamp"]; // 签名时间戳(秒)
|
$sign = $_POST["sign"];
|
|
$appid = "hyyngame";
|
$channelID = 1;
|
|
// 网页充值,17 18服特殊处理ID互换
|
if ($server_id == 17) {
|
$server_id = 18;
|
\Logging\LogInfo("17服18服查角色时特殊处理ServerID互换!");
|
} elseif ($server_id == 18) {
|
$server_id = 17;
|
\Logging\LogInfo("17服18服查角色时特殊处理ServerID互换!");
|
}
|
|
if (
|
!\CfgReader\ReadConfig()
|
|| !\CfgReader\GetConfigData("Quick", "Key_" . $appid . "_Callback_Key", $Callback_Key)
|
) {
|
retFail("CfgError");
|
exit;
|
}
|
|
$md5SignLocal = make_sign($_POST, $Callback_Key);
|
if ($md5SignLocal != $sign) {
|
retFail("ErrorSign", "md5SignLocal:" . $md5SignLocal . " != sign:" . $sign);
|
exit;
|
}
|
|
$gameServerInfo = \CommFunc\GetGameServerInfo($appid, $server_id);
|
if (!isset($gameServerInfo)) {
|
retFail("server_id error");
|
exit;
|
}
|
|
$postUrl = str_replace("Server/Tool.php", "api/yn/queryPlayerID.php", $gameServerInfo["Page"]);
|
\Logging\LogInfo("postUrl: " . $postUrl);
|
$postData = array("PlayerID" => $role_id);
|
|
\Logging\LogInfo("postData: " . print_r($postData, true));
|
$retStr = \CommFunc\DoPost($postUrl, $postData);
|
\Logging\LogInfo("retStr: " . $retStr);
|
$ret = json_decode($retStr, true);
|
if (isset($ret)) {
|
if ($ret["errorcode"] == 0) {
|
if ($ret["data"]) {
|
$playerData = $ret["data"];
|
$accID = $playerData["AccID"];
|
$accIDParts = explode("@", $accID);
|
$user_id = implode("@", array_slice($accIDParts, 0, count($accIDParts) - 3));
|
$retData = array(
|
"user_id" => $user_id,
|
"server_id" => $server_id,
|
"server_name" => $gameServerInfo["Name"],
|
"role_id" => $playerData["PlayerID"] . "",
|
"role_name" => $playerData["PlayerName"],
|
"role_level" => $playerData["LV"],
|
);
|
retOK($retData);
|
} else {
|
retOK(array());
|
}
|
} else {
|
retFail($ret["errordesc"]);
|
}
|
} else {
|
retFail("fail");
|
}
|
|
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));
|
}
|
|
function retOK($data)
|
{
|
ret(0, "OK", $data);
|
}
|
|
function retFail($msg, $errMsg = "")
|
{
|
\Logging\LogError("msg:" . $msg . " errMsg:" . $errMsg);
|
ret(1, $msg);
|
}
|
function ret($code, $msg, $data = array())
|
{
|
\Logging\LogInfo("code:" . $code . " msg:" . $msg);
|
$retData = array("code" => $code, "msg" => $msg, "data" => $data);
|
echo \CommFunc\MyJson_encode($retData);
|
}
|