阿里云--实人认证的接口
首先进入阿里云登录页面输入用户名和密码 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 认证不通过