本文介绍您在购买金融级实人认证服务前或在使用过程中可能遇到的问题以及解决方案,帮助您更好地了解和使用产品。
常见问题概述
本文介绍以下类型的常见问题。
热点问题
实人认证、金融级、增强版有什么区别?
实人认证产品为身份安全验证的不同场景提供了不同版本的产品,目前以金融级实人认证为主。
金融级指产品已经在金融场景得到验证,并非只能应用在金融场景。金融级实人认证价格在与旧版本的实人认证价格一致的情况下,支持更多的算法和方案,在认证通过率、整体安全效果、用户个人隐私数据保护方面有更多的提升,且已广泛应用于互联网娱乐社交、政务、出行等行业。
增强版指在旧版本的实人认证基础上,支持联动风险识别产品中业务风险场景,实现更多决策因子,适合业务风控一体化场景。
对比维度 | 实人认证(暂停售卖) | 增强版实人认证(暂停售卖) | 金融级实人认证 | |
支持的算法 | 眨眼动作活体 | 支持 | 支持 | 支持 |
多动作活体 | 支持 | 不支持 | 支持 | |
炫彩(反光)活体 | 不支持 | 不支持 | 支持 | |
声纹活体算法 | 不支持 | 不支持 | 支持 | |
支持的产品方案 | 实人认证方案 | 支持 | 支持 | 支持 |
多因子意愿认证方案 | 不支持 | 不支持 | 支持 | |
活体人脸验证方案 | 支持 | 支持 | 支持 | |
活体检测方案 | 支持 | 支持 | 支持 | |
人脸比对方案 | 支持 | 不支持 | 支持 | |
支持的集成方式 | App(SDK) | 支持 | 支持 | 支持 |
PC或移动端H5网页 | 不支持 | 不支持 | 支持 | |
纯服务端API | 支持 | 支持 | 支持 | |
支付宝小程序或支付宝认证 | 不支持 | 不支持 | 支持 | |
单次认证价格 | 以实人认证方案为例 | 1元/次 | 1.2元/次 | 1元/次 |
附加功能 | 敏感信息加密入参 | 不支持 | 不支持 | 支持 |
联动业务场景风险识别能力 | 不支持 | 支持 | 不支持 |
金融级实人认证各方案与信息核验有什么区别,该如何选择?
您可以参考下表进行业务场景选择。
产品方案 | 适合行业场景 | 主要验证的维度 |
适合首次认证场景,例如金融开户认证、主播认证、落实实名制,验证用户真实有效。 | 通过权威数据源对比,验证姓名、身份证号码、人脸,确认是“本人”且是“真人”的有效身份信息。 | |
适合高风险高价值账户投资开户,大额交易,反电信诈骗场景,例如投资开户、购买高风险的NFT商品等。 | 用户刷脸过程中,通过回答客户设置的问题或朗读对应的风险说明文件,验证用户是知情且自愿操作。 说明 该方案可选验证身份信息真实性且身份验证模块独立计费。 | |
适合二次验证场景,例如主播每次开播前认证、网约车司机每次接单前认证、修改账号的密码、修改头像等本人验证。 | 通过检测当前用户为真人,与传入的历史已经验证过留底的人脸比对,确认是“本人”且“真人”操作。 说明 该方案不验证身份信息真实性。 | |
适合注册场景,例如真人社交注册。 | 检测当前操作的用户是“真人”,并可选返回人脸图片。 说明 该方案不验证身份信息真实性。 | |
适合已经有留底用户两张以上人脸,单纯比对是否本人的低风险场景。 | 通过接口传入两张图片,比对图片中两个人脸相似程度,确认是否同一个人。 说明 该方案不验证身份信息真实性。 | |
社交娱乐行业,在线游戏实名认证、主播实名核验等场景。 |
|
金融级实人认证产品是否支持微信场景,例如微信小程序、微信公众号?
微信公众号:您可以参考金融级PC或移动端H5网页集成方式,实现用户自助刷脸认证流程。具体接入步骤,请参见PC或移动端H5网页接入。
微信小程序:由于微信运营审核要求,不支持第三方认证插件。若您的业务可获取用户授权的人脸图片或视频,用于验证身份一致性,可参考纯服务端集成方式。具体接入步骤,请参见纯服务端(API)接入。
金融级实人认证业务策略限制不通过,报错206?
为了保证认证的安全性,会对认证的设备、身份、人脸等环境进行安全检测,若检测到可能存在风险会判定认证结果不通过。
常见风险原因:
该设备检测到疑似存在劫持摄像头、被Root、注入、模拟器等高风险特征。
该设备或身份在一定时间内高频重复认证行为。
demo包名未修改,被黑名单拦截。
您可以按照如下方法排查处理:
提醒用户卸载掉设备上可能安装的各种多开、分身、虚拟环境等软件或插件,恢复设备系统初始安全环境后重试。
若是内部测试或已经线下人工确认正常,您可以登录金融级实人认证控制台,在 页面中加白处理。
检查您使用的包名是否为测试demo包名,如使用了测试demo包名需修改为业务包名,以避免被工程或服务的安全策略拦截。
为什么认证失败不足20次,就出现418错误提示?
418是一个冷却策略,主要是针对用户身份和设备两个维度频繁出现认证失败情况,进行冷却避免恶意刷脸。
一般限制每日最多认证失败20次,但这并不是一个固定的数值;具体限制次数会根据认证不通过的风险情况判定动态调整。
建议您按照提示,更换设备/身份认证,或者等待24小时后再次认证。
是否必须购买流量包,如何查看流量包剩余流量,如何设置预警?
开通金融级实人认证服务,默认为按天后付费方式。您需要保持开通服务的阿里云账号资金状态正常,才可以正常使用。流量包为您提供不同规格的选择和折扣,可用于抵扣后付费的次数。流量包购买和使用记录查看、流量包自动告警规则设置,请参见资源实例管理。
查询接口没有该身份认证记录,报错424?
对应的认证CertifyId暂未完成认证,系统暂无认证资料信息。您可以按照如下方法排查处理:
确认CertifyId是否为对应产品服务端初始化接口获取,且在30分钟有效期内。
确认查询接口的CertifyId已经完成认证,客户端(App(SDK)或H5)已经收到刷脸成功1001或刷脸失败2006的回调通知。
若认证过程中异常退出、用户放弃认证、客户端未进行认证,查询接口均无法获取到认证资料信息。
您可以通过设置异步通知及时感知认证状态,设置方法请参考对应方案,服务端初始化接口CallbackUrl参数说明。
手机网络正常,App(SDK)集成时候提示2002网络错误?
若手机网站,部分手机验证返回2002网络错误,通常是该手机系统时间修改引发阿里云网关校验失败导致。您可以打开手机系统设置,查看系统默认时间,确认是否时间被调整,如若被调整,请您恢复手机系统默认时间后重试。
App(SDK)集成返回1001错误?
返回1001,表示系统错误,通常是认证的CertifyId无效导致的。您可以按照如下方法排查处理:
确认App(SDK)应用的CertifyId是通过对应产品的服务端初始化接口获取的。
确认CertifyId在30分钟有效期内,且未被使用过(同一个CertifyId仅能认证一次,不可重复应用)。
查询接口为什么没有返回认证过程的图片或视频?
确认认证关联的场景中已经开启是否存留认证资料。如何添加场景,请参见添加认证场景。
确认已经完成OSS授权且已经自动创建专属存储Bucket。Bucket命名不能修改也不能删除,否则也会影响您的照片回传。如何授权,请参见授权金融级实人认证访问OSS存储空间。
确认查询接口的CertifyId已经完成认证,客户端(App(SDK)或H5)已经收到刷脸成功1001或刷脸失败2006的回调通知。
确认SDK集成中,是否设置开启返回视频的配置,即extParams的ext_params_key_use_video参数。
售前常见问题
金融级实人认证产品页面在哪里?
金融级实人认证的产品页面,请参见金融级实人认证产品页。
金融级实人认证服务当前支持哪些接入方式?
金融级实人认证服务提供五种认证方案,不同认证方案支持的接入方式不同。
金融级实人认证方案:支持App(SDK)接入、PC或移动端网页接入、支付宝H5页面接入、支付宝小程序接入和纯服务端接入。
金融级多因子意愿认证方案:仅支持App(SDK)接入。
金融级活体人脸验证方案:仅支持App(SDK)接入。
金融级活体检测方案:支持App(SDK)接入、PC或移动端网页接入和纯服务端接入。
金融级人脸比对方案:仅支持纯服务端(API)接入。
有关认证方案和接入方式的更多信息,请参见什么是金融级实人认证。
金融级实人认证服务支持认证永居证(含新版)吗?
永居证属于国家移民局签发证件,根据国家移民局发布的《出入境证件身份认证管理办法(试行)》规定不支持商业化认证服务。如有需要,您可以联系国家移民局申请开通服务。
产品计费常见问题
金融级实人认证服务如何计费?
提供按天计费(后付费)和流量包抵扣调用量(预付费)两种付费方式,预付费含阶梯报价。关于计费的详细信息,请参见计费概述。您也可以咨询您的专属商务经理。
使用金融级实人认证服务时,存储人脸图片需要开通并授权访问OSS存储空间。OSS存储空间产生的存储费用需要您自行承担。关于计费的详细信息,请参见计费概述。
金融级实人认证与实人认证价格有什么差异?
价格一致。如需了解详细的计费信息,请参见金融级实人认证计费说明和实人认证计费说明。
后付费的开通入口在哪?
有关后付费方式的开通入口,请参见金融级实人认证(按量计费)。
如何使用预付流量包?
有关预付流量包的订购入口,请参见金融级实人认证流量包。
金融级实人认证是否支持免费体验?
支持免费体验。您可以访问阿里云免费试用申请试用资格。试用教程请参见使用Android App接入金融级实人认证方案。
售后费用咨询常见问题
购买了流量包,如何在流量用尽前收到提醒?
您可以设置剩余流量提醒。具体操作,请参见资源包管理。
如何进行对账?
您可以将费用中心的消费金额与控制台中展示的调用量进行核对。具体步骤,请参见查询调用数据。
受出账延迟的影响,费用中心的金融级实人认证月账单中,系统可能会将月末最后一天的消费金额计入下一个月(例如,查询2022年01月的消费月账单,实际统计日期是2021年12月31日至2021年01月31日)。若对月账单有疑问,您可在金融级实人认证控制台的明细查询中,调整日期进行对账。
技术支持常见问题
调用InitFaceVerify接口返回的CertifyId的有效期是多久?
在客户端发起刷脸请求之前,CertifyId有效期为30分钟,且仅能使用一次。
金融级实人认证初始化时,我输入假的身份信息,为什么没有显示报错?
调用API时会校验身份证号码的有效性,但基于安全性考虑,目前不会对身份校验。所有的人脸比对、身份核验都在刷脸端核验。
为什么录入的身份证信息是正确的,但没有返回CertifyId?
返回结果在response的data里,需要用户自己获取。
服务端的签名机制是怎样的?
有关服务端的签名机制,请参见接入金融级实人认证服务。
outerOrderNo参数代表什么?
客户服务端自定义的业务唯一标识,用于后续定位与排查问题使用。参数值最长支持32位的字母和数字组合的字符串,请确保唯一。
认证失败返回什么参数?
您可以通过查询接口获取认证未通过详细信息,包含认证不通过subcode、认证材料等信息。
活体检测的照片如果需要保存到本地,相关的API接口文档在哪里?
您可以调用查询认证请求(DescribeFaceVerify)接口,保存活体检测的照片。有关该接口的详细信息,请参见DescribeFaceVerify-获取认证结果。
除了查询认证结果留存图片外,有没有异步拉取图片的方式?
没有。留存图片属于隐私信息,需要加强管控。
认证查询接口中,图片返回是什么格式?
默认为OSS文件名和URL格式图片,也支持Base64格式。
是否支持在微信公众号的H5页面中调用手机支付宝的活体检测功能?
金融级实人认证服务不支持接入微信公众号的H5页面,但可以从您开发应用的服务端调用。
后台访问活体验证服务,上传视频还是图片(静默活体),图片需要传几张?
上传图片。纯服务端接入只需传入一张即可。
如何统计通过率?
您可以登录金融级实人认证控制台,在左侧导航栏,单击数据统计,在数据统计页面,您可以查看某个时间范围内的认证通过率。您也可以在左侧导航栏选择 ,在通过/转化率(PV)区域查询通过率。
金融级实人认证比对分默认的阈值是多少,是否可以自行设置?
默认阈值是71.5,您也可以根据查询接口返回的比对分和建议阈值自定义业务逻辑。
金融级PictureUrl返回的URL有效期是多久?
有效期为15分钟。
通用SDK使用常见问题
用户手机修改系统时间后,为什么无法刷脸?
阿里云网关会校验设备上手机系统时间是否正确,建议用户开启手机时间自动设置,恢复系统默认时间后再次操作。
用户反馈按照界面提示正常操作,但刷脸动作不通过,是什么原因?
可能与用户的手机摄像头有关,建议清洁擦拭摄像头后再操作。
接入SDK报错“[10002]context为null,请调用APSecuritySdk.init”
初始化SDK时,如果实人认证流程正常,可忽略该错误。
Android SDK使用常见问题
本地IDE和手机测试无误,打包分发内测时,部分手机型号点击同意协议后闪退,应该如何处理?
内测打包时需要打开混淆。
本地IDE和手机测试无误,打包分发内测时,所有机型在点击采集人脸后闪退,应该如何处理?
混淆策略必须与接入文档严格一致。
SDK中的依赖冲突如何解决?
按照SDK模块使用方式可分为以下三种情况解决:
SDK中不使用的模块冲突:
可进行SDK裁剪,排除不使用的模块,模块功能详见SDK包裁剪说明。
SDK中包含的公共依赖冲突:
例如:业务App中依赖了一个ConflictingClass,而SDK包中也依赖了此类。
这样产生的冲突可以使用构建工具提供的依赖排除功能,将其中一个包中的ConflictingClass排除即可。
具体构建工具的依赖排除功能,请参考所使用构建工具的文档。(比如使用gradle构建,可搜索gradle排除依赖。)
SDK中包含了一个跟业务依赖中完全限定名一样但功能不同的类:
此种情况可能出现在SDK和业务依赖引入了同一个依赖的不同版本。比如:SDK依赖了A1.0.arr,业务依赖引入了A2.0.arr。
此种情况如果方法2不能解决问题,则需要联系依赖厂商进行依赖定制。
iOS SDK使用常见问题
调用startVerifyService时,iOS端SDK获得如下结果:resultStatus=4000,应该如何处理?
4000:系统异常。请提供CertifyId进行进一步排查。
跳转认证页面,同意协议并确认开始认证后,第一次认证初始化失败,弹出人气大爆发,应该如何处理?
客户端联网失败。请确认客户端可以正常联网,然后再试。
打包后第一次启动直接测试刷脸,从服务端获取URL正常,但无法唤起认证协议页。第二次启动,正常唤起。这是什么原因?
需要把apverifyservice初始化。
SDK支持的范围?
SDK支持armv7、i386、x86_64、arm64版本,iOS 9及以上的操作系统,机型需在iPhone 5s及以上。
如何解决iOS接入时报系统错误?
当出现系统错误时,请按照以下步骤排查问题:
请核实bundle资源文件是否未导入,或者导入不完整。
请确认协议是否存在问题。
报错“-[ZimNetworkResult APBOverrideFromJSONData:]: unrecognized selector sent to instance 0x282975d10”
可能未在iOS接入。
设置-ObjC。具体操作,请参见服务端SDK使用常见问题
PHP处理CeritifyUrl时出现HTML转义,应该如何处理?
采用HTML逆转义。
在测试环境中,认证初始化请求报错:https://saf.cn-shanghai.aliyuncs.com:443, ServerUnreachable是什么原因?
这个域名是稳定的。如果出现ServerUnreachable,可能是测试的网络有限制或者DNS存在中断等问题。
本地环境,认证初始化部分请求报错如下,应该如何处理?
java.lang.IllegalStateException:Serverresponsehasabadformattype:RAWatcom.aliyuncs.reader.ReaderFactory.createInstance(ReaderFactory.java:16)atcom.aliyuncs.DefaultAcsClient.readError(DefaultAcsClient.java:372)atcom.aliyuncs.DefaultAcsClient.getCommonResponse(DefaultAcsClient.java:164)atcom.guohualife.ebiz.cIP.gateway.util.AliCloudJRUtil.aliCloudFaceCheck(AliCloudJRUtil.java:53)
文档中Java SDK示例的request.setQueryParameter 需要改为 request.setBodyParameter。原先写法是将参数在URL中拼接传输,在离线比对场景会造成URL过大(核验图片在140 KB上下,但阿里云POP要求不大于128 KB)。改为在body中传输可以避免这个问题(body要求不大于1 MB)。
调用接口时提示:com.alibaba.fastjson.JSONException: syntax error, pos 1, line 1, column 2,应该如何处理?
DNS解析出现异常,找不到URL对应的IP。请检查网络使用什么代理服务器,或者查看DNS服务是否存在中断等问题。
调用接口时提示如下错误,应该如何处理?
{"rspData":{"orderNo":"GB202002185110401116004974****","requestId":"883B3A40-B820-4013-8473-31C254CBD50F","retCode":"SignatureDoesNotMatch","retMsg":"Specifiedsignatureisnotmatchedwithourcalculation.serverstringtosignis:POST&%2F&AccessKeyId%3DLTAI4Fu4N5JUWyUS7VEW****%26Action%3DExecuteRequest%26Format%3Djson%26Service%3Dfin_face_verify
签名错误,检查AccessKey ID和AccessKey Secret是否正确,是否有空格,是否代码固化。
离线比对报出非法参数,应该如何处理?
POP超时时长过短,引发重试导致。应延长超时时长。
OSS空间类常见问题
使用金融级实人认证服务,必须开通对象存储OSS服务吗?
金融级实人认证服务部分方案需要将认证过程中采集的照片保存到您的OSS存储空间中,所以建议您开通对象存储OSS服务并完成授权。金融级实人认证会将采集到的人脸照片返回到您指定的OSS存储空间。
关于OSS存储空间的具体介绍,请参见什么是对象存储OSS。
关于如何开通对象存储OSS服务,请参见开通对象存储OSS服务。
已经在别的项目中开通了对象存储OSS服务的账号,需要怎么配置呢?
请参考页面引导操作授权开通即可。系统会自动创建一个存储空间,用于存储认证中的用户人脸图片。该操作对其他项目已经在使用的OSS存储空间没有任何影响。
对象存储OSS服务如何进行计费?
对象存储OSS服务的计费方式分为按量计费和包年包月两种。关于OSS的计费详情,请参见OSS计量计费。
如何删除OSS存储空间的照片?
您可以设置定期自动删除OSS存储空间的图片。更多信息,请参见设置OSS存储空间生命周期规则。
关于OSS存储空间的其他常见问题和解决方法,请参见OSS常见问题。
如何配置代理网络
您可以选择金融级实人认证代理(包含正向代理和反向代理)、OSS对象访问反向代理方式中的一种方式。
其中正向代理用于认证客户端无法访问认证服务端的情况,反向代理用于多个认证服务端的容灾整合,具体操作如下:
金融级实人认证正向(认证客户端)代理
在允许访问外部服务的区域创建一台代理服务器,并开放认证客户端服务器(应用服务器)对此代理服务器的访问,执行如下命令安装Nginx。
yum install nginx
执行如下命令,编辑/etc/nginx/nginx.conf配置文件。
vim /etc/nginx/nginx.conf
说明配置文件的路径请以实际路径为准,本文以/etc/nginx/nginx.conf配置文件为例。
在config文件中的HTTP模块添加如下内容。
server { resolver 127.0.0.1; #指定DNS服务器IP地址 listen 80; location / { proxy_pass http://$http_host$request_uri; } }
执行如下命令,确认添加的配置正常。
nginx -t
执行如下命令,启动Nginx。
systemctl start nginx
在客户端服务器上对SDK设置代理并测试,测试响应正常表示您代理设置成功。
关于SDK源代码,请参见SDK包。
// Client代理配置。 HttpClientConfig clientConfig = HttpClientConfig.getDefault(); // 设置HTTP代理。 clientConfig.setHttpProxy("http://127.0.0.1:9898"); // 设置HTTPS代理。 clientConfig.setHttpsProxy("http://user:password@127.0.0.1:8989"); // 设置忽略代理地址列表。 clientConfig.setNoProxy("127.0.0.1,localhost"); IClientProfile profile = DefaultProfile.getProfile(regionId, accesskeyId, accesskeySecret); profile.setHttpClientConfig(clientConfig); DefaultAcsClient client = new DefaultAcsClient(profile);
金融级实人认证反向(认证服务端)代理
在允许访问外部服务的区域创建一台代理服务器,执行如下命令安装Nginx。
yum install nginx
执行如下命令,编辑/etc/nginx/nginx.conf配置文件。
vim /etc/nginx/nginx.conf
说明配置文件的路径请以实际路径为准,本文以/etc/nginx/nginx.conf配置文件为例。
在config文件中的HTTP模块添加如下内容。
server { listen 0.0.0.0:80; server_name cloudauth.aliyuncs.com resolver 223.5.5.5 223.6.6.6 valid=30s; location / { proxy_pass http://cloudauth.aliyuncs.com; proxy_set_header Host $host; access_log /var/logs/nti-access.log; error_log /var/logs/nti-error.log; } }
执行如下命令,确认添加的配置正常。
nginx -t
执行如下命令,启动Nginx。
systemctl start nginx
在本地应用服务器上,配置host并访问服务地址,网页响应正常表示您代理设置成功。
您可以在Nginx反向代理服务器上的/var/logs/nti-access.log中查看访问日志。
OSS对象访问反向代理
在允许访问外部服务区创建一台服务器,执行如下命令安装Nginx。
yum install nginx
执行如下命令,编辑/etc/nginx/nginx.conf配置文件。
vim /etc/nginx/nginx.conf
说明配置文件的路径请以实际路径为准,本文以/etc/nginx/nginx.conf配置文件为例。
在config文件中的HTTP模块添加如下内容。
//主OSS Endpoint 代理配置 server { listen 0.0.0.0:80; server_name oss-cn-shanghai.aliyuncs.com //223.5.5.5、223.6.6.6为DNS服务器,可以切换成用户本地的互联网DNS服务器 resolver 223.5.5.5 223.6.6.6 valid=30s; location / { proxy_pass http://oss-cn-shanghai.aliyuncs.com; proxy_set_header Host $host; access_log /var/logs/nti-access.log; error_log /var/logs/nti-error.log; } } //备份OSS Endpoint 代理配置 server { listen 0.0.0.0:80; server_name cn-shanghai.oss.aliyuncs.com //223.5.5.5、223.6.6.6为DNS服务器,可以切换成用户本地的互联网DNS服务器 resolver 223.5.5.5 223.6.6.6 valid=30s; location / { proxy_pass http://cn-shanghai.oss.aliyuncs.com; proxy_set_header Host $host; access_log /var/logs/nti-access.log; error_log /var/logs/nti-error.log; } }
执行如下命令,确认添加的配置正常。
nginx -t
执行如下命令,启动Nginx。
systemctl start nginx
在本地应用服务器上配置host并访问服务地址,网页响应正常表示代理设置成功。
您可以在Nginx反向代理服务器上的/var/logs/nti-access.log中查看访问日志。