static7 / tencent-captcha
腾讯验证码
v1.3
2018-06-22 13:21 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2025-05-17 20:09:31 UTC
README
腾讯验证码
适合范围
thinkphp5.1.x 专用
使用说明
- php版本 >=7.0.0
key申请
传送门 https://open.captcha.qq.com/
在控制器里
//腾讯验证码 $Captcha = new \static7\Captcha(['aid'=>'xxx',''=>'xxxx']);
前端页面配置
我是用的 layui 写的一个测试例子
具体参考页面 https://007.qq.com/captcha/#/gettingStart
<form class="layui-form" action="{:Url::build('Example/submit')}" method="post"> //表单代码省略 ... <div class="layui-form-item"> <div class="layui-input-block"> <input type="hidden" name="ticket" value=""> <input type="hidden" name="randstr" value=""> <button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button> </div> </div> </form>
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script> <script type="text/javascript"> layui.use(['jquery', 'form'], function () { var captcha = new TencentCaptcha('aid', function(result) { console.log(result); if (result.ret===2){ layui.layer.msg('你干嘛关闭呢?'); return false; } layui.$("input[name='ticket']").val(result.ticket); layui.$("input[name='randstr']").val(result.randstr); var form = layui.$("form"); layui.$.post(form.attr("action"), form.serialize(), function (data){ if (data.code===0){ layui.layer.msg(data.msg); return false; } layui.layer.msg(data.msg); }); }); layui.form.on('submit(demo1)', function () { captcha.show(); return false; }); }); </script>
控制器 Example里的 submit 方法
/** * Submit * @author staitc7 <static7@qq.com> * @return mixed * @throws \think\Exception */ public function submit() { $param=$this->app->request->param(); $Captcha=new \static7\Captcha(); // 两种方式 一种 // $result=$Captcha->setRandstr($param['randstr'])->setTicket($param['ticket'])->verify(); //或者 $result=$Captcha->verify($param['ticket'],$param['randstr']); if ((int)$result['response']===0){ return $this->result($param,0,$result['err_msg']); } return $this->result($param,1,'成功'); }