以下是一位开发者在集成个推实人认证SDK时的亲身经历:
概述:
在某次产品迭代中,公司项目要用到对用户身份证信息的实人认证,我作为移动端的新晋萌新,Team Leader 把这个光荣的任务交给我来集成开发。小心翼翼地打开搜索引擎一看,我发现网上大部分公司所采取的方案是接入市面上形形色色的身份认证SDK,来进行实人信息的校验,但很多 SDK文档繁杂,接入工作量大,让人望而却步。平时喜欢拿来主义的我迫切想知道有没有什么已经封装好的实人认证SDK,可以简单集成,直接使用。于是,我在网上搜索了下,突然发现个推公司提供的实人认证SDK,说是对权威机构的身份认证API进行了封装,服务端也做了相应的部署,方便用户快捷接入、极易上手。这也太适合我这种日常瑟瑟发抖的研发萌新了吧。[bigbao1] 抱着试一试的态度,我集成了个推实人认证SDK。
个推实人认证系统的初体验:
个推的实人认证系统,又名CTID平台,为金融、文旅、广告等多个行业提供统一、权威、多级可信的网络身份服务。系统基于公安部法定证件制证数据,采用国密算法,对居民身份信息进行脱敏、去标识化处理,统一生成不可逆、不含明文信息、且与法定证件一一映射的数据文件,能够在不泄露身份信息的前提下实现在线身份认证。
实人认证的一般适用场景:实名认证、风险核验;
个人认为的个推实人认证产品优势:
1、安全性高,采用更符合终端的公钥体制,CTID不慎遗失后不会造成隐私泄露;
2、权威性高:统一使用公安系统法定证件制证数据作为对比源,其结果权威、可信;
3、法理性强:以《居民身份证法》和各行各业条例法规作为支撑,适用性广;
4、便捷性好:SDK结合证件信息、持证人照片等因子,可形成多层级认证。
个推实人认证的接入方法:
1、登录个推官网的开发者中心网址https://dev.getui.com ,联系个推的技术支持人员申请获取个推实人认证的SDK资料包。如果还没有个推开发者账号,则需要我们先行注册个推开发者账号,如下图所示:
2、获取并配置个推应用参数:
拥有了个推开发者账号后,我们就可以进入个推开发者中心了。在应用管理中,我们要先与个推商务进行联系与对接,确认无误后则会启用实人认证的管理控制平台,获取所对应的APPID。接着,我们就可以进行实人认证应用的创建与使用了:
1)创建实人认证APP并填写相关基础信息,进而获取应用对应的APPID:
2)实人认证APP创建完成后的效果图:
至此,实人认证APP就已经在个推开发者平台上注册好了!
个推实人认证的依赖配置:
个推实人认证SDK的接入方法非常简单,由于统一采用Maven的接入方式,仅仅需要几行代码就可以搞定。开发者在Android Studio开发工程的 app/build.gradle 文件中android.defaultConfig字段中添加如下代码:
manifestPlaceholders = [
GETUI_APPID : "请填写您所申请的GETUI_APPID",
]
同时,在当前文件的dependencies{}模块中添加如下依赖:
dependencies {
...
implementation 'com.getui:ctid:1.1.0.0'
...
}
最后,在开发工程的根目录build.gradle文件中选择allprojects{}下的repositories{}模块,添加如下Maven仓库的配置:
maven {
url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/"
}
至此,只要短短几行配置,我们就完成了实人认证SDK的Maven接入!
个推实人认证的使用方法:
实人认证的核心类为 com.getui.ctid.CTIDManager,其核心接口方法共有三个:
1、实人认证的初始化接口:
实人认证的初始化方法很简单,只有一行代码:
CTIDManager.getInstance().init(Context context, CTIDCallBack callback);
其中Context即为上下文,callback为回调对象,⽤用于接受初始化结果回调。代码示例如下所示,是不是特别简单:
CTIDManager.getInstance().init(context, new CTIDCallBack() {
@Override
public void onSuccess(String gtcid) {
Log.d(TAG, "gtcid:"+gtcid );
}
@Override
public void onFailure(String error) {
//返回失败的原因
Log.d(TAG, "init onFailure:"+error );
}
});
2、实人认证的验证接口:
实人认证的验证接口同样非常简单,同样只有一行代码:
CTIDManager.getInstance().auth(String name, String idNum, String imageStr ,Context context, AuthCallBack callback);
依次填入相应的校验信息,代码示例如下所示,同样非常简单:
CTIDManager.getInstance().auth(name, idNum, imageStr, context, new Aut
hCallBack() {
@Override
public void onSuccess(JSONObject jsonObject) {
// 成功或失败,均会返回⼀一个 JSONObejct
Log.e("auth success", jsonObject.toString());
}
@Override
public void onFailure(JSONObject jsonObject) {
// 成功或失败,均会返回⼀一个 JSONObejct
Log.e("auth failure", jsonObject.toString());
}
});
如果想知道实人认证接口返回的JSON字符串中的各个字段的含义与取值范围,可以联系个推的技术支持小哥哥,QQ上和他们取得联系后,他们会和商务进行确认,确认完后会将实人认证的资料包发给我们,里面有详细的字段释义和Demo演示。
3、实人认证的版本接口:
实人认证的版本接口,用于返回给用户当前SDK的版本号,协助确认版本或排查问题,代码示例更为简单:
String version = CTIDManager.getInstance().getVersion();
以上便是个推实人认证的全部API接口使用方法和示例了。说实话,对我们这些苦哈哈的研发来说,接入成本低、性能强劲的SDK一直是我们的追求。个推实人认证SDK正符合这些特点,用起来轻便、好使(此处确实是一条广告实锤了~),正如有位互联网前辈曾经说过,让用户爽的产品才是好产品!说了这么多,现在我得赶紧去写 Bug 了,告辞👋👋👋~~~