f
This commit is contained in:
@@ -9,7 +9,6 @@ import (
|
|||||||
|
|
||||||
"tyapi-server/internal/domains/api/dto"
|
"tyapi-server/internal/domains/api/dto"
|
||||||
"tyapi-server/internal/domains/api/services/processors"
|
"tyapi-server/internal/domains/api/services/processors"
|
||||||
"tyapi-server/internal/infrastructure/external/alicloud"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProcessYYSYBE08Request YYSYBE08 API处理方法 - 使用数脉二要素验证
|
// ProcessYYSYBE08Request YYSYBE08 API处理方法 - 使用数脉二要素验证
|
||||||
@@ -36,51 +35,9 @@ func ProcessYYSYBE08Request(ctx context.Context, params []byte, deps *processors
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
// 使用实时接口(app_id 和 app_secret)重试
|
// 使用实时接口(app_id 和 app_secret)重试
|
||||||
respBytes, err = deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData, false)
|
respBytes, err = deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData, false)
|
||||||
// 重试仍失败:阿里云身份证二要素兜底,返回 data;兜底仍失败则按阿里云错误类型返回(与 YYSY3M8S 对数脉的分流一致)
|
// 重试仍失败:阿里云身份证二要素兜底,并直接返回统一映射响应
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dataBytes, aerr := callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard)
|
return callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard)
|
||||||
if aerr != nil {
|
|
||||||
if errors.Is(aerr, alicloud.ErrDatasource) {
|
|
||||||
return nil, errors.Join(processors.ErrDatasource, aerr)
|
|
||||||
}
|
|
||||||
if errors.Is(aerr, alicloud.ErrSystem) {
|
|
||||||
return nil, errors.Join(processors.ErrSystem, aerr)
|
|
||||||
}
|
|
||||||
return nil, errors.Join(processors.ErrSystem, aerr)
|
|
||||||
}
|
|
||||||
var aliyunData struct {
|
|
||||||
Result interface{} `json:"result"`
|
|
||||||
Desc string `json:"desc"`
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(dataBytes, &aliyunData); err != nil {
|
|
||||||
errorResponse := map[string]interface{}{
|
|
||||||
"ctidRequest": map[string]interface{}{
|
|
||||||
"ctidAuth": map[string]interface{}{
|
|
||||||
"idCard": paramsDto.IDCard,
|
|
||||||
"name": paramsDto.Name,
|
|
||||||
"resultCode": "500",
|
|
||||||
"resultMsg": "响应解析失败",
|
|
||||||
"verifyResult": "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return json.Marshal(errorResponse)
|
|
||||||
}
|
|
||||||
|
|
||||||
resultCode, verifyResult, resultMsg := mapIDCardCheckResult(aliyunData.Result, aliyunData.Desc)
|
|
||||||
|
|
||||||
response := map[string]interface{}{
|
|
||||||
"ctidRequest": map[string]interface{}{
|
|
||||||
"ctidAuth": map[string]interface{}{
|
|
||||||
"idCard": paramsDto.IDCard,
|
|
||||||
"name": paramsDto.Name,
|
|
||||||
"resultCode": resultCode,
|
|
||||||
"resultMsg": resultMsg,
|
|
||||||
"verifyResult": verifyResult,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return json.Marshal(response)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
|
|
||||||
"tyapi-server/internal/domains/api/dto"
|
"tyapi-server/internal/domains/api/dto"
|
||||||
"tyapi-server/internal/domains/api/services/processors"
|
"tyapi-server/internal/domains/api/services/processors"
|
||||||
|
"tyapi-server/internal/infrastructure/external/alicloud"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProcessYYSYBE08testRequest 与 YYSYBE08 相同入参,底层使用阿里云市场身份证二要素校验;响应映射为 ctidRequest.ctidAuth 格式
|
// ProcessYYSYBE08testRequest 与 YYSYBE08 相同入参,底层使用阿里云市场身份证二要素校验;响应映射为 ctidRequest.ctidAuth 格式
|
||||||
@@ -20,9 +21,22 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces
|
|||||||
return nil, errors.Join(processors.ErrInvalidParam, err)
|
return nil, errors.Join(processors.ErrInvalidParam, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
respBytes, err := callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard)
|
return callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard)
|
||||||
|
}
|
||||||
|
|
||||||
|
// callAliyunIDCardCheckRaw POST api-mall/api/id_card/check(form: name、idcard),并映射为 ctidRequest.ctidAuth 响应
|
||||||
|
func callAliyunIDCardCheckRaw(ctx context.Context, deps *processors.ProcessorDependencies, name, idCard string) ([]byte, error) {
|
||||||
|
_ = ctx
|
||||||
|
reqData := map[string]interface{}{
|
||||||
|
"name": name,
|
||||||
|
"idcard": idCard,
|
||||||
|
}
|
||||||
|
respBytes, err := deps.AlicloudService.CallAPI("api-mall/api/id_card/check", reqData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
if errors.Is(err, alicloud.ErrDatasource) {
|
||||||
|
return nil, errors.Join(processors.ErrDatasource, err)
|
||||||
|
}
|
||||||
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
var aliyunData struct {
|
var aliyunData struct {
|
||||||
@@ -34,12 +48,11 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces
|
|||||||
}
|
}
|
||||||
|
|
||||||
resultCode, verifyResult, resultMsg := mapIDCardCheckResult(aliyunData.Result, aliyunData.Desc)
|
resultCode, verifyResult, resultMsg := mapIDCardCheckResult(aliyunData.Result, aliyunData.Desc)
|
||||||
|
|
||||||
response := map[string]interface{}{
|
response := map[string]interface{}{
|
||||||
"ctidRequest": map[string]interface{}{
|
"ctidRequest": map[string]interface{}{
|
||||||
"ctidAuth": map[string]interface{}{
|
"ctidAuth": map[string]interface{}{
|
||||||
"idCard": paramsDto.IDCard,
|
"idCard": idCard,
|
||||||
"name": paramsDto.Name,
|
"name": name,
|
||||||
"resultCode": resultCode,
|
"resultCode": resultCode,
|
||||||
"resultMsg": resultMsg,
|
"resultMsg": resultMsg,
|
||||||
"verifyResult": verifyResult,
|
"verifyResult": verifyResult,
|
||||||
@@ -48,13 +61,3 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces
|
|||||||
}
|
}
|
||||||
return json.Marshal(response)
|
return json.Marshal(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
// callAliyunIDCardCheckRaw POST api-mall/api/id_card/check(form: name、idcard),返回响应 data,供 YYSYBE08TEST 与 YYSYBE08 数脉失败兜底共用
|
|
||||||
func callAliyunIDCardCheckRaw(ctx context.Context, deps *processors.ProcessorDependencies, name, idCard string) ([]byte, error) {
|
|
||||||
_ = ctx
|
|
||||||
reqData := map[string]interface{}{
|
|
||||||
"name": name,
|
|
||||||
"idcard": idCard,
|
|
||||||
}
|
|
||||||
return deps.AlicloudService.CallAPI("api-mall/api/id_card/check", reqData)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user