集成流程

以下为行为验证的集成流程,整个集成流程是顺序进行的,在下一个步骤开始前请确保上一个步骤的检查点都已经正确完成。

productflow

step1. 注册极验账号

访问验证管理后台,按照步骤注册极验账号,然后登陆到验证管理后台。进入后台之后,选择新增验证来增加一个场景的验证码配置项,极验会为该配置项分配一个唯一的 ID KEY 。进入验证码配置项的管理界面,可以对验证码相关的各项属性进行配置或自定义,在验证集成阶段配置项大部分可以选择默认即可。

检查点:

  • 获取一组ID和KEY,例如:
ID(07df3141a35**********19a473d7c50), 
KEY(543b19036ef********8e07d121b81e9)

step2. 集成服务端SDK

服务端SDK的主要目的是为客户端提供两个接口:API1(验证初始化)、API2(二次验证,判断验证结果的真实性)。服务端SDK的具体集成细节和demo请参考服务端部署

检查点:

  • API1和API2可以正常访问,API2目前只要能返回fail即可,替换以下的url为网站主为API1和API2分配的url,API2的参数暂时不需要替换,如果API2访问时读取session的语句报错,可以暂时把session语句注释掉。检查方式:
API1:  
request: curl -c /tmp/cookie 'http://www.geetest.com/demo/gt/register-slide'
response:
{
"success": 1,
"challenge": "916e3a63fd4029a600fe5be03d6aa9aa",
"gt": "e52c06c937981b90b275d0aff1d40076",
"new_captcha": true
}
API2
request: curl -b /tmp/cookie -d 'geetest_challenge=1a76d9da01e21b0178824dbed1425ecaiy&geetest_validate=727f1edd0455aeff265f9903d7ac097a&geetest_seccode=727f1edd0455aeff265f9903d7ac097a|jordan' 'http://www.geetest.com/demo/gt/validate-slide'
response:
{
"status":"fail",
"info":"登录失败"
}

step3. 集成客户端SDK

客户端SDK支持WebiOSAndroid三大平台,是验证码的UI交互核心,会涉及到网站主的两个API请求以及与极验云服务的几个API请求。客户端SDK的具体集成细节和demo请参考客户端部署

检查点:

  • 成功访问API1,获取到返回的challenge参数,完成初始化
  • 验证码正常弹出
  • 验证码可以正常操作,出现验证成功界面
  • 成功获取到发起API2请求的三个参数:geetest_challenge,geetest_validate,geetest_seccode
  • 成功发起API2请求,抓包或者浏览器控制台可以看到请求已正确发出

step4. API2调试

在步骤2中已经检查了API2是否可以正常访问,本步骤是为了检查API2逻辑是否正确,即是否能够正确判断验证有没有通过。

检查点:

  • 服务端成功收到客户端发出的API2请求,且获取到geetest_challenge,geetest_validate,geetest_seccode三个参数
  • 服务端调用SDK中的方法后,构造出与客户端约定好的数据返回,可以正确表示出验证是否成功
  • 客户端成功收到API2的返回结果,根据返回结果执行业务逻辑

step5. 宕机模式模拟

宕机模式,即failback是为了处理极端情况下,网站主服务器连接不上极验云服务器时的一种应急处理模式,保障用户操作不受影响。极验云服务器的可用状态(gt_server_status)在API1中通过session存储,并且通过success字段返回给客户端,客户端根据success字段判定是否走failback的验证判断逻辑,API2中会从session取出gt_server_status,根据该状态,API2确定是在本地还是极验云服务器获取二次验证结果。

模拟宕机模式:API1的返回结果中success字段强制设置为0,session中保存的gt_server_status设置为API2中会判断为宕机模式的值(如Java SDK中可设置为0)

检查点:

  • 宕机模式下验证流程正常