diff --git a/internal/domains/api/services/processors/yysy/yysybe08test_processor.go b/internal/domains/api/services/processors/yysy/yysybe08test_processor.go index 3341f81..e54e680 100644 --- a/internal/domains/api/services/processors/yysy/yysybe08test_processor.go +++ b/internal/domains/api/services/processors/yysy/yysybe08test_processor.go @@ -9,7 +9,7 @@ import ( "tyapi-server/internal/domains/api/services/processors" ) -// ProcessYYSYBE08testRequest 与 YYSYBE08 相同入参,底层使用阿里云市场身份证二要素校验;响应为阿里云接口 data(不做字段映射) +// ProcessYYSYBE08testRequest 与 YYSYBE08 相同入参,底层使用阿里云市场身份证二要素校验;响应映射为 ctidRequest.ctidAuth 格式 func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { var paramsDto dto.YYSYBE08Req if err := json.Unmarshal(params, ¶msDto); err != nil { @@ -20,7 +20,57 @@ func ProcessYYSYBE08testRequest(ctx context.Context, params []byte, deps *proces return nil, errors.Join(processors.ErrInvalidParam, err) } - return callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard) + respBytes, err := callAliyunIDCardCheckRaw(ctx, deps, paramsDto.Name, paramsDto.IDCard) + if err != nil { + return nil, err + } + + var aliyunData struct { + Result int `json:"result"` + Desc string `json:"desc"` + } + if err := json.Unmarshal(respBytes, &aliyunData); err != nil { + return nil, errors.Join(processors.ErrSystem, err) + } + + var resultCode, verifyResult, resultMsg string + switch aliyunData.Result { + case 0: + resultCode = "0XXX" + verifyResult = "一致" + resultMsg = aliyunData.Desc + if resultMsg == "" { + resultMsg = "成功" + } + case 1: + resultCode = "5XXX" + verifyResult = "不一致" + resultMsg = aliyunData.Desc + if resultMsg == "" { + resultMsg = "不一致" + } + default: + resultCode = "5XXX" + verifyResult = "不一致" + resultMsg = aliyunData.Desc + if resultMsg == "" { + resultMsg = "不一致" + } + } + + 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) } // callAliyunIDCardCheckRaw POST api-mall/api/id_card/check(form: name、idcard),返回响应 data,供 YYSYBE08TEST 与 YYSYBE08 数脉失败兜底共用