之前使用的图形验证码现在改为网易云滑动验证码。效果如下这里验证验证码是基于laravelviApp\Services\CaptchaVerifier.phpcaptcha_id=$验证码;$this->secret_id=$secret_id;$this->secret_key=$secret_key;/***发起二次验证请求*@param$validate二次验证数据*@param$user用户信息*/publicfunctionverify($validate,$user=''){$params=array();$params["captchaId"]=$this->captcha_id;$params["验证"]=$验证;$params["用户"]=$用户;//公共参数$params["secretId"]=$this->secret_id;$params["version"]=self::VERSION;$params["timestamp"]=sprintf("%d",round(microtime(true)*1000));//以毫秒为单位的时间$params["nonce"]=sprintf("%d",rand());//随机整数$params["signature"]=$this->sign($this->secret_key,$params);$result=$this->send_http_request($params);returnarray_key_exists('result',$result)?$result['result']:false;}/***计算参数签名*@param$secret_keykeypairkey*@param$params请求参数*/privatefunctionsign($secret_key,$params){ksort($params);//参数排序$buff="";foreach($paramsas$key=>$value){$buff.=$key;$buff.=$value;}$buff.=$secret_key;returnmd5($buff);}/***发送http请求*@param$params请求参数*/privatefunctionsend_http_request($params){$ch=curl_init();curl_setopt($ch,CURLOPT_URL,self::API_URL);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,self::API_TIMEOUT);curl_setopt($ch,CURLOPT_TIMEOUT,self::API_TIMEOUT);curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params));/**成功返回TRUE,失败返回FALSE。*但是,如果设置了CURLOPT_RETURNTRANSFER选项,它将在成功时返回结果,在失败时返回FALSE。*/$result=curl_exec($ch);//var_dump($result);如果(curl_errno($ch)){$msg=curl_error($ch);curl_close($ch);返回数组(“错误”=>500,“味精”=>$味精,“结果”=>假);}else{curl_close($ch);返回json_decode($result,true);}}}新建ServiceProviderviApp\Providers\CaptchaServiceProvider.phpapp['validator']->extend('captcha',function($attribute,$value,$parameters){return(newCaptchaVerifier(config('captcha.captcha.CAPTCHA_ID'),config('captcha.captcha.SECRET_ID'),config('captcha.captcha.SECRET_KEY')))->verify($value);});}/***注册任何应用程序服务。**这个服务提供者是一个很好的地方来注册你的各种容器*与应用程序的绑定。如您所见,我们正在此处注册我们的*“Registrar”实施。您也可以添加自己的绑定!*/publicfunctionregister(){}}viconfig/app.php'providers'=>['App\Providers\CaptchaServiceProvider',]viconfig/captcha.php#联盟商务获取秘钥'captcha'=>['CAPTCHA_ID'=>'xxxxx','SECRET_ID'=>'xxxxx','SECRET_KEY'=>'xxxxx',]调用使用Illuminate\Http\Request;publicfunctionpostLogin($qRequest){$this->validate($q,['captcha'=>'required|captcha',]);returnresponse()->json(['code'=>'200','msg'=>'success'])}文档地址demo类似极限验证码
