Commit 29c894a2 authored by shiyl's avatar shiyl

Merge branch 'dev' of https://git.yidian-inc.com:8021/bp/ShenghuoquanBusiness into dev

# Conflicts:
#	Components/newscontent/src/main/res/values/colors.xml
parents 6c2cfb63 821c2277
......@@ -38,11 +38,11 @@ class URLs {
const val authLiveIdentity = "/merchant/auth/live_identity"
const val authComplete = "/merchant/auth/complete"
const val authAuthentication = "/merchant/auth/authentication"
const val authMerchantCheck = "/merchant/enterprise/ent_check"
const val authBusinessLicenseCommit = "/merchant/enterprise/ent_commit"
const val authEnterpriseLegalIdentityCommit = "/merchant/enterprise/legal_commit"
const val authIndividualBusinessIdentityCommit = "/merchant/enterprise/ent_personal"
const val authEnterpriseLiveIdentity = "/merchant/enterprise/live_identity"
const val authEnterpriseComplete = "/merchant/enterprise/complete"
const val authMerchantCheck = "/merchant/enterprise/check"
const val authBusinessLicenseCommit = "/merchant/enterprise/business"
const val authEnterpriseLegalIdentityCommit = "/merchant/enterprise/legal"
const val authIndividualBusinessIdentityCommit = "/merchant/enterprise/employed"
const val authEnterpriseLiveIdentity = "/merchant/enterprise/live"
const val authIndividualBusinessComplete = "/merchant/enterprise/employed_complate"
}
}
\ No newline at end of file
......@@ -26,6 +26,7 @@ import com.yidian.shenghuoquan.newscontent.service.*
import com.yidian.shenghuoquan.newscontent.ui.*
import com.yidian.shenghuoquan.newscontent.ui.auth.*
import com.yidian.shenghuoquan.newscontent.ui.idcard.IDCardTestActivity
import com.yidian.utils.DensityUtil
import com.yidian.xpage.XPageManager
import com.yidian.xpage.node.XPageHandler
import com.yidian.xpage.node.XPageNode
......@@ -41,6 +42,7 @@ class NewsContentApplication : YdBaseApplication() {
registerXPage()
initService()
NightModeUtil.setContext(this)
DensityUtil.init(this)
}
}
......
package com.yidian.shenghuoquan.newscontent.bean
/**
* author: yinjiacheng
* date: 6/8/21 12:54 AM
* description: 提示dialog内操作项
*/
data class HintOptionBean(val option: String)
\ No newline at end of file
......@@ -11,6 +11,8 @@ class LifeAccountMerchantAuthData {
var businessLicenseObjectKey: String = ""
var registrationName: String = ""
var registrationCode: String = ""
var authRecordId: Long? = null
var lifeAccountId: Long? = null
// 营业执照相关信息
var type: String? = null
......
......@@ -8,7 +8,7 @@ package com.yidian.shenghuoquan.newscontent.bean
class LifeAccountPersonalAuthData {
var realName: String = ""
var idCardNum: String = ""
var phoneNum: String = ""
var phoneNum: String = "" // 法人手机号
var occupation: String = ""
var idCardPortraitFaceObjectKey: String = ""
var idCardNationalEmblemFaceObjectKey: String = ""
......@@ -20,6 +20,7 @@ class LifeAccountPersonalAuthData {
var idCardNationalEmblemFaceCompleteness: Int = -1
var liveDetectBizToken: String = ""
var liveDetectObjectKey: String = ""
var liveDetectBucket: String = ""
var isFaceAuthPass: Boolean = false
// 身份证相关信息
......
......@@ -16,7 +16,7 @@ import okhttp3.MultipartBody
class ApiService {
companion object {
//获取短信验证码
// 获取短信验证码
fun sendMsgCode(apiCallback: IMobileLoginCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -35,7 +35,7 @@ class ApiService {
})
}
//手机号登录登录接口
// 手机号登录登录接口
fun mobileLogin(apiCallback: IMobileLoginCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -54,7 +54,7 @@ class ApiService {
})
}
//获取生活号列表
// 获取生活号列表
fun getAccountList(apiCallback: IMobileLoginCallback) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -72,7 +72,7 @@ class ApiService {
})
}
//获取活体检测接口
// 人脸检测接口
fun identifyIdOcrVerify(apiCallback: IdentifyIdOcrVerifyCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -91,7 +91,7 @@ class ApiService {
})
}
//获取活体检测接口
// 获取人脸检测token接口
fun authPersonalGetToken(apiCallback: AuthPersonalGetTokenCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -109,7 +109,7 @@ class ApiService {
})
}
//获取金山云token接口
// 获取金山云token接口
fun getKSYunToken(requestParams: HashMap<String, String?>): HttpResult<GetKSYunTokenBean.Response>? {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -129,7 +129,7 @@ class ApiService {
return null
}
//获取身份证OCR接口
// 获取身份证OCR接口
fun getIDCardOCR(apiCallback: IGetIDCardOCRCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -148,12 +148,13 @@ class ApiService {
})
}
//获取金山云ObjectId
fun getKSYunObjectId(apiCallback: IGetKSYunObjectIdCallback) {
// 获取金山云ObjectId
fun getKSYunObjectId(apiCallback: IGetKSYunObjectIdCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
ServiceFactory.getInstance().createService(CommonService::class.java)
.getKSYunObjectId(publicParamsMap)
.getKSYunObjectId(publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<GetKSYunObjectIdBean.Response>() {
override fun onSuccess(result: HttpResult<GetKSYunObjectIdBean.Response>?) {
......@@ -166,7 +167,7 @@ class ApiService {
})
}
//获取金山云Bucket
// 获取金山云Bucket
fun getKSYunBucket(apiCallback: IGetKSYunBucketCallback) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -184,7 +185,7 @@ class ApiService {
})
}
//获取金山云Bucket
// 获取金山云Bucket
fun businessLicenseOCR(apiCallback: IBusinessLicenseOCRCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -203,9 +204,7 @@ class ApiService {
})
}
//文件上传
// 文件上传
fun uploadFile(apiCallback: IUploadFileCallback, requestParams: MultipartBody.Part) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -224,7 +223,7 @@ class ApiService {
})
}
//pushToken绑定接口
// pushToken绑定接口
fun pushTokenAndroid(requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -335,7 +334,7 @@ class ApiService {
})
}
// 401 商户认证检查
// 401 商户认证检查接口
fun authMerchantCheck(apiCallback: IAuthMerchantCheckCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -354,7 +353,7 @@ class ApiService {
})
}
// 402 商户上传营业执照信息
// 402 商户上传营业执照信息接口
fun authBusinessLicenseCommit(apiCallback: IAuthBusinessLicenseCommitCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -373,7 +372,7 @@ class ApiService {
})
}
// 403 普通企业上传法人身份信息
// 403 普通企业上传法人身份信息接口
fun authEnterpriseLegalIdentityCommit(apiCallback: IAuthEnterpriseLegalIdentityCommitCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -381,18 +380,18 @@ class ApiService {
ServiceFactory.getInstance().createService(CommonService::class.java)
.authEnterpriseLegalIdentityCommit(publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>() {
override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.authEnterpriseLegalIdentityCommitSuccess()
.subscribe(object : HttpResultSubscriber<AuthEnterpriseLegalIdentityCommitBean.Response?>() {
override fun onSuccess(result: HttpResult<AuthEnterpriseLegalIdentityCommitBean.Response?>?) {
apiCallback.authEnterpriseLegalIdentityCommitSuccess(result?.result)
}
override fun onFailer(result: HttpResult<Any?>?) {
override fun onFailer(result: HttpResult<AuthEnterpriseLegalIdentityCommitBean.Response?>?) {
apiCallback.authEnterpriseLegalIdentityCommitFailure(result?.reason)
}
})
}
// 404 个体工商户身份认证
// 404 个体工商户身份认证接口
fun authIndividualBusinessIdentityCommit(apiCallback: IAuthIndividualBusinessIdentityCommitCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
......@@ -430,21 +429,21 @@ class ApiService {
})
}
// 410 企业认证完成认证
fun authEnterpriseComplete(apiCallback: IAuthEnterpriseCompleteCallback, requestParams: HashMap<String, String?>) {
// 406 个体工商户认证完成接口
fun authIndividualBusinessComplete(apiCallback: IAuthIndividualBusinessCompleteCallback, requestParams: HashMap<String, String?>) {
val timeStamp = System.currentTimeMillis()
val publicParamsMap = HttpParamsUtils.getPublicParamsMap(timeStamp)
val privateParamsMap = HttpParamsUtils.getPrivateParamsMap(requestParams, timeStamp)
ServiceFactory.getInstance().createService(CommonService::class.java)
.authEnterpriseComplete(publicParamsMap, privateParamsMap)
.authIndividualBusinessComplete(publicParamsMap, privateParamsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<AuthEnterpriseCompleteBean.Response?>() {
override fun onSuccess(result: HttpResult<AuthEnterpriseCompleteBean.Response?>?) {
apiCallback.authEnterpriseCompleteSuccess(result?.result)
.subscribe(object : HttpResultSubscriber<AuthIndividualBusinessCompleteBean.Response?>() {
override fun onSuccess(result: HttpResult<AuthIndividualBusinessCompleteBean.Response?>?) {
apiCallback.authIndividualBusinessCompleteSuccess(result?.result)
}
override fun onFailer(result: HttpResult<AuthEnterpriseCompleteBean.Response?>?) {
apiCallback.authEnterpriseCompleteFailure(result?.reason)
override fun onFailer(result: HttpResult<AuthIndividualBusinessCompleteBean.Response?>?) {
apiCallback.authIndividualBusinessCompleteFailure(result?.reason)
}
})
}
......
......@@ -38,7 +38,7 @@ interface CommonService {
fun identifyIdOcrVerify(@QueryMap commonParams: Map<String, String>, @Body requestParams: Map<String, String?>): Observable<HttpResult<Any?>>
@GET(URLs.getKSYunObjectId)
fun getKSYunObjectId(@QueryMap commonParams: Map<String, String>) : Observable<HttpResult<Any?>>
fun getKSYunObjectId(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
@GET(URLs.getKSYunBucket)
fun getKSYunBucket(@QueryMap commonParams: Map<String, String>) : Observable<HttpResult<Any?>>
......@@ -91,6 +91,6 @@ interface CommonService {
@GET(URLs.authEnterpriseLiveIdentity)
fun authEnterpriseLiveIdentity(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
@GET(URLs.authEnterpriseComplete)
fun authEnterpriseComplete(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
@GET(URLs.authIndividualBusinessComplete)
fun authIndividualBusinessComplete(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String?>) : Observable<HttpResult<Any?>>
}
\ No newline at end of file
......@@ -5,7 +5,7 @@ import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthBusinessLicenseComm
/**
* author: yinjiacheng
* date: 6/3/21 7:25 PM
* description: API /merchant/enterprise/ent_commit
* description: API /merchant/enterprise/business
*/
interface IAuthBusinessLicenseCommitCallback {
fun authBusinessLicenseCommitSuccess(result: AuthBusinessLicenseCommitBean.Response?)
......
package com.yidian.shenghuoquan.newscontent.http.callback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthEnterpriseCompleteBean
/**
* author: yinjiacheng
* date: 6/3/21 9:12 PM
* description: API /merchant/enterprise/complete
*/
interface IAuthEnterpriseCompleteCallback {
fun authEnterpriseCompleteSuccess(result: AuthEnterpriseCompleteBean.Response?)
fun authEnterpriseCompleteFailure(message: String?)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.callback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthEnterpriseLegalIdentityCommitBean
/**
* author: yinjiacheng
* date: 6/3/21 8:38 PM
* description: API /merchant/enterprise/ent_commit
* description: API /merchant/enterprise/legal
*/
interface IAuthEnterpriseLegalIdentityCommitCallback {
fun authEnterpriseLegalIdentityCommitSuccess()
fun authEnterpriseLegalIdentityCommitSuccess(result: AuthEnterpriseLegalIdentityCommitBean.Response?)
fun authEnterpriseLegalIdentityCommitFailure(message: String?)
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ package com.yidian.shenghuoquan.newscontent.http.callback
/**
* author: yinjiacheng
* date: 6/3/21 9:06 PM
* description: API /merchant/enterprise/live_identity
* description: API /merchant/enterprise/live
*/
interface IAuthEnterpriseLiveIdentityCallback {
fun authEnterpriseLiveIdentitySuccess()
......
package com.yidian.shenghuoquan.newscontent.http.callback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthIndividualBusinessCompleteBean
/**
* author: yinjiacheng
* date: 6/3/21 9:12 PM
* description: API /merchant/enterprise/employed_complate
*/
interface IAuthIndividualBusinessCompleteCallback {
fun authIndividualBusinessCompleteSuccess(result: AuthIndividualBusinessCompleteBean.Response?)
fun authIndividualBusinessCompleteFailure(message: String?)
}
\ No newline at end of file
......@@ -3,7 +3,7 @@ package com.yidian.shenghuoquan.newscontent.http.callback
/**
* author: yinjiacheng
* date: 6/3/21 8:55 PM
* description: API /merchant/enterprise/ent_personal
* description: API /merchant/enterprise/employed
*/
interface IAuthIndividualBusinessIdentityCommitCallback {
fun authIndividualBusinessIdentityCommitSuccess()
......
......@@ -5,7 +5,7 @@ import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthMerchantCheckBean
/**
* author: yinjiacheng
* date: 6/3/21 6:21 PM
* description: API /merchant/enterprise/ent_check
* description: API /merchant/enterprise/check
*/
interface IAuthMerchantCheckCallback {
fun authMerchantCheckSuccess(result: AuthMerchantCheckBean.Response?)
......
......@@ -3,12 +3,11 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 6:23 PM
* description: API /merchant/enterprise/ent_commit
* description: API /merchant/enterprise/business
*/
class AuthBusinessLicenseCommitBean {
data class Request(
val user_id: Long,
val code: String,
val name: String,
val type: String?,
......@@ -28,10 +27,8 @@ class AuthBusinessLicenseCommitBean {
val data_from: Int,
val data_type: Int,
val life_account_id: Long?,
val proxy_user_name: String?,
val mobile: String?,
val is_agent: Int?
)
data class Response(val data: Int)
data class Response(val enterprise_auth_record_id: Long)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 9:08 PM
* description: API /merchant/enterprise/complete
*/
class AuthEnterpriseCompleteBean {
data class Request(val code: String)
data class Response(
val enterprise_auth_record_id: Long,
val code: String,
val name: String,
val legal_person: String,
val legal_id_card: String,
val data_type: Int,
val audit_status: Int
)
}
\ No newline at end of file
......@@ -3,9 +3,9 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 7:37 PM
* description: API /merchant/enterprise/ent_commit
* description: API /merchant/enterprise/legal
*/
class AuthEnterpriseLegalIdentityCommitBean() {
class AuthEnterpriseLegalIdentityCommitBean {
data class Request(
val record_id: Long,
......@@ -22,9 +22,9 @@ class AuthEnterpriseLegalIdentityCommitBean() {
val valid_date_end: String?,
val issued_by: String?,
val life_account_id: Long?,
val proxy_user_name: String?,
val mobile: String,
val is_agent: String?
)
data class Response(val life_account_id: Long)
}
\ No newline at end of file
......@@ -3,9 +3,10 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 9:05 PM
* description: API /merchant/enterprise/live_identity
* description: API /merchant/enterprise/live
*/
class AuthEnterpriseLiveIdentityBean {
data class Request(val code: String, val idcard_number: String)
data class Request(val record_id: Long)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 9:08 PM
* description: API /merchant/enterprise/employed_complate
*/
class AuthIndividualBusinessCompleteBean {
data class Request(val record_id: Long)
data class Response(val life_account_id: Long)
}
\ No newline at end of file
......@@ -3,13 +3,12 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 8:41 PM
* description: API /merchant/enterprise/ent_personal
* description: API /merchant/enterprise/employed
*/
class AuthIndividualBusinessIdentityCommitBean {
data class Request(
val code: String,
val data_type: Int,
val record_id: Long,
val front_img: String,
val bak_img: String,
val front_completeness: Int,
......@@ -22,8 +21,6 @@ class AuthIndividualBusinessIdentityCommitBean {
val valid_date_start: String?,
val valid_date_end: String?,
val issued_by: String?,
val proxy_user_name: String?,
val phone: String?,
val is_agent: Int?
)
}
\ No newline at end of file
......@@ -3,16 +3,28 @@ package com.yidian.shenghuoquan.newscontent.http.httpbean
/**
* author: yinjiacheng
* date: 6/3/21 6:05 PM
* description: API /merchant/enterprise/ent_check
* description: API /merchant/enterprise/check
*/
class AuthMerchantCheckBean {
data class Request(
val user_id: Long,
val life_account_id: Long?,
val mobile: String?,
val is_agent: Int?
)
data class Response(val enterprise_auth_record_id: Int)
data class Response(
val audit_opinion: String,
val audit_status: Int,
val code: String,
val data_type: Int,
val enterprise_auth_record_id: Int,
val entterprise_image: String,
val legal_back_id_card: String,
val legal_front_id_card: String,
val legal_id_card: String,
val legal_person: String,
val live_identity_status: Int,
val mobile: String,
val name: String
)
}
\ No newline at end of file
......@@ -9,7 +9,8 @@ class GetIDCardOCRBean(val request: Request, val response: Response) {
data class Request(
val posit_image_objectid: String,
val back_image_objectid: String,
val bucket: String
val posit_bucket: String,
val back_bucket: String
)
data class Response(
......
......@@ -97,6 +97,7 @@ class LifeAccountEnterpriseCertificationActivity :
KS3Core.INSTANCE.uploadObject(
generateUploadFile(filePath),
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.BUSINESS_LICENSE,
object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
......
......@@ -188,7 +188,7 @@ class AliveTestActivity : BaseActivity<ActivityAliveLayoutBinding>(), PreCallbac
fos.flush()
fos.close()
KS3Core.INSTANCE.uploadObject(file, object : KS3Core.OnKS3TaskListener {
KS3Core.INSTANCE.uploadObject(file, KS3Core.ScenarioType.ALIVE_DETECT, object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
......@@ -205,6 +205,7 @@ class AliveTestActivity : BaseActivity<ActivityAliveLayoutBinding>(), PreCallbac
val requestParams = HashMap<String, String?>()
requestParams["biz_token"] = bizToken
requestParams["meglive_objectid"] = objectKey
requestParams["meglive_bucket"] = bucket
ApiService.identifyIdOcrVerify(identifyIdOcrVerifyCallback, requestParams)
}
......
......@@ -3,8 +3,6 @@ package com.yidian.shenghuoquan.newscontent.ui.auth
import android.os.Bundle
import android.util.Log
import android.view.View
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
......@@ -74,9 +72,7 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
}
R.id.view_enterprise_auth -> {
// 请求企业认证信息 用于回显已填入的信息
val params = HashMap<String, String?>(1)
params["user_id"] = Hawk.get(HawkConfig.UserId, "")
ApiService.authMerchantCheck(this, params)
ApiService.authMerchantCheck(this, hashMapOf())
}
}
}
......
......@@ -21,7 +21,7 @@ object LifeAccountAuthDataManager {
*/
fun generatePersonalAuthData(data: GetIDCardOCRBean.Response) {
personalAuthData.idCardPortraitFaceCompleteness = data.posit.completeness
personalAuthData.idCardNationalEmblemFaceCompleteness = data.posit.completeness
personalAuthData.idCardNationalEmblemFaceCompleteness = data.back.completeness
personalAuthData.idCardNum = data.posit.idcard_number
personalAuthData.gender = data.posit.gender
personalAuthData.realName = data.posit.name
......@@ -80,12 +80,10 @@ object LifeAccountAuthDataManager {
* 生成营业执照上传接口请求体
*/
fun generateAuthBusinessLicenseCommitRequest(
userId: Long,
dataType: Int,
lifeAccountId: Long?
): HashMap<String, String?> {
val requestMap = HashMap<String, String?>()
requestMap["user_id"] = userId.toString()
requestMap["code"] = merchantAuthData.registrationCode
requestMap["name"] = merchantAuthData.registrationName
requestMap["type"] = merchantAuthData.type
......@@ -104,22 +102,18 @@ object LifeAccountAuthDataManager {
requestMap["entterprise_image"] = merchantAuthData.businessLicenseObjectKey
requestMap["data_from"] = Constant.DATA_FROM_B.toString()
requestMap["data_type"] = dataType.toString()
requestMap["life_account_id"] = lifeAccountId.toString()
requestMap["proxy_user_name"] = null
requestMap["mobile"] = null
requestMap["is_agent"] = null
lifeAccountId?.let {
requestMap["life_account_id"] = it.toString()
}
return requestMap
}
/**
* 生成个体工商户身份上传接口请求体
*/
fun generateAuthIndividualBusinessIdentityCommitRequest(
dataType: Int
): HashMap<String, String?> {
fun generateAuthIndividualBusinessIdentityCommitRequest(): HashMap<String, String?> {
val requestMap = HashMap<String, String?>()
requestMap["code"] = merchantAuthData.registrationCode
requestMap["data_type"] = dataType.toString()
requestMap["record_id"] = merchantAuthData.authRecordId.toString()
requestMap["front_img"] = personalAuthData.idCardPortraitFaceObjectKey
requestMap["bak_img"] = personalAuthData.idCardNationalEmblemFaceObjectKey
requestMap["front_completeness"] =
......@@ -134,9 +128,6 @@ object LifeAccountAuthDataManager {
requestMap["valid_date_start"] = personalAuthData.validDateStart
requestMap["valid_date_end"] = personalAuthData.validDateEnd
requestMap["issued_by"] = personalAuthData.issuedBy
requestMap["proxy_user_name"] = null
requestMap["phone"] = null
requestMap["is_agent"] = null
return requestMap
}
......@@ -144,11 +135,10 @@ object LifeAccountAuthDataManager {
* 生成普通企业法人身份信息上传接口请求体
*/
fun generateAuthEnterpriseLegalIdentityCommitRequest(
authRecordId: Long,
lifeAccountId: Long?
): HashMap<String, String?> {
val requestMap = HashMap<String, String?>()
requestMap["record_id"] = authRecordId.toString()
requestMap["record_id"] = merchantAuthData.authRecordId.toString()
requestMap["front_img"] = personalAuthData.idCardPortraitFaceObjectKey
requestMap["bak_img"] = personalAuthData.idCardNationalEmblemFaceObjectKey
requestMap["front_completeness"] =
......@@ -163,10 +153,10 @@ object LifeAccountAuthDataManager {
requestMap["valid_date_start"] = personalAuthData.validDateStart
requestMap["valid_date_end"] = personalAuthData.validDateEnd
requestMap["issued_by"] = personalAuthData.issuedBy
requestMap["life_account_id"] = lifeAccountId.toString()
requestMap["proxy_user_name"] = null
requestMap["mobile"] = personalAuthData.phoneNum
requestMap["is_agent"] = null
lifeAccountId?.let {
requestMap["life_account_id"] = it.toString()
}
return requestMap
}
}
\ No newline at end of file
......@@ -182,7 +182,9 @@ class LifeAccountBusinessLicenseAuthFragment :
)
KS3Core.INSTANCE.uploadObject(
File(commonPath + Constant.FILE_PATH_BUSINESS_LICENSE),
KS3Core.ObjectType.IMAGE, this
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.BUSINESS_LICENSE,
this
)
}
......@@ -279,5 +281,7 @@ class LifeAccountBusinessLicenseAuthFragment :
} else {
LifeAccountAuthDataManager.merchantAuthData.registrationCode = text
}
// 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
}
}
\ No newline at end of file
......@@ -4,8 +4,6 @@ import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.fragment.app.Fragment
import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig
import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R
......@@ -15,10 +13,11 @@ import com.yidian.shenghuoquan.newscontent.constant.Constant
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountEnterpriseAuthBinding
import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthBusinessLicenseCommitCallback
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthEnterpriseCompleteCallback
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthIndividualBusinessCompleteCallback
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthEnterpriseLegalIdentityCommitCallback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthBusinessLicenseCommitBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthEnterpriseCompleteBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthEnterpriseLegalIdentityCommitBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthIndividualBusinessCompleteBean
import com.yidian.shenghuoquan.newscontent.ui.dialog.BottomSelectDialog
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountAuthProcessView
import com.yidian.xpage.XPageManager
......@@ -31,10 +30,17 @@ import com.yidian.xpage.XPageManager
class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterpriseAuthBinding>(),
View.OnClickListener, BottomSelectAdapter.OnItemClickListener<BottomSelectBean>,
IAuthBusinessLicenseCommitCallback, IAuthEnterpriseLegalIdentityCommitCallback,
IAuthEnterpriseCompleteCallback {
IAuthIndividualBusinessCompleteCallback {
companion object {
/**
* 生活号id 个人生活号主动升级企业生活号的认证流程传入
*/
const val EXTRA_LIFE_ACCOUNT_ID = "life_account_id"
}
private val fragmentList: ArrayList<Fragment> by lazy {
arrayListOf<Fragment>(
arrayListOf(
LifeAccountBusinessLicenseAuthFragment(),
LifeAccountIDCardAuthFragment()
)
......@@ -45,6 +51,15 @@ class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterp
*/
private var curFragment: Fragment? = null
/**
* 当前生活号id,个人生活号升级使用
*/
private val curLifeAccountId by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_LIFE_ACCOUNT_ID] as Long
}
}
override fun createViewBinding(): ActivityLifeAccountEnterpriseAuthBinding {
return ActivityLifeAccountEnterpriseAuthBinding.inflate(layoutInflater)
}
......@@ -165,26 +180,29 @@ class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterp
R.id.btn_next -> {
if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_QUALIFICATION) {
// TODO: 6/4/21 判断是否为个人生活号升级
ApiService.authBusinessLicenseCommit(
this,
LifeAccountAuthDataManager.generateAuthBusinessLicenseCommitRequest(
Hawk.get<Long>(HawkConfig.UserId),
LifeAccountAuthDataManager.merchantAuthData.merchantType,
null
curLifeAccountId
)
)
} else if (viewBind.pvAuthProcess.curProcess == LifeAccountAuthProcessView.PROCESS_ENTERPRISE_MANAGER) {
if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_INDIVIDUAL_BUSINESS) {
val params = HashMap<String, String?>()
params["code"] =
LifeAccountAuthDataManager.merchantAuthData.registrationCode
ApiService.authEnterpriseComplete(this, params)
ApiService.authIndividualBusinessComplete(
this,
hashMapOf(
Pair(
"record_id",
LifeAccountAuthDataManager.merchantAuthData.authRecordId.toString()
)
)
)
} else if (LifeAccountAuthDataManager.merchantAuthData.merchantType == Constant.TYPE_COMMON_ENTERPRISE) {
ApiService.authEnterpriseLegalIdentityCommit(
this,
LifeAccountAuthDataManager.generateAuthEnterpriseLegalIdentityCommitRequest(
123, null
curLifeAccountId
)
)
}
......@@ -209,6 +227,7 @@ class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterp
override fun authBusinessLicenseCommitSuccess(result: AuthBusinessLicenseCommitBean.Response?) {
// 营业执照提交成功
LifeAccountAuthDataManager.merchantAuthData.authRecordId = result?.enterprise_auth_record_id
viewBind.pvAuthProcess.setProcess(++viewBind.pvAuthProcess.curProcess)
viewBind.svMerchantType.enableSelect(false)
// 向身份信息fragment传参
......@@ -230,13 +249,9 @@ class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterp
)
}
override fun authEnterpriseLegalIdentityCommitSuccess() {
// 普通企业法人身份信息提交成功 请求企业认证完成接口
override fun authEnterpriseLegalIdentityCommitSuccess(result: AuthEnterpriseLegalIdentityCommitBean.Response?) {
// 普通企业法人身份信息提交成功
// TODO: 6/6/21 跳转提交成功页面
val params = HashMap<String, String?>()
params["code"] =
LifeAccountAuthDataManager.merchantAuthData.registrationCode
ApiService.authEnterpriseComplete(this, params)
}
override fun authEnterpriseLegalIdentityCommitFailure(message: String?) {
......@@ -246,12 +261,12 @@ class LifeAccountEnterpriseAuthActivity : BaseActivity<ActivityLifeAccountEnterp
)
}
override fun authEnterpriseCompleteSuccess(result: AuthEnterpriseCompleteBean.Response?) {
// 企业认证完成
override fun authIndividualBusinessCompleteSuccess(result: AuthIndividualBusinessCompleteBean.Response?) {
// 个体工商户认证完成
// TODO: 6/6/21 跳转提交成功页面
}
override fun authEnterpriseCompleteFailure(message: String?) {
override fun authIndividualBusinessCompleteFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth enterprise complete failure, message: $message"
......
......@@ -349,7 +349,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
private fun startUpload() {
KS3Core.INSTANCE.uploadObject(
File(cachePath + Constant.FILE_PATH_ID_CARD_PORTRAIT_FACE),
KS3Core.ObjectType.IMAGE, object : KS3Core.OnKS3TaskListener {
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.ID_CARD,
object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
......@@ -377,7 +379,9 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
}
KS3Core.INSTANCE.uploadObject(
File(cachePath + Constant.FILE_PATH_ID_CARD_NATIONAL_EMBLEM_FACE),
KS3Core.ObjectType.IMAGE, object : KS3Core.OnKS3TaskListener {
KS3Core.ObjectType.IMAGE,
KS3Core.ScenarioType.ID_CARD,
object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
......@@ -438,8 +442,10 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceObjectKey
requestParams["back_image_objectid"] =
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceObjectKey
requestParams["bucket"] =
requestParams["posit_bucket"] =
LifeAccountAuthDataManager.personalAuthData.idCardPortraitFaceBucket
requestParams["back_bucket"] =
LifeAccountAuthDataManager.personalAuthData.idCardNationalEmblemFaceBucket
ApiService.getIDCardOCR(this, requestParams)
}
......@@ -494,10 +500,15 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
// 检查下一步条件
(activity as LifeAccountPersonalAuthActivity).checkNextCondition()
} else {
val params = HashMap<String, String?>(2)
params["code"] = LifeAccountAuthDataManager.merchantAuthData.registrationCode
params["idcard_number"] = LifeAccountAuthDataManager.personalAuthData.idCardNum
ApiService.authEnterpriseLiveIdentity(this, params)
ApiService.authEnterpriseLiveIdentity(
this,
hashMapOf(
Pair(
"record_id",
LifeAccountAuthDataManager.merchantAuthData.authRecordId.toString()
)
)
)
// 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
}
......@@ -542,6 +553,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
)
KS3Core.INSTANCE.uploadObject(
cachePath + Constant.FILE_PATH_ALIVE_DETECT_VERIFY_DATA,
KS3Core.ScenarioType.ALIVE_DETECT,
this
)
} else {
......@@ -573,10 +585,13 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
objectKey?.let {
LifeAccountAuthDataManager.personalAuthData.liveDetectObjectKey = it
}
bucket?.let {
LifeAccountAuthDataManager.personalAuthData.liveDetectBucket = it
}
val requestParams = HashMap<String, String?>()
requestParams["biz_token"] = LifeAccountAuthDataManager.personalAuthData.liveDetectBizToken
requestParams["meglive_objectid"] =
LifeAccountAuthDataManager.personalAuthData.liveDetectObjectKey
requestParams["meglive_objectid"] = objectKey
requestParams["meglive_bucket"] = bucket
ApiService.identifyIdOcrVerify(this, requestParams)
}
......@@ -640,6 +655,8 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
} else {
LifeAccountAuthDataManager.personalAuthData.isIDCardNationalEmblemFaceUpload = false
}
// 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
}
override fun onTextClear(from: LifeAccountAuthIdentityInfoEditView) {
......@@ -654,6 +671,8 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
LifeAccountAuthDataManager.personalAuthData.phoneNum = ""
}
}
// 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
}
override fun onTextChange(from: LifeAccountAuthIdentityInfoEditView, text: String) {
......@@ -668,6 +687,8 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
LifeAccountAuthDataManager.personalAuthData.phoneNum = text
}
}
// 检查下一步条件
(activity as LifeAccountEnterpriseAuthActivity).checkNextCondition()
}
override fun onStartFaceAuth() {
......@@ -683,9 +704,7 @@ class LifeAccountIDCardAuthFragment : BaseFragment<FragmentLifeAccountIdCardAuth
Constant.TYPE_AUTH_INDIVIDUAL_BUSINESS -> {
ApiService.authIndividualBusinessIdentityCommit(
this,
LifeAccountAuthDataManager.generateAuthIndividualBusinessIdentityCommitRequest(
Constant.TYPE_INDIVIDUAL_BUSINESS
)
LifeAccountAuthDataManager.generateAuthIndividualBusinessIdentityCommitRequest()
)
}
}
......
package com.yidian.shenghuoquan.newscontent.ui.dialog
import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.WindowManager
import androidx.core.view.isVisible
import com.yidian.common.base.BaseDialog
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.bean.HintOptionBean
import com.yidian.shenghuoquan.newscontent.databinding.DialogHintBinding
import com.yidian.utils.DensityUtil
/**
* author: yinjiacheng
* date: 6/8/21 12:34 AM
* description: 提示dialog
*/
class HintDialog(
context: Context,
val content: String,
val options: ArrayList<HintOptionBean>,
val callback: OnHintOptionCallback?
) :
BaseDialog<DialogHintBinding>(context), View.OnClickListener {
override fun createViewBinding(): DialogHintBinding {
return DialogHintBinding.inflate(layoutInflater)
}
override fun initView() {
viewBinding.tvContent.text = content
when (options.size) {
1 -> {
viewBinding.btnRight.text = options[0].option
viewBinding.btnLeft.isVisible = false
viewBinding.viewVerticalDivider.isVisible = false
}
2 -> {
viewBinding.btnLeft.text = options[0].option
viewBinding.btnRight.text = options[1].option
}
}
}
override fun initListener() {
viewBinding.btnLeft.setOnClickListener(this)
viewBinding.btnRight.setOnClickListener(this)
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
setCanceledOnTouchOutside(false)
}
override fun show() {
super.show()
val attrs = window?.attributes
attrs?.width = DensityUtil.dp2px(269f)
attrs?.height = WindowManager.LayoutParams.WRAP_CONTENT
window?.attributes = attrs
}
override fun onClick(v: View?) {
if (v?.id == R.id.btn_left) {
callback?.onLeftOption()
} else if (v?.id == R.id.btn_right) {
callback?.onRightOption()
}
}
interface OnHintOptionCallback {
/**
* 左操作项
*/
fun onLeftOption()
/**
* 右操作项
*/
fun onRightOption()
}
}
\ No newline at end of file
......@@ -79,7 +79,7 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
}
idCardFront?.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(frontFile))
idCardBack?.compress(Bitmap.CompressFormat.JPEG, 100, FileOutputStream(backFile))
KS3Core.INSTANCE.uploadObject(frontFile, object : KS3Core.OnKS3TaskListener {
KS3Core.INSTANCE.uploadObject(frontFile, KS3Core.ScenarioType.ID_CARD, object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
......@@ -103,7 +103,7 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
if (bucket != null) {
idCardFrontBucket = bucket
}
KS3Core.INSTANCE.uploadObject(backFile, object : KS3Core.OnKS3TaskListener {
KS3Core.INSTANCE.uploadObject(backFile, KS3Core.ScenarioType.ID_CARD, object : KS3Core.OnKS3TaskListener {
override fun onTaskStart() {
}
......@@ -130,7 +130,8 @@ class IDCardTestActivity : BaseActivity<ActivityIdcardBinding>() {
val requestParams = HashMap<String, String?>()
requestParams["posit_image_objectid"] = idCardFrontObjectKey
requestParams["back_image_objectid"] = idCardBackObjectKey
requestParams["bucket"] = idCardFrontBucket
requestParams["posit_bucket"] = idCardFrontBucket
requestParams["back_bucket"] = 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}")
......
......@@ -14,7 +14,6 @@ import com.ksyun.ks3.services.request.PutObjectRequest
import com.yidian.common.YdBaseApplication
import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.httpbean.GetKSYunObjectIdBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.GetKSYunTokenBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.IGetKSYunObjectIdCallback
import com.yidian.utils.MD5Util
import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
......@@ -112,8 +111,14 @@ class KS3Core private constructor(val context: Context) : AuthListener {
* 文件上传
* @param path 本地文件全路径
* @param type 文件类型
* @param scenario 业务场景
*/
fun uploadObject(path: String, type: ObjectType, listener: OnKS3TaskListener) {
fun uploadObject(
path: String,
type: ObjectType,
scenario: ScenarioType,
listener: OnKS3TaskListener
) {
ApiService.getKSYunObjectId(object : IGetKSYunObjectIdCallback {
override fun getKSYunObjectIdSuccess(result: GetKSYunObjectIdBean.Response?) {
Log.d(
......@@ -140,14 +145,15 @@ class KS3Core private constructor(val context: Context) : AuthListener {
override fun getKSYunObjectIdFailure(message: String?) {
Log.e(TAG, "request get KSYun objectId fail, message: $message")
}
})
}, hashMapOf(Pair("scenario", scenario.scenario)))
}
/**
* 文件上传
* @param path 本地文件全路径
* @param scenario 业务场景
*/
fun uploadObject(path: String, listener: OnKS3TaskListener) {
fun uploadObject(path: String, scenario: ScenarioType, listener: OnKS3TaskListener) {
ApiService.getKSYunObjectId(object : IGetKSYunObjectIdCallback {
override fun getKSYunObjectIdSuccess(result: GetKSYunObjectIdBean.Response?) {
Log.d(
......@@ -166,14 +172,15 @@ class KS3Core private constructor(val context: Context) : AuthListener {
override fun getKSYunObjectIdFailure(message: String?) {
Log.e(TAG, "request get KSYun objectId fail, message: $message")
}
})
}, hashMapOf(Pair("scenario", scenario.scenario)))
}
/**
* 文件上传
* @param file 文件实体
* @param scenario 业务场景
*/
fun uploadObject(file: File, listener: OnKS3TaskListener) {
fun uploadObject(file: File, scenario: ScenarioType, listener: OnKS3TaskListener) {
ApiService.getKSYunObjectId(object : IGetKSYunObjectIdCallback {
override fun getKSYunObjectIdSuccess(result: GetKSYunObjectIdBean.Response?) {
Log.d(
......@@ -192,15 +199,21 @@ class KS3Core private constructor(val context: Context) : AuthListener {
override fun getKSYunObjectIdFailure(message: String?) {
Log.e(TAG, "request get KSYun objectId fail, message: $message")
}
})
}, hashMapOf(Pair("scenario", scenario.scenario)))
}
/**
* 文件上传
* @param file 文件实体
* @param type 文件类型
* @param scenario 业务场景
*/
fun uploadObject(file: File, type: ObjectType, listener: OnKS3TaskListener) {
fun uploadObject(
file: File,
type: ObjectType,
scenario: ScenarioType,
listener: OnKS3TaskListener
) {
ApiService.getKSYunObjectId(object : IGetKSYunObjectIdCallback {
override fun getKSYunObjectIdSuccess(result: GetKSYunObjectIdBean.Response?) {
Log.d(
......@@ -227,7 +240,7 @@ class KS3Core private constructor(val context: Context) : AuthListener {
override fun getKSYunObjectIdFailure(message: String?) {
Log.e(TAG, "request get KSYun objectId fail, message: $message")
}
})
}, hashMapOf(Pair("scenario", scenario.scenario)))
}
/**
......@@ -295,6 +308,20 @@ class KS3Core private constructor(val context: Context) : AuthListener {
VIDEO, IMAGE
}
/**
* 业务场景的类型
*/
enum class ScenarioType(val scenario: String) {
// 身份证
ID_CARD("id_card"),
// 活体数据
ALIVE_DETECT("living_data"),
// 营业执照
BUSINESS_LICENSE("business_license")
}
/**
* 金山云object上传handler
*/
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/color_FFFFFFFF" />
<corners android:radius="12dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_hint_dialog">
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="19dp"
android:textColor="@color/color_DE000000"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_horizontal_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/color_1A000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_content" />
<Button
android:id="@+id/btn_left"
android:layout_width="0dp"
android:layout_height="46dp"
android:background="@null"
android:textColor="@color/color_8F000000"
android:textSize="15sp"
app:layout_constraintEnd_toStartOf="@id/btn_right"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_divider" />
<View
android:id="@+id/view_vertical_divider"
android:layout_width="1dp"
android:layout_height="0dp"
android:background="@color/color_1A000000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/btn_right"
app:layout_constraintStart_toEndOf="@id/btn_left"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_divider" />
<Button
android:id="@+id/btn_right"
android:layout_width="0dp"
android:layout_height="46dp"
android:background="@null"
android:textColor="@color/color_FF1852F1"
android:textSize="15sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_left"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_divider" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -42,4 +42,9 @@
<color name="edit_text_border_blue">#1852F1</color>
<color name="edit_text_border_gray">#cccccc</color>
<color name="color_F5F6F7">#F5F5F5</color>
<color name="color_1A000000">#1A000000</color>
<color name="color_DE000000">#DE000000</color>
<color name="color_8F000000">#8F000000</color>
<color name="color_FF1852F1">#FF1852F1</color>
<color name="color_FFFFFFFF">#FFFFFFFF</color>
</resources>
\ 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