Commit 74559f62 authored by 吴贤德's avatar 吴贤德

实时下线接口完善(增加请求安全校验)

parent 1f0745c1
媒资实时下线接口
请求:
GET http://api.hotel.wasu.tv/api/center/media_offline?spid=1&mid=33431345
输入:
spid : 合作方标识(我们提供,每个合作方标识不一样)
mid : 媒资标识代码(经纬cms中的媒资id)
输出:
样例 : {"code":0,"msg":"ok"}
code : 0-成功,1001-传入的媒资参数有问题,1002,2001-下线失败
msg : 结果说明
\ No newline at end of file
媒资实时下线接口
请求:
GET http://api.hotel.wasu.tv/api/center/media_offline?spid=1&mid=33431345&sw_time=1523345555&sw_sign=xxxxx
输入:
spid : 合作方标识(我们提供,每个合作方标识不一样)
mid : 媒资标识代码(经纬cms中的媒资id)
sw_time : 请求时间戳
sw_sign : 请求签名 md5(spid&mid&sw_time&key)
如:
md5(1&33431345&1523345555&key)
key : 我们提供(每个spid对应不同的key)
输出:
样例 : {"code":0,"msg":"ok"}
code : 0-成功
101-请求过期
102-签名验证失败
1001-传入的媒资参数有问题
1002-sp info err
2001-下线失败
msg : 结果说明
\ No newline at end of file
...@@ -9,6 +9,21 @@ ...@@ -9,6 +9,21 @@
*/ */
class CenterAction extends Action class CenterAction extends Action
{ {
function valid($sw_time,$sw_sign,$my_sign)
{
$result["code"]=0;
$ts = time() - $sw_time;
if ($ts<=-600||$ts>=600){
$result["code"]=101;
$result["msg"]="timeout!";
}else{
if ($sw_sign!=$my_sign){
$result["code"]=102;
$result["msg"]="sign err!";
}
}
return $result;
}
/** /**
* 系统配置接口 * 系统配置接口
*/ */
...@@ -55,44 +70,63 @@ class CenterAction extends Action ...@@ -55,44 +70,63 @@ class CenterAction extends Action
* spid : 合作方标识(我们提供,每个合作方标识不一样) * spid : 合作方标识(我们提供,每个合作方标识不一样)
* mid : 媒资标识代码(经纬cms中的媒资id) * mid : 媒资标识代码(经纬cms中的媒资id)
* sw_time : 请求时间戳 * sw_time : 请求时间戳
* sw_sign : 请求签名 md5(uri+key) 如: * sw_sign : 请求签名 md5(spid&mid&sw_time&key)
* uri :/api/center/media_offline?spid=1&mid=33431345&sw_time=1523345555
* key : 我们提供(每个spid对应不同的key)
* 返回说明: * 返回说明:
* {"code":0,"msg":"ok"} * {"code":0,"msg":"ok"}
* code : 0-成功,1001-传入的媒资参数有问题,2001-下线失败 * code : 0-成功,101,1001-传入的媒资参数有问题,2001-下线失败
*/ */
public function media_offline(){ public function media_offline(){
$spid = $_GET["spid"]; $spid = $_GET["spid"];
$mcode = $_GET["mid"]; $mid = $_GET["mid"];
$status = 1; $sw_time = $_GET["sw_time"];
$sw_sign =$_GET["sw_sign"];
$model = D("Media");
$where["code"]=$mcode; $status = 2;
$where["sp_id"]=$spid;
$tmp = $model->field("id")->where($where)->find(); $modelSP=D("Conf");
$id= $tmp["id"]; $whereSP["sp_id"]=$spid;
if($id) { $whereSP["type_code"]="api_key";
//下线云端片库 $spConf=$modelSP->field("v")->where($whereSP)->find();
$data["id"]=$id; $key = $spConf["v"];
$data["status"]=$status;
$data["updatetime"]=date('Y-m-d H:i:s'); if ($key) {
$r =$model->save($data); $pre_sign = "$spid&$mid&$sw_time&$key";
// echo "pre:".$pre_sign;
//下线酒店片库 $my_sign = md5($pre_sign);
$tb = "sh_hotel_media_map_$spid"; $result = $this->valid($sw_time,$sw_sign,$my_sign);
$sql = "update $tb set status=$status,updatetime='".$data["updatetime"]."' where media_id=$id"; if ($result["code"]==0) {//valid ok
$r = M("")->execute($sql); $model = D("Media");
if ($r){ $where["code"] = $mid;
$result["code"]=0; $where["sp_id"] = $spid;
$result["msg"]="ok"; $tmp = $model->field("id")->where($where)->find();
}else{ $id = $tmp["id"];
$result["code"]=2001; if ($id) {
$result["msg"]="offline failture!";
//下线云端片库
$data["id"] = $id;
$data["status"] = $status;
$data["updatetime"] = date('Y-m-d H:i:s');
$r = $model->save($data);
//下线酒店片库
$tb = "sh_hotel_media_map_$spid";
$sql = "update $tb set status=$status,updatetime='" . $data["updatetime"] . "' where media_id=$id";
$r = M("")->execute($sql);
if ($r) {
$result["code"] = 0;
$result["msg"] = "ok";
} else {
$result["code"] = 2001;
$result["msg"] = "offline failture!";
}
} else {
$result["code"] = 1001;
$result["msg"] = "media info unexpect!";
}
} }
}else{ }else{
$result["code"]=1001; $result["code"]=1002;
$result["msg"]="media info unexpect!"; $result["msg"]="sp info unexpect";
} }
echo json_encode($result); echo json_encode($result);
...@@ -268,7 +302,7 @@ class CenterAction extends Action ...@@ -268,7 +302,7 @@ class CenterAction extends Action
. ",mw.year,mw.type,mw.score,mw.region,mw.actor,mw.director" . ",mw.year,mw.type,mw.score,mw.region,mw.actor,mw.director"
. ",hm.code hotelId,hm.status,hm.status_inject statusInject" . ",hm.code hotelId,hm.status,hm.status_inject statusInject"
. " FROM (SELECT hm.media_id,h.code,hm.status,hm.status_inject FROM sh_hotel_media_map_$spid hm,sh_hotel h" . " FROM (SELECT hm.media_id,h.code,hm.status,hm.status_inject FROM sh_hotel_media_map_$spid hm,sh_hotel h"
. " WHERE hm.updatetime BETWEEN '$start' AND '$end' AND h.id=hm.hotel_id ORDER BY hm.updatetime,hm.media_id ASC LIMIT $limit_from,$page_size) hm" . " WHERE hm.hotel_id=3 AND hm.updatetime BETWEEN '$start' AND '$end' AND h.id=hm.hotel_id ORDER BY hm.updatetime,hm.media_id ASC LIMIT $limit_from,$page_size) hm"
. " JOIN sh_media_wasu mw ON mw.id=hm.media_id"; . " JOIN sh_media_wasu mw ON mw.id=hm.media_id";
// echo $sql;exit; // echo $sql;exit;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment