sign != $this->sign_req($req) ){ log_error('check sign failed ' . json_encode($req)); return $this->create_resp($req,1); } else{ log_debug('check sign success ' . json_encode($req)); return $this->create_resp($req,0); } } private function sign_req( $req ){ $str = $req->type; $str.= $req->msgid; $str.= $req->model; $str.= $req->mac; $str.= $req->sn; $str.= $req->version; $str.= $req->wip; $str.= $req->nmode; $str.= $req->rssi; $str.= $req->serialnum; $str.= $req->uptime; $str.= C('协议签名密钥'); return strtoupper(md5(urlencode($str))); } private function sign_resp( $resp ){ $str = $resp['type']; $str.= $resp['msgid']; //$str.= $resp['result']; $str.= C('协议签名密钥'); return strtoupper(md5(urlencode($str))); } public function create_resp( $req, $result ){ $resp = array( 'type' => 2, 'msgid' => $req->msgid, 'mac' => $req->mac, 'sign' => '', 'result' => $result, ); $resp['sign'] = $this->sign_resp($resp); return $resp; } }