做了个thinkphp5的极验扩展,使用composer
安装
composer require lilwil/geetest
使用
参数配置
在配置文件配置geetest配置,需要到官网申请//举例<br>
'geetest' => [<br>
'captcha_id'=>'40c653bd06de23cece65d180d94b937f',<br>
'private_key'=>'0c54bad6d2419733de49db4826d83942',<br>
],
模板里的调用<!-- 为使用方便,直接使用jquery.js库 --><br>
<script></script><br>
<!-- 引入封装了failback的接口--initGeetest --><br>
<script></script><br>
<script><br />
function doOk(){<br />
//TODO:验证成功,对表单的操作<br />
// $("#embed-submit").attr("disabled", false); <br />
// $("#embed-submit").attr("style", 'background:#fe693e'); <br />
}<br />
var handlerEmbed = function (captchaObj) {<br />
// 将验证码加到id为captcha的元素里<br />
captchaObj.appendTo("#embed-captcha");<br />
captchaObj.onSuccess(doOk);<br />
captchaObj.onReady(function () {<br />
//TODO:页面加载完毕之后执行的方法<br />
// $("#embed-submit").attr("disabled", true); <br />
// $("#embed-submit").attr("style", 'background:#A79995'); <br />
//$("#wait")[0].className = "hide";<br />
});<br />
};<br />
$.ajax({<br />
// 获取id,challenge,success(是否启用failback)<br />
url: "{:geetest_url()}?t=" + (new Date()).getTime(), // 加随机数防止缓存<br />
type: "get",<br />
dataType: "json",<br />
success: function (data) {<br />
// 使用initGeetest接口<br />
// 参数1:配置参数<br />
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件<br />
initGeetest({<br />
gt: data.gt,<br />
challenge: data.challenge,<br />
product: "float", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效<br />
offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注<br />
}, handlerEmbed);<br />
}<br />
});<br />
</script><br>
控制器里验证<br>
<br>
//需要传入$_POST请求的数据<br>
if(!geetest_check($post)){<br>
//验证失败<br>
};
效果