金融场景 API

优质
小牛编辑
135浏览
2023-12-01

1. 背景说明

API 列表基础上,FinClip围绕金融特色场景,提供了如下API接口供小程序使用。

需声明的是,使用以下API时,请确保宿主App已经集成对应能力且与FinClip SDK实现联调的第三方功能SDK,否则小程序调用将无法实现相关功能。

具体来说,此类场景包括:

  • 如果App集成了FinClip SDK + 已与FinClip 实现联调的SDK,则此时小程序可以直接调用API,并实现相关功能目标
  • 如果App仅集成了FinClip SDK、未集成与FinClip 联调成功的功能SDK,则此时小程序调用API无响应,但不会影响小程序自身业务
  • 如果App集成了FinClip SDK+未与FinClip 联调的SDK,但宿主App根据API内容实现了自定义注册(iOS自定义注册API | Android自定义注册API),则小程序可调用相关API实现指定功能

综合来说,我们建议:

  • 对于小程序开发者,应直接在业务代码中使用本页所述API;通过规范API调用,可最大化帮助开发者减少定制开发的工作量
  • 对于宿主App,只需根据使用场景集成FinClip SDK + 其他指定功能SDK,正常情况下无需关注自定义注册API;通过本规范,宿主App可最大化减少集成、开发、联调工作量
  • 对于第三方功能SDK,可与FinClip联系后,尽快参考本协议、完成双方联调,以便利其他客户接入

2. OCR卡片识别(finCardOcr)

接口名称: finCardOcr

接口依赖:无(使用任意版本FinClip SDK 均可调用)

请求参数

名称类型默认值说明
typeString非空"BankCard":银行卡识别
"IDCard":身份证识别
"IDCardCheck":身份证照片质检
"BusiCert":企业营业执照识别
imagePathString照片文件所在路径
小程序通过chooseImage提取该字段即可
IOS/Android则传递文件绝对路径
其中IOS可将UIImage文件写入临时文件简单解决文件访问问题

返回结果

名称类型默认值说明
typeString非空"BankCard":银行卡识别
"IDCard":身份证识别
"IDCardCheck":身份证照片质检
"BusiCert":企业营业执照识别
errorCodeInt0识别结果,0表示成功
descriptionString识别结果描述
recogResultObject识别结果{"cardNo":卡号,......}

recogResult字段说明

身份证正面

名称说明
face0:正面, 1:反面
nation民族(仅正面有)
gender性别(仅正面有)
birthday生日(仅正面有)
address地址(仅正面有)
name姓名(仅正面有)
idNo身份证号码(仅正面有)
startDate有效期起始日期(仅反面有)
endDate有效期截止日期(仅反面有)
signOrg签发机关(仅反面有)

身份证质检

名称说明
risk图片风险:
0=无
1=复印件
2=拍屏
3=假证件
4=有水印
5=遮挡
6=切边
7=卡变形
8=有光斑

银行卡

名称说明
cardNo卡号
bankName银行
bankId银行标识id
cardType卡类型:借记卡 准贷记卡

营业执照

名称说明
regOrg登记机关
busiScrope经营范围
certNo统一社会信用代码/营业执照号
regDate登记日期
capital注册资本
address住所
expDate营业期限
represent法人代表
certType营业执照类型:正本、副本
corpName企业名称
corpType企业类型
foundDate成立日期

3. 人脸联网身份核验(finFaceAuth)

接口名称: finFaceAuth

接口依赖:无(使用任意版本FinClip SDK 均可调用)

请求参数

名称类型默认值说明
idNoString身份证号码
nameString姓名
imagePathString照片文件所在路径

返回结果

名称类型默认值说明
errorCodeInt0识别结果,0表示成功
descriptionString识别结果描述
scoredouble0-1相似度

4. 活体检测(finLivenessCheck)

接口名称: finLivenessCheck

接口依赖:无(使用任意版本FinClip SDK 均可调用)

请求参数

名称类型默认值说明

返回结果

名称类型默认值说明
resultTypeString"success" 成功、"back"用户点击返回取消活体检测
faceImgStrString活体检测返回图片,Base64后的byte数组。仅成功返回

5. 打开三方app(finOpenOtherApp)

接口名称: finOpenOtherApp

接口依赖:无(使用任意版本FinClip SDK 均可调用)

请求参数

名称类型默认值说明
packageStringApp包名,Android用于判断App是否已安装,仅Android
urlStringApp的scheme加url,iOS用于判断App是否已安装且跳转用;Android用于跳转用
downloadUrlString下载App地址
alertMsgString下载提示框提示语,如不传则不弹提示框直接跳转页面

6. 双向视频认证(finOpenWitnessVideo)

接口名称:finOpenWitnessVideo

接口依赖:无(使用任意版本FinClip SDK 均可调用)

请求参数

名称类型默认值说明
videoTypeString视频服务类型
videoIpString视频服务ip
videoPortString视频服务端口
loginNameString登录名
loginPwdString登录密码(可选)
roomIdString房间id
roomNameString房间名
roomPwdString房间密码(可选)
appIdStringanychat集群appId

返回结果

名称类型默认值说明
videoFlagString非空返回标志 0,成功,1,失败,2,驳回
rejectReasonString驳回理由
messageString详细信息

7. 单向视频录制小程序实现

接口依赖:本组件无需依赖凡泰 FinClip SDK 以外的第三方 SDK

小程序单向录制组件使用

1、下载录制视频组件实例代码包

录制 demo v1.0.0 (opens new window)

组件代码在根目录的 components 内,也可直接用 ide 工具打开录制 demo 查看效果

2、在需要使用的页面或组件的 json 文件内,引入录制组件

{
  "usingComponents": {
    "video-recognition": "../../components/video-recognition/index"
  }
}

3、在页面或组件的 wxml 内,使用组件

<view style="width: 100vw;height: 100vh;">
  <video-recognition recordTime="{{recordTime}}"
                     top="{{top}}"
                     stepList="{{stepList}}"
                     buttonStyle="{{buttonStyle}}"
                     mask="../../assets/img_mask_person@3x.png"
                     resolution="low"
                     bind:onRecordReady="onRecordReady"
                     bind:onRecordStart="onRecordStart"
                     bind:onRecordEnd="onRecordEnd"
                     bind:onRecordError="onRecordError">
  </video-recognition>
</view>

注意

录制组件外层需要声明宽高尺寸,录制组件内会按 width: 100%; height: 100% 展示

4、组件参数一览

名称类型是否必须默认值备注
resolutionStringmedium分辨率,可选值:low、medium、high 只在初始化时有效,不能动态变更
maskString-取景区域的遮罩资源路径,建议使用小程序内资源的相对路径,https 地址会有加载耗时,遮罩会按 width 100% height 100% 的尺寸放在 camera 上,注意和组件尺寸相匹配
recordTimeNumber30000录制时间,单位为毫秒
topNumber20单位 rpx 文本提示距顶部的距离,也可修改 video-recognition 组件内的 wxss,自定义文本的position
stepListArray<Object>-每⼀步的语⾳和提示⽂案配置,最大支持长度为 3,数据元素结构可参考表格后的说明
buttonStyleObject-控制录制按钮的样式,可对按钮进行位置上的微调,目前支持以下字段:width、height、left、top、bottom、right,只在初始化时有效,不能动态变更
onRecordReadyEventHandler-通过 onRecordReady 绑定,ready 前会进行一些异步资源的下载,资源准备好后触发,可用于在使用组件的 page 页面判断录制组件是否准备完毕,从而控制 loading 和组件展示
onRecordStartEventHandler-通过 bind:onRecordStart 绑定,录制开始时触发
onRecordEndEventHandler-通过 bind:onRecordEnd 绑定,录制结束时触发,回调方法参数 res,res.tempVideoPath 即为录制视频的本地文件地址
onRecordErrorEventHandler-通过 bind:onRecordError 绑定,录制报错时触发,回调方法参数 res,res.errMsg 为发生错误时的报错信息

stepList 参数说明

每⼀步的语⾳和提示⽂案配置,最大支持长度为 3

数据元素结构如下:

{
  "audioSrc": "https://xxxxx.mp3",
  "showTime": 0,
  "textList": []
}

audioSrc - 音频链接,建议使用 https 链接,组件 attached 会下载音频资源,若下载失败会执行 error 回调,报资源加错错误

注意

mp3 的域名需在管理后台添加到白名单内,否则会下载失败

showTime - 文本提示和音频的展示时间,毫秒数,0 表示初始展示,2000 表示录制开始 2s 时展示

textList - 文本提示,数组类型

textList 参数对象如下:

{
  "text": '请用普通话大声朗读'
}

text - 文本内容

可添加 width|height|padding|margin|color|fontSize|fontWeight|textAlign 等样式属性简单控制文本样式:

{
  "text": '文本',
  "color": 'red',
  "fontWeight": 'bold',
  "margin": '0 20rpx'
}

注意

一个 textList 子元素,展示时会以单行不换行展示,可按需拆分成多行多个子元素

另外,如果单行内容内需要个别词语高亮展示,text 属性可以传入数组,属性与上述对象参数一致,如下:

{
  "text": [{
    "text": '文本'
  }, {
    "text": '高亮文本',
    "color": 'red',
    "fontWeight": 'bold',
    "margin": '0 20rpx'
  }, {
    "text": '文本'
  }]
}

stepList 只在初始化时有效,不能动态变更

本组件使用小程序原生语法开发,除文档描述的参数外,也可自行修改组件内的逻辑,满足不同的业务需求。