hxp
2025-06-04 f4a514d5ac952110da846636ecbb9de951eaf3d2
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
include_once '/Common/CommFunc.php';
include_once '/Common/Logging.php';
include_once "/ProjComm/CfgReader.php";
include_once "quicksdkAsy.php";
 
header("Content-type: text/html; charset=utf-8");
 
// https://www.quicksdk.com/doc-512.html#catlog4
 
\Logging\CreateLogging("quick.facebookgift.php");
\Logging\LogInfo("_POST" . print_r($_POST, true));
 
$user_id = $_POST["uid"]; // 平台账号        领取礼包的用户uid
$role_id = $_POST["roleInfo"]; // 玩家ID     游戏跳转活动页面是传递的游戏roleId,原样返回
$area_id = $_POST["serverInfo"]; // 区服ID       游戏跳转活动页面是传递的游戏serverId,原样返回
$code = $_POST["giftNo"];  // 媒体卡     游戏礼包活动唯一值,表示用户要领取的哪个活动礼包
$sign = $_POST["sign"];
 
if (!$user_id || !$area_id || !$code || !$sign) {
    Ret("FAILED", "ParamError");
    return;
}
 
$spid = "mlgtgame";
if ($_POST["spid"]) {
    // 可选参数,也可用于测试用
    $spid = $_POST["spid"];
}
$channelID = "9997";
$appid = $spid;
 
if (
    !\CfgReader\ReadConfig()
    || !\CfgReader\GetConfigData("Quick", "Key_" . $appid . "_hygtgame_Callback_Key", $Callback_Key)
    || !\CfgReader\GetConfigData("Quick", "Key_" . $appid . "_hygtgame_CouponCodeUrl", $CouponCodeUrl)
) {
    Ret("FAILED", "CfgError");
    exit;
}
 
$md5SignLocal = quickAsy::getMd5Sign($Callback_Key);
if ($md5SignLocal != $sign) {
    Ret("FAILED", " SignError md5SignLocal:" . $md5SignLocal . " != sign:" . $sign);
    exit;
}
 
$serverIDArray = array(intval($area_id));
$serverPageInfo = \CommFunc\GetGameServerPageInfo($spid, $serverIDArray);
if (count($serverPageInfo) <= 0) {
    Ret("FAILED", "not serverPageInfo");
    return;
}
// 目标角色对应游戏服务器gmtool地址
$serverPageValues = array_values($serverPageInfo);
 
$pushurl = $serverPageValues[0]["Page"];
if (!$pushurl) {
    Ret("FAILED", "not pushurl");
    return;
}
 
$accid = $user_id . "@" . $channelID;
$getdata = array(
    "channel" => $spid, //  目前同spid
    "spid" => $spid,    // 运营商ID,研发自己配置的,如jisu代表极速平台
    "code" => $code,    // 兑换码
    "accid" => $accid,    // 平台账号
    "sid" => $area_id,  // 服务器ID 数字
    "pushurl" => $pushurl,
    // "level" => $_GET["level"],    // 玩家等级
    // "viplevel" => $_GET["viplevel"], // 玩家VIP等级
);
 
\Logging\LogInfo("CouponCodeUrl: " . $CouponCodeUrl);
\Logging\LogInfo("getdata: " . print_r($getdata, true));
$ret = \CommFunc\DoGet($CouponCodeUrl, $getdata);
\Logging\LogInfo("ret: " . $ret);
 
$result = "FAILED";
if ($ret) {
    $ret = json_decode($ret, true);
    switch ($ret["errcode"]) {
        case 0: // ErrCode_OK = 0 # 成功,非0的码均代表错误
            $result = "SUCCESS";
            break;
        default:
            // ErrCode_Invalid = 1 # 兑换码无效
            // ErrCode_Used = 2 # 礼包码已被使用
            // ErrCode_TypeUsed = 3 # 已经使用过同类型的礼包码
            // ErrCode_LVLimit = 4 # 等级不足
            // ErrCode_VIPLVLimit = 5 # VIP等级不足
            // ErrCode_ParamErr = 97 # 参数错误
            // ErrCode_FrequentRequest = 98 # 频繁请求
            // ErrCode_OtherErr = 99 # 其他错误,比如运行错误等
            break;
    }
}
 
Ret($result);
exit;
 
function Ret($ret, $msg = "")
{
    echo $ret;
    $logMsg = $ret;
    if ($msg) {
        $logMsg .= " msg => " . $msg;
    }
    if ($ret != "SUCCESS") {
        \Logging\LogError($logMsg);
    } else {
        \Logging\LogInfo($logMsg);
    }
}