阿里云--实人认证的接口

首先进入阿里云登录页面输入用户名和密码  http://signin.aliyun.com/1944533551367997/login.htm

下面要进行 身份认证 我们需要 姓名 + 身份证号 + 人脸图片信息进行认证

登录成功

 

在搜索处搜索 实人认证

 

 新建场景

 

 

选择认证方案  https://help.aliyun.com/document_detail/61362.html

 

 下拉鼠标 选择适合我们的验证方式

 

选择认证方案完成 新增场景

 方案示例

//创建DefaultAcsClient实例并初始化
DefaultProfile profile = DefaultProfile.getProfile(
        "cn-hangzhou",             //默认
        "YourAccessKeyID",         //您的Access Key ID
        "YourAccessKeySecret");    //您的Access Key Secret
IAcsClient client = new DefaultAcsClient(profile);
String biz = "YourRPMinBiz"; //您在控制台上创建的、采用RPMin认证方案的认证场景标识, 创建方法:https://help.aliyun.com/document_detail/59975.html
String ticketId = UUID.randomUUID().toString(); //认证ID, 由使用方指定, 发起不同的认证任务需要更换不同的认证ID
String token = null; //认证token, 表达一次认证会话
//1. 发起认证请求, 获取到token
//GetVerifyToken接口文档:https://help.aliyun.com/document_detail/57050.html
GetVerifyTokenRequest getVerifyTokenRequest = new GetVerifyTokenRequest();
getVerifyTokenRequest.setBiz(biz); //传入采用RPMin认证方案的认证场景标识(biz)
getVerifyTokenRequest.setTicketId(ticketId);
try {
    GetVerifyTokenResponse response = client.getAcsResponse(getVerifyTokenRequest);
    token = response.getData().getVerifyToken().getToken(); //token默认30分钟时效,每次发起认证时都必须实时获取
} catch (Exception e) {
    e.printStackTrace();
}
//2. 用token提交认证材料
//SubmitMaterials接口文档:https://help.aliyun.com/document_detail/58176.html
SubmitMaterialsRequest submitRequest = new SubmitMaterialsRequest();
submitRequest.setVerifyToken(token);
submitRequest.setMethod(MethodType.POST);
//创建要提交的认证材料列表, 请根据 认证方案 中的说明传入相应字段
List<SubmitMaterialsRequest.Material> verifyMaterials = new ArrayList<SubmitMaterialsRequest.Material>();
SubmitMaterialsRequest.Material identificationNumber = new SubmitMaterialsRequest.Material();
identificationNumber.setMaterialType("IdentificationNumber");
identificationNumber.setValue("330110201711110101");
verifyMaterials.add(identificationNumber);
SubmitMaterialsRequest.Material name = new SubmitMaterialsRequest.Material();
name.setMaterialType("Name");
name.setValue("张三");
verifyMaterials.add(name);
//传入图片资料,请控制单张图片大小在 2M 内,避免拉取超时
SubmitMaterialsRequest.Material facePic = new SubmitMaterialsRequest.Material();
facePic.setMaterialType("FacePic");
facePic.setValue("base64://iVBORw0KGgoA..."); //base64方式上传图片, 格式为"base64://图片base64字符串", 以"base64://"开头且图片base64字符串去掉头部描述(如"data:image/png;base64,"), 并注意控制接口请求的Body在8M以内
verifyMaterials.add(facePic);
SubmitMaterialsRequest.Material idCardFrontPic = new SubmitMaterialsRequest.Material();
idCardFrontPic.setMaterialType("IdCardFrontPic");
idCardFrontPic.setValue("http://image-demo.img-cn-hangzhou.aliyuncs.com/example.jpg"); //http方式上传图片, 此http地址须可公网访问
verifyMaterials.add(idCardFrontPic);
SubmitMaterialsRequest.Material idCardBackPic = new SubmitMaterialsRequest.Material();
idCardBackPic.setMaterialType("IdCardBackPic");
idCardBackPic.setValue("oss://verify-img:715559d76a40774OSS.JPG"); //oss方式上传图片, 此oss文件地址须可公开访问
verifyMaterials.add(idCardBackPic);
submitRequest.setMaterials(verifyMaterials);
try {
    SubmitMaterialsResponse response = client.getAcsResponse(submitRequest);
    //由于审核需要时间,SubmitMaterials接口并不保证同步返回认证结果,可能会返回认证中状态, 此时需要使用GetStatus接口轮询认证结果。
    //GetStatus接口文档:https://help.aliyun.com/document_detail/57049.html
    //GetStatusRequest getStatusRequest = new GetStatusRequest();
    //getStatusRequest.setBiz(biz);
    //getStatusRequest.setTicketId(ticketId);
    //GetStatusResponse response = client.getAcsResponse(getStatusRequest);
    //int statusCode = response.getData().getStatusCode();
    //后续业务处理
} catch (Exception e) {
    e.printStackTrace();
}
//常见问题:https://help.aliyun.com/document_detail/57640.html

 

 本人在认证的过程中没有传入正确的图片  所以认证不能通过

int statusCode = -1; //-1 未认证, 0 认证中, 1 认证通过, 2 认证不通过

 

posted @ 2018-12-25 16:11  春眠不觉笑  阅读(3727)  评论(0编辑  收藏  举报