腾讯滑动验证

  1. 验证码申请
    当前应用
    应用名称: 网站验证码
    产品域名: www.***.com
    验证码 App ID
    用于客户端接入验证码服务

App Secret Key
用于服务器端校验验证码票据的验证密钥,请妥善保密,请勿泄露给第三方。


  1. 客户端接入
    a、在Head的标签内最后加入以下代码引入验证JS文件(建议直接在html中引入)
<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>

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

<!--点击此元素会自动激活验证码-->
<!--id : 元素的id(必须)-->
<!--data-appid : AppID(必须)-->
<!--data-cbfn : 回调函数名(必须)-->
<!--data-biz-state : 业务自定义透传参数(可选)-->
<button id="TencentCaptcha"
        data-appid="***"
        data-cbfn="callback"
>验证</button>

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

window.callback = function(res){
    console.log(res)
    // res(未通过验证)= {ret: 1, ticket: null}
    // res(验证成功) = {ret: 0, ticket: "String", randstr: "String"}
    if(res.ret === 0){
        alert(res.ticket)   // 票据
    }
}

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

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

    URL: https://ssl.captcha.qq.com/ticket/verify

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

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

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

至此,验证码接入已完成,如需对验证码进行定制请往下阅读详细配置,更多配置项可访问配置中心。
附:前后端调用时序图

定制接入
验证码会在全局注册一个TencentCaptcha类,业务方可以使用这个类自行初始化验证码,并对验证码进行显示或者隐藏。
默认的,验证码的js(TCaptcha.js)在加载完成后会检测页面中是否存在id="TencentCaptcha"的元素,如果有则会自动将验证码的触发事件绑定在该元素上。如不希望默认绑定请避免使用id="TencentCaptcha"的元素。
构造函数
TencentCaptcha支持多种参数的重载。

  1. 手动初始化
new TencentCaptcha(appId, callback, options);
参数说明
appIdString, 申请的场景Id
callbackFunction, 回调函数
optionsObject, 更多配置参数, 详见配置参数
  1. 绑定到一个元素
new TencentCaptcha(element);
参数说明
elementHTMLElement, 验证码将绑定click事件到该元素上。该方式需要确保元素上有data-appid和data-cbfn属性
  1. 绑定到一个元素
new TencentCaptcha(element, appId, callback, options);
参数说明:
elementHTMLElement, 需要绑定click事件的元素
appIdString, 申请的场景Id
callbackFunction, 回调函数
optionsObject, 更多配置参数, 详见配置参数

示例代码

// 直接生成一个验证码对象
var captcha1 = new TencentCaptcha('appid', function(res) {/* callback */});
captcha1.show(); // 显示验证码

// 绑定一个元素并手动传入场景Id和回调
new TencentCaptcha(
    document.getElementById('TencentCaptcha'),
    'appid',
    function(res) {/* callback */},
    { bizState: '自定义透传参数' }
);

// 绑定一个元素并自动识别场景id和回调
// 验证码会读取dom上的`data-appid`和`data-cbfn`以及`data-biz-state`(可选)自动初始化
new TencentCaptcha(document.getElementById('TencentCaptcha'));

回调内容
前端验证成功会验证码会调用业务传入的回调函数,并在第一个参数中传入回调结果。结果字段说明如下:

字段名值类型说明
retInt验证结果,0-验证成功,2-用户主动关闭验证码
ticketString验证成功的票据,当且仅当ret=0时ticket有值
appidString场景Id
bizStateAny自定义透传参数

实例方法
TencentCaptcha的实例提供一些常用操作验证码的方法:

方法名说明传入参数返回内容
show显示验证码
destroy隐藏验证码
getTicket获取验证码验证成功后的ticketObject:{“appid”:"",“ticket”:""}
  • show与destroy可以反复调用
    配置参数
    options提供以下配置参数:
配置名值类型说明
bizStateAny自定义透传参数,业务可用该字段传递少量数据,该字段的内容会被带入callback回调的对象中


程序员交流qq群:782974737 点击加入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值