签名方法

php 生成签名的方法 ```` protected $apiKey = "11223344556677889900"; /** * 生成sign * @param $data * @return string */ private function getSign($data) { //去除sign参数 unset($data['sign']); //数组排序 ksort($data); //新增key参数 $data['key'] = $this->apiKey; //生成json串 $data = json_encode($data); //md5加密 return md5($data); } /** * httpPost请求 * @param $postUrl * @param $postData * @return bool|int|string */ private function httpPost($postUrl, $postData) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $postUrl); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); if(!$postData){ return 'data is null'; } if(is_array($postData)) { $postData = json_encode($postData); } curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER,array( 'Content-Type: application/json; charset=utf-8', 'Content-Length:' . strlen($postData), 'Cache-Control: no-cache', 'base64: true' )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($curl); $errorno = curl_errno($curl); if ($errorno) { return $errorno; } curl_close($curl); return $res; } ```` php请求api方法: ``` //请求接口参数数组 $data = [ "host" => "baidu.com", "redirect" => "", "startTime" => "2011-01-31", "endTime" => "2022-07-19", "limit" => 100, "page" => 1, "timespan" => time() ]; //生成sign $sign = $this->getSign($data); //新增sign参数 $data['sign'] = $sign; //请求接口 $response = $this->httpPost('http://admin.301admin.com/api/v1/lists',$data); var_dump(response ); ```