From 9a1cf0d1d158156765cfbbf6ce1f04add2ac70fe Mon Sep 17 00:00:00 2001 From: Mrx <18278715334@163.com> Date: Sat, 21 Mar 2026 19:08:11 +0800 Subject: [PATCH] f --- .../processors/yysy/yysybe08_processor.go | 47 +------------------ .../processors/yysy/yysybe08test_processor.go | 33 +++++++------ 2 files changed, 20 insertions(+), 60 deletions(-) diff --git a/internal/domains/api/services/processors/yysy/yysybe08_processor.go b/internal/domains/api/services/processors/yysy/yysybe08_processor.go index d5a5cf4..3045315 100644 --- a/internal/domains/api/services/processors/yysy/yysybe08_processor.go +++ b/internal/domains/api/services/processors/yysy/yysybe08_processor.go @@ -9,7 +9,6 @@ import ( "tyapi-server/internal/domains/api/dto" "tyapi-server/internal/domains/api/services/processors" - "tyapi-server/internal/infrastructure/external/alicloud" ) // ProcessYYSYBE08Request YYSYBE08 API处理方法 - 使用数脉二要素验证 @@ -36,51 +35,9 @@ func ProcessYYSYBE08Request(ctx context.Context, params []byte, deps *processors if err != nil { // 使用实时接口(app_id 和 app_secret)重试 respBytes, err = deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData, false) - // 重试仍失败:阿里云身份证二要素兜底,返回 data;兜底仍失败则按阿里云错误类型返回(与 YYSY3M8S 对数脉的分流一致) + // 重试仍失败:阿里云身份证二要素兜底,并直接返回统一映射响应 if err != nil { - dataBytes, aerr := 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) + return callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard) } } diff --git a/internal/domains/api/services/processors/yysy/yysybe08test_processor.go b/internal/domains/api/services/processors/yysy/yysybe08test_processor.go index 1fe360b..93e06d4 100644 --- a/internal/domains/api/services/processors/yysy/yysybe08test_processor.go +++ b/internal/domains/api/services/processors/yysy/yysybe08test_processor.go @@ -7,6 +7,7 @@ import ( "tyapi-server/internal/domains/api/dto" "tyapi-server/internal/domains/api/services/processors" + "tyapi-server/internal/infrastructure/external/alicloud" ) // ProcessYYSYBE08testRequest 与 YYSYBE08 相同入参,底层使用阿里云市场身份证二要素校验;响应映射为 ctidRequest.ctidAuth 格式 @@ -20,9 +21,22 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces 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 { - 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 { @@ -34,12 +48,11 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces } 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, + "idCard": idCard, + "name": name, "resultCode": resultCode, "resultMsg": resultMsg, "verifyResult": verifyResult, @@ -48,13 +61,3 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces } 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) -}