Acgeetest
/ Title: ACGeetest Description: ACGeetest /
概述
ACGeetest 封装了极验 SDK。
关于极验
极验与三大运营商直接合作,利用应用层无法截取的网络层号码认证能力验证号码的真实性,无感本机认证是现有短信验证方式的优化,能消除现有短信验证模式等待时间长、操作繁琐、容易泄露等问题,帮助企业优化认证流程,助力拉新、留存、促活。。
目前运营商个别接口为 http 请求,对于全局禁用 http 的项目,需要设置 http 白名单,需要配置 Info.plist 文件。有关 Info.plist 文件的说明参考论坛。 配置示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>wap.cmpassport.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>enrichgw.10010.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>id6.me</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>mdn.open.wo.cn</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>opencloud.wostore.cn</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>wostore.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>zzx9.cn</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
</dict>
</plist>
register
向SDK注册AppID
register({params})
params
appID:
- 类型:字符串类型
- 描述:通过后台注册获得,从极验后台获取该AppID
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.register({
appID:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
requestToken
进行用户认证授权, 获取网关 token
requestToken({params},callback(ret))
注意:使用时可以先调用isPreGetTokenResultValidate方法返回为true时再调用该方法
params
styles:
- 类型:JSON 对象
- 描述:授权页面的样式设置
- 内部字段:
{
naviTitle: '', //(可选项)字符串类型;授权页导航的标题。默认为空字符串
naviBgColor: '', //(可选项)字符串类型;授权页导航的背景颜色,支持#、rgb、rgba;默认:#fff
appLogo: '', //(可选项)字符串类型;授权页面上展示的图标路径,支持fs、widget。默认为 "OneLogin" 图标。 注意:Android系统下不支持此字段,默认为uz_icon
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType : 'init', //字符串类型;事件类型
// 取值范围
//auth : 授权
//loadingView : 授权页面,自定义加载进度条,点击登录按钮之后的回调
//stopLoadingView : 授权页面,停止自定义加载进度条,调用stopLoading之后的回调
//viewLifeCycle : 授权页面视图生命周期回调
//clickAuthButton : 点击授权页面授权按钮的回调,用于监听授权页面登录按钮的点击
//clickCheckbox : 点击授权页面隐私协议前勾选框的回调,iOS端1.0.3及以后版本不再支持
//tapAuthBackground : 点击授权页面弹窗背景的回调
//clickSwitchButton : 点击授权页面切换账号按钮的回调
//carrierTermItem : 点击授权页面运营商隐私协议的回调
result:{}, //json对象,授权结果
viewLifeCycle:'', //字符串类型;授权页面视图生命周期;值为viewDidLoad、viewWillAppear、viewWillDisappear、viewDidAppear、viewDidDisappear
isChecked:true, //布尔类型;私协议前勾选框是否被勾选
item:{ //json对象,隐私条款内容,,iOS端1.0.3及以后版本不再支持
termTitle:'', //字符串类型;条款标题
termLink:'', //字符串类型;条款链接
index:0 //数字类型;条款索引,默认为0,当有多条条款时,会根据此属性升序排列条款
},
获取成功:
{
"model" : "iPhone9,1",
"authcode" : "0000",
"operatorType" : "CU",
"release" : "13.5.1",
"processID" : "967ceb230b3fdfb4d74ebcb470c5830c",
"appID" : "b41a959b5cac4dd1277183e074630945",
"pre_token_time" : "1012",
"token" : "CU__0__b41a959b5cac4dd1277183e074630945__2.3.8__1__f632d01ab7c64efda96580c3274de971__NOTCUCC",
"number" : "186****6173",
"preGetTokenSuccessedTime" : 1604890895.807291,
"errorCode" : "0",
"msg" : "获取accessCode成功",
"status" : 200,
"expire_time" : 580
}
获取失败:
{
"status" : 500,
"operatorType" : "CU",
"appID" : "b41a959b5cac4dd1277183e074630945",
"model" : "iPhone9,1",
"release" : "13.5.1",
"msg" : "Can't access cellular.",
"errorCode" : "-20202"
}
status - 200 表示获取预取号结果成功,500 表示获取预取号结果失败
token - 换取手机号需要的 token
processID - 流水号
appID - appId
authcode - authcode
operatorType - 运营商
errorCode - 获取失败时的错误码
msg - 获取失败时表示失败原因
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.requestToken({
appID:''
},function(ret, err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
dismissAuth
关闭当前的授权页面
dismissAuth()
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest. dismissAuth();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
renewPreGetToken
重新预取号
renewPreGetToken()
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest. renewPreGetToken();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isPreGetTokenResultValidate
判断预取号结果是否有效
isPreGetTokenResultValidate(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isPreGet : true //布尔类型;预取号结果是否有效
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.isPreGetTokenResultValidate(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
currentNetworkInfo
获取当前 OneLogin 可用的网络信息
currentNetworkInfo(callback(ret)) (仅IOS支持)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
carrierName :'', //字符串类型;运营商名称;@"CM" 移动, @"CU" 联通, @"CT" 电信
carrierName :0, //数字类型;网络类型;0:网络类型未知,1:仅移动蜂窝数据网络,2:仅 WIFI 网络,3:移动蜂窝数据网络及 WIFI 网络
detailNetworkType :'' //字符串类型;具体的网络类型,如2G、3G、4G、WIFI
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.currentNetworkInfo(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setRequestTimeout
设置请求超时时长
setRequestTimeout({params})
params
time:
- 类型:数字类型
- 描述:(可选项)超时时长,单位秒
- 默认:5
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.setRequestTimeout({
time:5
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
isProtocolCheckboxChecked
服务条款左边复选框是否勾选
isProtocolCheckboxChecked(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isCheck : true //布尔类型;是否勾选
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.isProtocolCheckboxChecked(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopLoading
停止点击授权页面登录按钮之后的加载进度条
stopLoading()
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.stopLoading();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
initGOP
初始化本机号码认证
initGOP({params})
params
appID:
- 类型:字符串类型
- 描述:通过后台注册获得,从极验后台获取该AppID
time:
- 类型:数字类型
- 描述:(可选项)超时时长
- 默认:5
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.initGOP({
appID:'',
time:5
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
verifyPhoneNumber
本机号码认证
verifyPhoneNumber({params})
params
phoneNumber:
- 类型:字符串类型
- 描述:需进行认证的手机号码
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.verifyPhoneNumber({
phoneNumber:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setCachePhoneEnabled
设置是否允许缓存手机号,若允许缓存,则将校验过的手机号加密之后缓存到沙盒,缓存中仅存最近一次校验过的手机号
setCachePhoneEnabled({params})
params
enabled:
- 类型:布尔类型
- 描述:(可选性)是否允许缓存,true,允许缓存 ;false,禁止并清空缓存
- 默认:true
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.setCachePhoneEnabled({
enabled:true
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCachedPhone
获取缓存的手机号
getCachedPhone(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
phoneNumber : '' //字符串类型;缓存的手机号
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.getCachedPhone(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCachedPhones
获取缓存的手机号列表
getCachedPhones(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
phones : [] //字符串数组;缓存的手机号列表
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.getCachedPhones(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addGOPListener
添加本机号码认证监听
addGOPListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
states : true, //布尔类型;是否成功
data:{} //json对象;
}
示例代码
var ACGeetest = api.require('ACGeetest');
ACGeetest.addGOPListener(function(ret, err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本