Commit a474415c authored by yinjiacheng's avatar yinjiacheng

update 身份证OCR接口 人脸验证成功后锁定输入状态

parent 9edd9334
......@@ -10,6 +10,8 @@ class LifeAccountPersonalAuthData {
var idCardNum: String = ""
var idCardPortraitFaceObjectKey: String = ""
var idCardNationalEmblemFaceObjectKey: String = ""
var idCardPortraitFaceBucket: String = ""
var idCardNationalEmblemFaceBucket: String = ""
var liveDetectBizToken: String = ""
var liveDetectObjectKey: String = ""
var idCardPortraitFaceCompleteness: Int = -1
......
......@@ -40,4 +40,8 @@ object Constant {
const val TYPE_STILL = "still" // 静默活体
const val TYPE_FLASH = "flash" // 炫彩活体,通过打光进行活体验证,炫彩活体相较于静默活体安全性更高,但通过率会略有降低
const val TYPE_RAW_IMAGE = "raw_image" // 不进行活体验证,仅使用上传的图片进行后续的比对
// 服务端error message
const val error_message_id_card_number = "身份证号码有误"
const val error_message_real_name = "姓名缺失"
}
\ No newline at end of file
......@@ -7,8 +7,10 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
*/
class GetIDCardOCRBean(val request: Request, val response: Response) {
data class Request(
val posit_image_objectid: String?,
val back_image_objectid: String?
val posit_image_objectid: String,
val back_image_objectid: String,
val posit_bucket: String?,
val back_bucket: String?
)
data class Response(
......@@ -19,7 +21,9 @@ class GetIDCardOCRBean(val request: Request, val response: Response) {
data class Back(
val issued_by: String,
val valid_date_end: String,
val valid_date_start: String
val valid_date_start: String,
val completeness: Int,
val legality: Legality
)
data class Posit(
......
......@@ -347,6 +347,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
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, object : KS3Core.OnKS3TaskListener {
......@@ -373,6 +376,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey =
it
}
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket =
it
}
startIDCardOCR()
}
......@@ -405,7 +412,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
this,
GetIDCardOCRBean.Request(
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey,
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey,
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket,
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket
)
)
}
......@@ -454,6 +463,11 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
ApiService.authLiveIdentity(this)
// 检查下一步条件
(activity as LifeAccountPersonalAuthActivity).checkNextCondition()
// 锁定当前输入状态 即完成人脸验证后无法修改身份证照片、姓名、身份证号
viewBinding.ivIdCardPortraitFace.disableModify()
viewBinding.ivIdCardNationalEmblemFace.disableModify()
viewBinding.evRealName.disableModify()
viewBinding.evIdCardNumber.disableModify()
}
}
......@@ -577,6 +591,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
override fun onImageClear(from: LifeAccountAuthImageView) {
if (from == viewBinding.ivIdCardPortraitFace) {
LifeAccountAuthDataManager.personalAuthData.isIDCardPortraitFaceUpload = false
viewBinding.evRealName.clearEditContent()
viewBinding.evIdCardNumber.clearEditContent()
LifeAccountAuthDataManager.personalAuthData.realName = ""
LifeAccountAuthDataManager.personalAuthData.idCardNum = ""
} else {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false
}
......
......@@ -39,6 +39,8 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
private var idCardBack: Bitmap? = null
private lateinit var idCardFrontObjectKey: String
private lateinit var idCardBackObjectKey: String
private lateinit var idCardFrontBucket: String
private lateinit var idCardBackBucket: String
override fun createViewBinding(): ActivityIdcardBinding {
return ActivityIdcardBinding.inflate(layoutInflater)
......@@ -97,6 +99,9 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
if (objectKey != null) {
idCardFrontObjectKey = objectKey
}
if (bucket != null) {
idCardFrontBucket = bucket
}
KS3Core.INSTANCE.uploadObject(backFile, object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
......@@ -118,7 +123,16 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
if (objectKey != null) {
idCardBackObjectKey = objectKey
}
val request = GetIDCardOCRBean.Request(idCardFrontObjectKey, idCardBackObjectKey)
if (bucket != null) {
idCardBackBucket = bucket
}
val request =
GetIDCardOCRBean.Request(
idCardFrontObjectKey,
idCardBackObjectKey,
idCardFrontBucket,
idCardBackBucket
)
ApiService.getIDCardOCR(object : IGetIDCardOCRCallback {
override fun getIDCardOCRSuccess(result: GetIDCardOCRBean.Response?) {
Log.d(KS3Core.TAG, "name: ${result?.posit?.name}, id num: ${result?.posit?.idcard_number}")
......
......@@ -6,6 +6,7 @@ import android.text.TextUtils
import android.text.TextWatcher
import android.util.AttributeSet
import android.view.View
import androidx.core.view.isVisible
import com.yidian.nightmode.widget.YdConstraintLayout
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ViewLifeAccountAuthBusinessInfoEditBinding
......@@ -70,6 +71,14 @@ class LifeAccountAuthBusinessInfoEditView @JvmOverloads constructor(
}
}
/**
* 禁止修改
*/
fun disableModify() {
viewBinding.ivClear.isVisible = false
isEnabled = false
}
override fun onClick(v: View?) {
if (v?.id == R.id.iv_clear) {
// 清除输入框中的内容
......
......@@ -6,6 +6,7 @@ import android.text.TextUtils
import android.text.TextWatcher
import android.util.AttributeSet
import android.view.View
import androidx.core.view.isVisible
import com.yidian.nightmode.widget.YdConstraintLayout
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ViewLifeAccountAuthIdentityInfoEditBinding
......@@ -73,6 +74,14 @@ class LifeAccountAuthIdentityInfoEditView @JvmOverloads constructor(
}
}
/**
* 禁止修改
*/
fun disableModify() {
viewBinding.ivClear.isVisible = false
isEnabled = false
}
override fun onClick(v: View?) {
if (v?.id == R.id.iv_clear) {
// 清除输入框中的内容
......
......@@ -73,6 +73,14 @@ class LifeAccountAuthImageView @JvmOverloads constructor(
callback?.onImageClear(this)
}
/**
* 禁止修改
*/
fun disableModify() {
viewBinding.ivClear.isVisible = false
isEnabled = false
}
override fun onClick(v: View?) {
if (v?.id == R.id.iv_clear) {
// 清除填充的图片
......
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