帝国CMS整合腾讯防水墙验证码

效果图

做网站,验证码是个少不了的东西。可以自动系统自带的验证码,这个在一般网站中是已经满足需求的。

但是,当你感觉自带的图形验证码不够安全的时候,或许你就会想换种验证方法。这个怎么换呢?是自己开发?还是使用别人已经开发好的?

如果自己有能力开发安全点的验证码,就不必为此事困惑了。如果使用别人的验证码?那使用谁的呢?怎么使用呢!

今天跟大家说一款验证码—>腾讯防水墙,官网地址:https://007.qq.com/它的功能特点这里不多说,大家可以去它官网了解一下。

我们先使用qq账号登陆一下获取到appid、appSecretKey,这步比较简单这里不多说。

接着我们在自己网页上引用它的js文件,代码如下:

<script src=https://ssl.captcha.qq.com/TCaptcha.js></script><script src=https://cdn.bootcss.com/jquery/3.3.0/jquery.js></script>

在你想要激活验证码的DOM元素(eg. button、div、span)内加入以下id及属性

<!--点击此元素会自动激活验证码--><!--id : 元素的id(必须)--><!--data-appid : AppID(必须)--><!--data-cbfn : 回调函数名(必须)--><!--data-biz-state : 业务自定义透传参数(可选)--><button id=TencentCaptcha        data-appid=200316398* //刚注册的appid        data-cbfn=callback // 用户触发验证时调用的函数名,可以自己定义,你想搞个aaa都行>验证</button>

为验证码创建回调函数,注意函数名要与data-cbfn相同

<script>window.sCallback = function(res){    if(res.ret === 0){        $.ajax({            type:'post',url:'/e/shu/captcha/index.php',data:{'enews':'checkYzm','ticket':res.ticket,'randstr':res.randstr},dataType:'json',            success:function(res) {               if(res.response==1){
                    //服务器返回正确结果,然后处理               }            }        })    }}</script>

完成以上操作后,点击激活验证码的元素,即可弹出验证码。

服务器接入验证:

在验证完成后,客户端收到获得一个验证票据(ticket)。将票据上传至服务器,并发送GET请求到下方接口可以校验验证码的票据,判断当次验证是否成功。
URL: https://ssl.captcha.qq.com/ticket/verify

字段名 描述
aid (必填) 2003163982
AppSecretKey (必填) 01r99tD8UEg6yBWacQ9MS5w**
Ticket (必填) 验证码客户端验证回调的票据
Randstr (必填) 验证码客户端验证回调的随机串
UserIP (必填) 提交验证的用户的IP地址(eg: 10.127.10.2)

返回值
Json格式,eg:{response:1, evil_level:70, err_msg:}

字段名 描述
response 1:验证成功,0:验证失败,100:AppSecretKey参数校验错误[required]
evil_level [0,100],恶意等级[optional]
err_msg 验证错误信息[optional],查看详细说明

至此,验证码接入已完成,如需对验证码进行定制请往下阅读详细配置,更多配置项可访问配置中心。

完整代码如下:

<?php/**
 * Created by PhpStorm.
 * User: Shu QQ:610712114
 * Date: 2019/4/2 0002
 * Time: 上午 10:08
 * 功能:
 */require('../../class/connect.php');include(../../class/db_sql.php);$link=db_connect();$empire=new mysqlquery();$enews=$_POST['enews'];if($enews=='checkYzm') {    echo sCheckYzm($_POST);}function sCheckYzm($add) {    global $empire,$dbtbpre;    $ticket=$add['ticket'];    $randstr=$add['randstr'];    if(!$ticket) {        return json_encode(array('error'=>0,'msg'=>'票据错误'));    }    $aid='您的appid'; 
    $appsecretkey='你的AppSecretKey';    $url='https://ssl.captcha.qq.com/ticket/verify?aid='.$aid.'&AppSecretKey='.$appsecretkey;    $url.='&Randstr='.$randstr;    $url.='&Ticket='.$ticket;    $url.='&UserIP='.egetip();    return httpGetRequest($url);}/**
* 函数的含义说明:CURL发送get请求    获取数据
* @param str $url 发送接口地址
* @return  返回json数据
 */function httpGetRequest($url){    $curl = curl_init(); // 启动一个CURL会话    curl_setopt($curl, CURLOPT_URL, $url);    curl_setopt($curl, CURLOPT_HEADER, 0);    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查    $output = curl_exec($curl);     //返回api的json对象    //关闭URL请求    curl_close($curl);    return $output;    //返回json对象}
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » 帝国CMS整合腾讯防水墙验证码

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12310资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1505稳定运行(天)

提供最优质的资源集合

立即查看 了解详情