业务容灾

1.业务容灾流程

验证流程涉及客户前端(C端)、客户后端(B端)、极验服务端(G端)三个端的交互,业务容灾主要解决在验证服务异常时不阻塞C端和B端的正常业务流程,保障业务连续性。以下是业务容灾流程图:

geetest 4.0 bypass

2.业务容灾准备

第一步:【极验准备】业务C端本地自带离线JS——bypass.js——逻辑极验已全部完成,无需客户集成
第二步:【客户准备】业务B端进行容灾逻辑处理,客户需要在部署二次校验流程(validate)时,对二次校验的接口进行异常处理保证业务流程不受阻塞。
当请求极验二次验证接口异常或响应状态非200时做出相应异常处理,保证不会因为接口请求超时或服务未响应而阻碍业务流程,示例代码如下:

try:
res = requests.post(url, query)
assert res.status_code == 200
gt_msg = json.loads(res.text)
except Exception as e:
gt_msg = {'result': 'success', 'reason': 'request geetest api fail'}

3.业务容灾测试

在完成所有接入工作后,请一定要进行全面的业务容灾测试,针对不同场景,极验提供推荐测试流程如下:

测试场景 测试模拟步骤 测试通过标识(极验宕机模式)
【C端正常、B端异常】假设客户在前端可以正常进行验证交互,但是在客户的服务端进行二次校验时,客户的服务器请求极验服务二次校验接口异常 1、将B端的登录接口中发起二次校验的域名,改为一个不存在的地址
2、模拟C端请求正常,但是B端请求二次校验接口失败的情况。
1、前端正常弹出验证码
2、登录按钮后,登录成功
【C端异常、B端正常】假设C端用户请求极验服务异常,前端不能正常初始化验证,但客户的服务器与极验服务器交互正常 1、将C端初始化验证码的请求域名改为一个不存在的地址
2、模拟C端请求异常,但是B端请求正常的情况。
3、线上同步极验测试ID,极验确认非黑产情况下,进行人工放行通过
1、将C端初始化验证码的请求域名改为一个不存在的地址
2、模拟C端请求异常,但是B端请求正常的情况。
3、线上同步极验测试ID,极验确认非黑产情况下,进行人工放行通过
【C端异常、B端异常】假设极验服务异常,C端和B端都不能请求极验服务 将验证服务关闭(所有极验域名配置为不存在域名),模拟服务宕机后C端和B端都无法访问的情况 1、前端一键通过 2、登录按钮后,登录成功