TencentAptcha

功能描述

腾讯防水墙验证码,用例见 TCaptcha.html

概述

腾讯防水墙简介

防水墙团队来自腾讯 TEG 安全平台部,团队积累了十余年的业务安全数据和风控经验,在金融、营销、帐号、内容等场景为腾讯各个业务提供业务安全基础能力,保障微信、QQ、腾讯视频、微众银行等产品的业务安全。

模块概述

本模块简单封装了腾讯防水墙的滑动验证码,并调整了部分机型会报错的问题。提供终身15万次的调用次数,2000次/小时。

使用前的准备

使用之前须从腾讯防水墙平台申请接入(注意:一定是https://007.qq.com 这个域名进入的,如果你进入了腾讯云的验证码平台,就是要收费的哟。), 添加一个场景后会得到一个App IDApp Secret Key,保存起来,后面会使用到。详细参考:接入文档

效果图

依赖的模块

./libs/Tencentaptcha.js ./libs/TcCaptcha.js

快速使用

初始化并显示验证码 TcCaptcha.check({params}, callback(res));

params

appid

  • 类型:字符串
  • 描述:从腾讯验证码平台获取的 appid

    callback(res)

    ret:
  • 类型:JSON对象
  • 内部字段(appid,ticket,bizState三个参数都需要传给服务端进行验证)
    {
      ret: 0  // int类型,验证结果,0-验证成功,2-用户主动关闭验证码
      ticket: '', //字符串类型 验证成功的票据,当且仅当ret=0时ticket有值
      appid: '',  // 字符串类型 从腾讯验证码平台获取的 appid
      bizState:'' // any类型 自定义透传参数
    }
    

    示例代码

    完整实例可以查看TCaptcha.html ``` var captcha = TcCaptcha.check({ appid: 'appid', }, function(res){ alert(JSON.stringify(res)); });

appid也可以配置在TcCaptcha.js里面,只传callback即可

var captcha = TcCaptcha.check(function(res){ alert(JSON.stringify(res)); });

##后端验证示例(PHP版
```php
<?php
$captcha_keys = [
    'appid' => 'appsecretkey'
];
$request = $_REQUEST;
// 所有参数必传
$data = [
    'aid'          => $request['captcha_appid'],
    'AppSecretKey' => $captcha_keys[$request['captcha_appid']],
    'Ticket'       => $request['captcha_ticket'],
    'Randstr'      => $request    ['captcha_randstr'],
    'UserIP'       => '127.0.0.1'  // 用户ip
];
$url = 'https://ssl.captcha.qq.com/ticket/verify?' . http_build_query($data);
$result = file_get_contents($url);
echo $result;

特别说明

如果觉得15万次,2000/小时有点少,可以多注册几个号,每次请求随机使用一个appid。