"localhost", "name" => "youle_games", "user" => "root", "pwd" => "root", "port" => "3333" ); //错误编码及提示 $G_Error = array( "condb" => array("code" => 81, "msg" => "database connection failed."), "execsql" => array("code" => 82, "msg" => "failed to operate database."), "wrong_a" => array("code" => 83, "msg" => "a parameter error."), "wrong_c" => array("code" => 84, "msg" => "c parameter error."), "wrong_g" => array("code" => 85, "msg" => "g parameter error."), "wrong_do" => array("code" => 86, "msg" => "do parameter error."), "wrong_data" => array("code" => 87, "msg" => "data parameter error."), "wrong_openid" => array("code" => 88, "msg" => "openid is null."), "wrong_unionid" => array("code" => 89, "msg" => "unionid is null.") ); ///////////////////////////// 全局变量 ///////////////////////////// //接口函数返回的json对象 $G_Result = array( "state" => 0, //0:成功 <>0:错误编码 "error" => "", //错误时的描述 "data" => array() //成功时的数据 ); //返回结果$G_G_Result function do_return(){ global $G_Result; if (count($G_Result["data"]) == 0) { $G_Result["data"] = new stdClass; } echo json_encode($G_Result); exit(); } ////////////////////////// 连接MYSQL数据库 ///////////////////////// $PDO = null; try { $PDO = new PDO("mysql:host=".$G_MySql["host"].";port=".$G_MySql["port"].";dbname=".$G_MySql["name"], $G_MySql["user"], $G_MySql["pwd"]); $PDO->exec("set names utf8;"); $PDO->exec("use ".$G_MySql["name"].";"); } catch (Exception $e) { $G_Result['state'] = $G_Error["condb"]["code"]; $G_Result['error'] = $G_Error["condb"]["msg"]; do_return(); } //////////////////////////// 读取参数 //////////////////////////// $a = GetRequest("a"); if ($a == null || $a == "") { $G_Result['state'] = $G_Error["wrong_a"]["code"]; $G_Result['error'] = $G_Error["wrong_a"]["msg"]; do_return(); } $c = GetRequest("c"); if ($c == null || $c == "") { $G_Result['state'] = $G_Error["wrong_c"]["code"]; $G_Result['error'] = $G_Error["wrong_c"]["msg"]; do_return(); } $g = GetRequest("g"); if ($g == null || $g == "") { $G_Result['state'] = $G_Error["wrong_g"]["code"]; $G_Result['error'] = $G_Error["wrong_g"]["msg"]; do_return(); } $do = GetRequest("do"); if ($do != 1 && $do != 2) { $G_Result['state'] = $G_Error["wrong_do"]["code"]; $G_Result['error'] = $G_Error["wrong_do"]["msg"]; do_return(); } //读取data参数 $str_data = GetRequest("data"); //php收到后将^号替换为=号,替换回来,,以避免=号POST传参会截断的问题 //$str_data = str_replace("^","=",$str_data); //检查data是否为空 if ($str_data == null || $str_data == "") { $G_Result['state'] = $G_Error["wrong_data"]["code"]; $G_Result['error'] = $G_Error["wrong_data"]["msg"]; do_return(); } //检查data是否能转成json $json_data = json_decode($str_data); if ($json_data == null) { $G_Result['state'] = $G_Error["wrong_data"]["code"]; $G_Result['error'] = $G_Error["wrong_data"]["msg"]; do_return(); } switch ($do){ case 1: get_roomcard($a, $c, $g, $json_data); do_return(); break; case 2: change_roomcard($a, $c, $g, $json_data); do_return(); break; } //根据参数名获取参数 function GetRequest($name) { return isset($_REQUEST[$name])?$_REQUEST[$name]:''; } //获取房卡数量 function get_roomcard($agentid, $channelid, $gameid, $data) { global $G_Result, $G_Error, $PDO; $openid = $data->openid; $unionid = $data->unionid; $nickname = $data->nickname; $avatar = $data->avatar; $sex = $data->sex; $province = $data->province; $city = $data->city; if ($openid == null || $openid == "") { $G_Result['state'] = $G_Error["wrong_openid"]["code"]; $G_Result['error'] = $G_Error["wrong_openid"]["msg"]; do_return(); } if ($unionid == null || $unionid == "") { $G_Result['state'] = $G_Error["wrong_unionid"]["code"]; $G_Result['error'] = $G_Error["wrong_unionid"]["msg"]; do_return(); } $stmt = $PDO->prepare("call cp_third_get_roomcard(?,?,?,?,?,?,?,?,?,?)"); if ($stmt->execute(array($agentid, $channelid, $gameid, $openid, $unionid, $nickname, $avatar, $sex, $province, $city))){ $aryData = $stmt->fetch(PDO::FETCH_NAMED); if ($aryData["result"] != 0){ $G_Result['state'] = $aryData["result"]; $G_Result['error'] = $aryData["error"]; } else { $G_Result['data']["playerid"] = (int)$aryData["playerid"]; $G_Result['data']["roomcard"] = (int)$aryData["roomcard"]; } } else { $G_Result['state'] = $G_Error["execsql"]["code"]; $G_Result['error'] = $G_Error["execsql"]["msg"]; } } //修改房卡数量 function change_roomcard($agentid, $channelid, $gameid, $data) { global $G_Result, $G_Error, $PDO; $openid = $data->openid; $unionid = $data->unionid; $change = $data->change; $stmt = $PDO->prepare("call cp_third_change_roomcard(?,?,?,?,?,?)"); if ($stmt->execute(array($agentid, $channelid, $gameid, $openid, $unionid, $change))){ $aryData = $stmt->fetch(PDO::FETCH_NAMED); if ($aryData["result"] != 0){ $G_Result['state'] = $aryData["result"]; $G_Result['error'] = $aryData["error"]; } else { $G_Result['data']["playerid"] = (int)$aryData["playerid"]; $G_Result['data']["roomcard"] = (int)$aryData["roomcard"]; $G_Result['data']["change"] = (int)$aryData["amount"]; } } else { $G_Result['state'] = $G_Error["execsql"]["code"]; $G_Result['error'] = $G_Error["execsql"]["msg"]; } } ?>