第一步:设备开机后,封闭场景人脸SDK自动触发ISV服务端获取的面部向量索引文件url. 面部向量索引文件申请接口文档
第二步:封闭场景人脸SDK获取ISV服务端面部向量索引文件url,实现面部向量索引下载到机具本地。(其中全量、增量封闭场景人脸SDK逻辑已经设计好了,ISV只需要提供好面部向量索引文件url即可,实时获取面部向量索引文件逻辑由ISV根据实际业务需求设计调用逻辑)
第三步:学生选餐后,选择刷脸支付,机具刷脸,封闭场景人脸SDK实现本地比对面部向量索引。
第四步:人脸对比通过,将客户端获取到ftoken、uid给到ISV服务端,ftoken调用支付接口——alipay.trade.pay接口时使用,uid用于匹配并校验学生身份。
第五步:识别身份后,将对应的这笔交易去IOT SDK获取签名,收银应用随同交易流水信息回传到ISV服务端发起加签交易收单扣款。
最后:封闭场景人脸SDK对接 请参见封闭场景行业刷脸接入指引
【注意】在交易完成后,需要通过面部向量索引日志报告上传接口与封闭式教育场景-本地人脸比对成功同步接口,将当天的刷脸信息同步给支付宝。因此,要求机具不能全天脱网。
封闭场景刷脸FAQ: https://alipay.open.taobao.com/docs/doc.htm?articleId=118385&docType=1
1.Q:封闭场景人脸客户端接入需ISV实现理解并实现请求逻辑阐述?
A:(1).需ISV实现请求逻辑接口(onHttpConnection)
(2).全量、增量、实时都会回调,代码逻辑一致,不需要判断类型。
(3).onHttpConnection方法的作用;实现请求到ISV的server端获取三个字段(filestatue/filedate/downloadUrl),SDK根据字段会进行下载更新
(4).实现函数代码:
@Override
public void onHttpConnection(final HashMap<String, Object> paramsMap, final FaceFeatureApi.HttpResponseCallBack responseCallBack) {
//TODO ISV需要实现
// 实现http请求获取人脸库,把得到结果的三个字段(filestatue/filedate/downloadUrl)通过responseCallBack回传sdk
responseCallBack.onHttpResponse(paramsMap,filestatue,filedate,downloadUrl);
}
2.Q:人脸客户端实时(loadRealtimeFaceFeature)接口讲解?
A:loadRealtimeFaceFeature接口的两个作用。a.加载实时人脸数据b.将当天0点到请求时间新增的人脸数据下载并更新至本地并加载。
3.Q:本地没有人脸数据错误日志:[FaceFeatureApi]:errorType:INDUSTRY,code:-1000,msg:Waiting face feature to load
A: 此种情况是在isv收银app调用zolozVerify接口进行扫脸识别的时候,机具本地并未有任何的人脸数据情况下产生的。
常出现的情况有:a.未调用loadAllFaceFeature接口。b.未在loadAllFaceFeature接口的FaceFeatureApi.FaceVerifyCallBack的onSuccess成功回调中去调用zolozVerify
4.Q:本地未有人脸数据错误日志分析规则
A: 错误日志打印有很多情况,通过其中的参数进行分析区分type:错误类型,行业(INDUSTRY)、人脸(ZOLOZ),code:错误码,msg:错误信息
错误日志样例:( 本地未有人脸数据错误日志)
[FaceFeatureApi]:errorType:INDUSTRY,code:-1000,msg:Waiting face feature to load
5.Q:封闭场景刷脸日志分类?
A: 封闭场景刷脸日志分两种: 行业(INDUSTRY)、人脸(ZOLOZ)
6.Q:人脸比对识别日志通过IOT SDK回传,是不是成功或者失败都会回传uid?
A:1.0方案中的1.0版本(原子化能力):人脸sdk1.2.6的最新版本和1.2.8版本中,成功和失败都会回传iot 日志,只有成功时才包含uid。2.0方案中的smile apk:只有成功时回传iot日志,成功时包含uid。失败不包含uid。
7.Q:封闭场景人脸demo中的参数赋值说明
A:bizCode目前固定传SCHOOL_PAYMENT(校园消费),deviceNum 是设备sn号。Merchant_id 学校社会信用代码
8.Q:人脸客户端的错误代码有哪些。
A:人脸客户端错误代码可以参考demo,目前都写到sdk代码注释说明中,客户端错误码,如截图:
9.Q:封闭式教育场景-本地人脸比对成功同步接口部分参数说明
A:1) biz_id 业务流水唯一ID,由调用方生成,保证业务线唯一性,ISV自定义。
2) organize_id 校国标码传 school_stdcode学校国标码。
10.Q:人脸特征日志报告上传接口中一些参数来源说明
A:1).scene_code 场景码参数填写示例值。 2) device_num 商户机具编码填写设备sn号。3) z_face_info 商户透传人脸客户端信息。这个是转投参数,日志埋点。z_face_info应该是转投客户端的logBlob。4) inst_id 机构ID传与school_stdcode参数相同的学校的社会信用代码证编号。
11.Q:封闭场景的日志上报接口(alipay.commerce.educate.localface.compare.sync),必传参数有哪些?
A:必传参数有isv_name、aes_cypher、biz_code、alg_ver、auth_img、organize_id、fuid、biz_id
12.Q:人脸特征文件申请接口,返回文件链接为空?
A:先提供请求数据,然后提供学校编码,与业务确认是否配置封闭场景人脸服务。一般没有配置会获取文件的时候,dawnloadUrl为空。联系业务进行配置,配置完成后,需要重新采脸,采脸后10分钟之后再获取人脸特征文件。
13.Q:人脸特征文件申请接口中的,feature_version(版本号)怎么传,biz_code (场景码)怎么传?
A: 按照接口中文档中feature_version(版本号)“jasmine_v1.2- 9903ebccf5- 9903ebccf5 ”,biz_code (场景码)“ALIPAY_SCHOOL_CARD ” 。
14.Q:人脸特征文件申请接口中的Isvname字段中文是否可以?
A: 需要全英文,在联调前业务同学会通过支付宝后台配置。
15.Q:人脸特征文件申请接口中的 institution_id字段,如何填写?
A: institution_id来区分不同的学校,填写学校国标码。与身份认证接口中的school_code参数一致。
16.Q:为什么人脸特征申请文件接口返回文件为空?
A: 1.之前采脸时没有在教育业务后台配置封闭场景人脸服务。
2.Isvname字段传成中文,接口正常返回,但下载的文件内容没有内容。
17.Q:人脸特征文件下载地址是否有有效期?有效期多长时间?
A: 有时效性,文件地址的有效期为1天,所以每次请求都会生成一个新的文件。
18.Q:联调人脸特征文件申请接口时,报"ISV没有业务权限"?
A:需要与支付宝业务同学确认支付宝后台配置信息,签约认证、小程序服务、小程序入口、刷脸支付、封闭场景人脸服务等。
19.Q:如果没有成功生成文件,支付宝服务端会重试吗?重试机制如何?
A: 会重试,重试一段时间后 还是生成不成功,重试频率为7 次 3个小时,后面就不会在重试生成。
20.Q:在一些核身场景,isv需要知道采脸人的身份,由于人脸特征码不直接给到isv,采脸后如何对应到用户身份。
A: 通过客户端SDK,会给isv输出ftoken,uid参数,isv可以通过uid,来关联用户身份。(前面通过一脸通行小程序完成签约的时候,isv是可以获取用户uid)
21.Q: 通过人脸特征文件申请接口获取到的下载url,isv可以自行检查是否有内容,但文件没有内容?
A: 需要检查请求格式,人脸采集时间。如果有内容:url样例:https://mdgw.alipay.com/wsdk/file?fileid=A*RMpnSZBbPrAAAAAAAAAAAAAAAQAAAA&t=cg3tvYkUxpp9BjXCI-ZNNgAAAABkMLxdTn9f&bz=industry_biometric
截图:
22.Q:下载的人脸特征文件内容格式。
faceId|用户id|是否高危(1:高危、0:非高危)|辅助验证因子|特征码1#特征类型(2D\3D)|特征码2#特征类型(2D\3D)
23.Q: 学生刷脸出现识别不了的情况
A:请提供识别日志,找行业技术支持确认。