Commit 1e0d35ec authored by shiyl's avatar shiyl
parents e9d061bc 3254dce7
......@@ -10,10 +10,10 @@ class LifeAccountPersonalAuthData {
var idCardNum: String = ""
var phoneNum: String = "" // 法人手机号
var occupation: String = ""
var idCardPortraitFaceObjectKey: String = ""
var idCardNationalEmblemFaceObjectKey: String = ""
var idCardPortraitFaceBucket: String = ""
var idCardNationalEmblemFaceBucket: String = ""
var idCardPortraitFaceObjectKey: String? = null
var idCardNationalEmblemFaceObjectKey: String? = null
var idCardPortraitFaceBucket: String? = null
var idCardNationalEmblemFaceBucket: String? = null
var isIDCardPortraitFaceUpload: Boolean = false
var isIDCardNationalEmblemFaceUpload: Boolean = false
var idCardPortraitFaceCompleteness: Int = -1
......
......@@ -276,6 +276,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE,
10
)
startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE)
} else {
val bitmap = BitmapUtil.generateBitmapFromUri(
activity,
......@@ -292,13 +293,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE,
10
)
}
if (File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).exists() && File(
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
).exists()
) {
// 身份证两面都已选择 执行上传金山云
startUpload()
startIDCardUpload(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
}
}
Constant.REQUEST_CODE_ID_CARD_CAPTURE -> {
......@@ -316,6 +311,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
100,
cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE
)
startIDCardUpload(Constant.ID_CARD_PORTRAIT_FACE)
} else {
val bitmap = bytes?.size?.let {
BitmapFactory.decodeByteArray(
......@@ -329,13 +325,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
100,
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
)
}
if (File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).exists() && File(
cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE
).exists()
) {
// 身份证两面都已选择 执行上传金山云
startUpload()
startIDCardUpload(Constant.ID_CARD_NATIONAL_EMBLEM_FACE)
}
}
}
......@@ -344,11 +334,16 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
/**
* 执行身份证上传金山云
* todo 并发上传
* @param face 身份证两面标识
*/
private fun startUpload() {
private fun startIDCardUpload(face: Int) {
val uploadFile = if (face == Constant.ID_CARD_PORTRAIT_FACE) {
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE)
} else {
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE)
}
KS3Core.INSTANCE.uploadObject(
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE),
uploadFile,
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.ID_CARD,
object : KS3Core.OnKS3TaskListener {
......@@ -369,58 +364,30 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
}
override fun onTaskSuccess(bucket: String?, objectKey: String?) {
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = true
objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey =
it
}
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket = it
}
KS3Core.INSTANCE.uploadObject(
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE),
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.ID_CARD,
object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
override fun onTaskProgress(progress: Double) {
}
override fun onTaskFinish() {
}
override fun onTaskCancel() {
}
override fun onTaskSuccess(bucket: String?, objectKey: String?) {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload =
true
objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey =
it
}
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket =
it
}
startIDCardOCR()
}
override fun onTaskFailure(statesCode: Int, message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"upload ID card portrait face failure, message: $message"
)
}
if (face == Constant.ID_CARD_PORTRAIT_FACE) {
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload =
true
objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey =
it
}
)
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket =
it
}
} else {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload =
true
objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey =
it
}
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket =
it
}
}
startIDCardOCR()
}
override fun onTaskFailure(statesCode: Int, message: String?) {
......@@ -454,9 +421,13 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
// 回显OCR结果
viewBinding.evRealName.fillEditContent(result?.posit?.name)
viewBinding.evIdCardNumber.fillEditContent(result?.posit?.idcard_number)
// 此时身份证两面均已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).delete()
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).delete()
// 此时身份证已上传并OCR识别完成 删除本地临时存储文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply {
if (exists()) delete()
}
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete()
}
}
override fun getIDCardOCRFailure(message: String?) {
......@@ -488,7 +459,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
// 人脸验证通过UI
viewBinding.avFaceAuth.showFaceAuthResult(true)
// 删除活体检测数据
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).delete()
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete()
}
// 锁定当前输入状态 即完成人脸验证后无法修改身份证照片、姓名、身份证号
viewBinding.ivIdCardPortraitFace.disableModify()
viewBinding.ivIdCardNationalEmblemFace.disableModify()
......@@ -605,7 +578,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
override fun authPersonCheckSuccess() {
// 身份信息校验成功后才允许进行人脸验证
// 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).delete()
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete()
}
// 跳转人脸认证
val requestParams = HashMap<String, String?>()
requestParams["id_number"] = LifeAccountAuthDataManager.personalAuthData.idCardNum
......@@ -647,12 +622,19 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
override fun onImageClear(from: LifeAccountAuthImageView) {
if (from == viewBinding.ivIdCardPortraitFace) {
// 清除照片时删除本地文件
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE).apply {
if (exists()) delete()
}
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = false
viewBinding.evRealName.clearEditContent()
viewBinding.evIdCardNumber.clearEditContent()
LifeAccountAuthDataManager.personalAuthData.realName = ""
LifeAccountAuthDataManager.personalAuthData.idCardNum = ""
} else {
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE).apply {
if (exists()) delete()
}
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false
}
// 检查下一步条件
......@@ -713,7 +695,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
override fun authIndividualBusinessIdentityCommitSuccess() {
// 身份信息校验成功后才允许进行人脸验证
// 若存在上一次活体检测数据则删除 处理活体检测失败 再次进入
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).delete()
File(cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA).apply {
if (exists()) delete()
}
// 跳转人脸认证
val requestParams = HashMap<String, String?>()
requestParams["id_number"] = LifeAccountAuthDataManager.personalAuthData.idCardNum
......@@ -779,4 +763,4 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
return YdFileUtils.getImageAbsolutePath(activity, uri)
}
}
}
\ No newline at end of file
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment