| <?php | 
| include_once "../../../Common/Logging.php"; | 
| include_once '../../../Common/CommFunc.php'; | 
| include_once '../../../Common/MongoDB7.php'; | 
| include_once "wxfunc.php"; | 
| include_once "GamePlayer.php"; | 
|   | 
| // 该文件名虽然命名为 set ,实际逻辑是处理不为0的互动数据,并设置为0 | 
| \Logging\CreateLogging("wx.setUserInteractiveData.php"); | 
|   | 
| $openid = $_GET['openid']; | 
| $gamename = $_GET['gamename']; | 
| $key = $_GET['key']; | 
| $value = $_GET['value']; | 
| Logging\LogInfo("_GET: " . print_r($_GET, true)); | 
|   | 
| if ($value <= 0) { | 
|     return; | 
| } | 
|   | 
| $gameconfig = parse_ini_file("config/" . $gamename . ".ini", true); | 
| $appid = $gameconfig["app"]["appid"]; | 
| $secret = $gameconfig["app"]["appSecret"]; | 
|   | 
| $dbOpt = new \MongoDB7\MongoDb("session", $gameconfig["db"]); | 
| $where = ['openid' => $openid]; | 
| $result = $dbOpt->query($where); | 
| if (!$result) { | 
|     Logging\LogError("找不到玩家session_key!" . $openid); | 
|     return; | 
| } | 
| $sessionKey = $result[0]["session_key"]; | 
|   | 
| $wx = new WXFunc(); | 
| $kv_list = [[ | 
|     'key' => $key, | 
|     'value' => 0 // 默认设置为0 | 
| ]]; | 
| $ret = $wx->setUserInteractiveData($appid, $secret, $openid, $sessionKey, $kv_list); | 
|   | 
| $ret = json_decode($ret, true); | 
| // 先改托管数据,成功后再处理游戏业务逻辑 | 
| // 修改成功 | 
| if ($ret['errmsg'] == "ok") { | 
|     $gamePlayer = new GamePlayer($openid, $gameconfig["db"]); | 
|     // 赠送钻石 | 
|     if ($key == "1") { | 
|         $giveGold = 5; // 每次给钻石数,需与前端配置一致 | 
|         $giveGoldTotal = $giveGold * $value; | 
|         $gsRet = $gamePlayer->AddGold($giveGoldTotal); | 
|         $ret['gameServerRet'] = $gsRet; | 
|     } | 
| } | 
|   | 
| echo json_encode($ret); |