概述

该SDK是提供给采用PHP作为服务端语言的服务器使用的,其中极验3.0验证安全系统的PHP SDK提供了简单的DEMO。

环境需求

条目
兼容性 php5.2+,php7
sdk依赖 curl

资源下载

条目
产品结构流程 通讯流程
SDK下载链接 gt3-php-sdk

安装

下载SDK

使用命令从Github获取

git clone https://github.com/GeeTeam/gt3-php-sdk.git

手动下载获取

使用从github下载.zip文件获取最新的sdk

Github: gt3-php-sdk

配置接口

GeetestLib共有四个接口,分别是:

  1. 预处理接口pre_process
  2. 获取验证字符串接口get_response_str
  3. 二次验证接口success_validate
  4. 本地二次验证接口failback_validate

在调用GeetestLib前请正确配置从极验3.0后台注册获取的公钥(id)和私钥(key), 用户id为可选上传参数,默认为随机数字

define("CAPTCHA_ID", "你的公钥");
define("PRIVATE_KEY", "你的私钥");

代码示例

初始化及获取字符串(API1)

public function pre_process($user_id = null, $new_captcha=1) {
$data = array('gt'=>$this->captcha_id,
'new_captcha'=>$new_captcha
);
if (($user_id != null) and (is_string($user_id))) {
$data['user_id'] = $user_id;
}
$query = http_build_query($data);
$url = "http://api.geetest.com/register.php?" . $query;
$challenge = $this->send_request($url);
if (strlen($challenge) != 32) {
$this->failback_process();
return 0;
}
$this->success_process($challenge);
return 1;
}

二次验证及宕机(API2)

/**
* 正常模式获取验证结果
*
* @param $challenge
* @param $validate
* @param $seccode
* @param null $user_id
* @return int
*/
public function success_validate($challenge, $validate, $seccode, $user_id = null, $data='', $userinfo='', $json_format=1) {
if (!$this->check_validate($challenge, $validate)) {
return 0;
}
$query = array(
"seccode" => $seccode,
"data"=>$data,
"timestamp"=>time(),
"challenge"=>$challenge,
"userinfo"=>$userinfo,
"captchaid"=>$this->captcha_id,
"json_format"=>$json_format,
"sdk" => self::GT_SDK_VERSION
);
if (($user_id != null) and (is_string($user_id))) {
$query["user_id"] = $user_id;
}
$url = "http://api.geetest.com/validate.php";
$codevalidate = $this->post_request($url, $query);
$obj = json_decode($codevalidate);
if ($obj->{'seccode'} == md5($seccode)) {
return 1;
} else {
return 0;
}
}
/**
* 宕机模式获取验证结果
*
* @param $challenge
* @param $validate
* @param $seccode
* @return int
*/
public function fail_validate($challenge, $validate, $seccode) {
if(md5($challenge) == $validate){
return 1;
}else{
return 0;
}
}

运行demo

将整个demo上传到开发环境的工作根目录,运行:

在浏览器中访问http://127.0.0.1/gt3-php-sdk/static/login.html即可看到Demo界面。