From 78035ca1ab8474659e8b366bf593fefe0768a43f Mon Sep 17 00:00:00 2001 From: Mrx <18278715334@163.com> Date: Fri, 23 Jan 2026 18:10:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2shumai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processors/ivyz/ivyz2a8b_processor.go | 44 ++++++++----------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/internal/domains/api/services/processors/ivyz/ivyz2a8b_processor.go b/internal/domains/api/services/processors/ivyz/ivyz2a8b_processor.go index 523e779..362180a 100644 --- a/internal/domains/api/services/processors/ivyz/ivyz2a8b_processor.go +++ b/internal/domains/api/services/processors/ivyz/ivyz2a8b_processor.go @@ -7,10 +7,10 @@ import ( "tyapi-server/internal/domains/api/dto" "tyapi-server/internal/domains/api/services/processors" - "tyapi-server/internal/infrastructure/external/zhicha" + "tyapi-server/internal/infrastructure/external/shumai" ) -// ProcessIVYZ2A8BRequest IVYZ2A8B API处理方法 - 身份二要素认证 +// ProcessIVYZ2A8BRequest IVYZ2A8B API处理方法 - 身份二要素认证政务版 数脉内部替换 func ProcessIVYZ2A8BRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { var paramsDto dto.IVYZ2A8BReq if err := json.Unmarshal(params, ¶msDto); err != nil { @@ -20,37 +20,31 @@ func ProcessIVYZ2A8BRequest(ctx context.Context, params []byte, deps *processors if err := deps.Validator.ValidateStruct(paramsDto); err != nil { return nil, errors.Join(processors.ErrInvalidParam, err) } - - encryptedName, err := deps.ZhichaService.Encrypt(paramsDto.Name) - if err != nil { - return nil, errors.Join(processors.ErrSystem, err) + reqFormData := map[string]interface{}{ + "idcard": paramsDto.IDCard, + "name": paramsDto.Name, } - encryptedIDCard, err := deps.ZhichaService.Encrypt(paramsDto.IDCard) + //走政务接口 - 使用 app_id2 和 app_secret2 + deps.ShumaiService.UseGovernment() + // 以表单方式调用数脉 API;参数在 CallAPIForm 内转为 application/x-www-form-urlencoded + apiPath := "/v4/id_card/check" // 接口路径,根据数脉文档填写(如 v4/xxx) + respBytes, err := deps.ShumaiService.CallAPIForm(ctx, apiPath, reqFormData) if err != nil { - return nil, errors.Join(processors.ErrSystem, err) - } - - reqData := map[string]interface{}{ - "name": encryptedName, - "idCard": encryptedIDCard, - "authorized": paramsDto.Authorized, - } - - respData, err := deps.ZhichaService.CallAPI(ctx, "ZCI001", reqData) - if err != nil { - if errors.Is(err, zhicha.ErrDatasource) { + if errors.Is(err, shumai.ErrNotFound) { + // 查无记录情况 + return nil, errors.Join(processors.ErrNotFound, err) + } else if errors.Is(err, shumai.ErrDatasource) { + // 数据源错误 return nil, errors.Join(processors.ErrDatasource, err) + } else if errors.Is(err, shumai.ErrSystem) { + // 系统错误 + return nil, errors.Join(processors.ErrSystem, err) } else { + // 其他未知错误 return nil, errors.Join(processors.ErrSystem, err) } } - // 将响应数据转换为JSON字节 - respBytes, err := json.Marshal(respData) - if err != nil { - return nil, errors.Join(processors.ErrSystem, err) - } - return respBytes, nil }