hxp
2025-06-09 6c3f6335c70859ded94a1ad8d218acb0ac34239c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
include_once '/Common/CommFunc.php';
include_once '/Common/Logging.php';
include_once "/ProjComm/CfgReader.php";
include_once "/language/lang.php";
include_once "/db/DBOper.php";
 
header("Content-type: text/html; charset=utf-8");
 
// https://www.eolink.com/share/inside/Yk3vUm/api/844628/detail/3309969
 
\Logging\CreateLogging("gmgame.clear_bag.php");
\Logging\LogInfo("_POST: " . print_r($_POST, true));
 
$role_id = $_POST["role_id"]; // 角色ID
$server_id = $_POST["server_id"]; // 游戏区服ID
$sign = $_POST["sign"]; // 签名校验  sign = md5(server_id+role_id+key);
 
$appid = "gmgame";
 
if (
    !\CfgReader\ReadConfig()
    || !\CfgReader\GetConfigData("gmgame", "Md5_Key2", $Md5_Key)
) {
    retFail("CfgError");
    exit;
}
 
$md5SignLocal = md5($server_id . $role_id . $Md5_Key);
if ($md5SignLocal != $sign) {
    retFail("ErrorSign", "md5SignLocal:" . $md5SignLocal . " != sign:" . $sign);
    exit;
}
 
// 验证账号
$playerID = intval($role_id);
$find = array("Channel" => $appid, "PlayerID" => $playerID);
if (!\DBOper\FindOne("ServerRoles", $find, $roleInfo, array("AccountID" => 1, "ServerID" => 1, "_id" => 0), false)) {
    retFail("fail");
    exit;
};
\Logging\LogInfo("roleInfo: " . print_r($roleInfo, true));
if (!isset($roleInfo)) {
    retFail("role_id_error");
    exit;
}
$AccountID = $roleInfo["AccountID"];
$dbServerID = $roleInfo["ServerID"];
if (intval($server_id) != $dbServerID) {
    retFail("server_id_error");
    exit;
}
 
// 发送邮件
$accID = $AccountID . "@" . $appid . "@s" . $dbServerID;
// -------------- 测试数据 --------------
// $accID = "tq321@test@s86";
// $appid = "test";
// $server_id = "86";
// -------------- 测试数据 --------------
 
$packData = array(
    "queryType" => "accID",
    "playerFind" => $accID,
    "clearBagList" => "[2, 32, 255]" // 暂时清理 物品背包2 + 神兽背包32 + 符印背包255
);
$retList = \CommFunc\SendGMTToGameServers(True, "GMT_ClearBag", $packData, $appid, array($server_id));
\Logging\LogInfo("retList:" . print_r($retList, true));
if (!is_array($retList)) {
    retFail("clear_error");
    exit;
}
$ret = json_decode($retList[$server_id], true);
if (!$ret || !array_key_exists("ResultType", $ret) || $ret["ResultType"] != 0) {
    retFail("clear_fail");
    exit;
}
ret(0, "OK");
exit;
 
function retFail($msg, $errMsg = "")
{
    $code = -1;
    \Logging\LogError("err_code:" . $code . " err_msg:" . $msg . " errMsg:" . $errMsg);
    ret($code, $msg);
}
function ret($code, $msg)
{
    $retData = array("err_code" => $code, "err_msg" => $msg);
    echo \CommFunc\MyJson_encode($retData);
}