$v) { if(!key_exists($v,$data)) { return ['error'=>1,'msg'=>'签名参数缺少']; } } $data['money']=money_str($data['money'],2,'.',''); //排序 ksort($data); // $strkey = $this->toUrlParams($data); //转换小写 $app_signature=strtolower($strkey); //Log::info("md5 before:".$app_signature); //MD5加密 $app_signature = md5($app_signature); //Log::info("md5 end:".$app_signature); //回调验证 if($is_verfy) { $app_signature=md5($data['token'].$app_signature);//token+之前的签名经行md5加密 } return $app_signature; } public function toUrlParams( $params ){ $string = ''; if( !empty($params) ){ $array = array(); foreach( $params as $key => $value ){ $array[] = $key.'='.$value; } $string = implode("&",$array); } return $string; } /** * * @param $data 参数携带token * @param $sign 过来的sign * @return bool 真验证成功,否失败 */ public function checkSign($data,$sign,$is_verfy=0){ $site_sign=$this->sign($data,$is_verfy); if(is_array($site_sign)) { return false; } if($site_sign!=$sign) { return false; } return true; } }