diff --git a/internal/domains/api/dto/api_request_dto.go b/internal/domains/api/dto/api_request_dto.go index 217aeeb..e341bcd 100644 --- a/internal/domains/api/dto/api_request_dto.go +++ b/internal/domains/api/dto/api_request_dto.go @@ -605,9 +605,8 @@ type YYSY8B1CReq struct { } type QYGLJ0Q1Req struct { - MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` - IDCard string `json:"id_card" validate:"required,validIDCard"` - Name string `json:"name" validate:"required,min=1,validName"` + EntName string `json:"ent_name" validate:"omitempty,min=1,validEnterpriseName"` + EntCode string `json:"ent_code" validate:"omitempty,validUSCI"` } type YYSY6D9AReq struct { MobileNo string `json:"mobile_no" validate:"required,min=11,max=11,validMobileNo"` diff --git a/internal/domains/api/services/form_config_service.go b/internal/domains/api/services/form_config_service.go index b768b44..ea874d3 100644 --- a/internal/domains/api/services/form_config_service.go +++ b/internal/domains/api/services/form_config_service.go @@ -258,7 +258,7 @@ func (s *FormConfigServiceImpl) getDTOStruct(ctx context.Context, apiCode string "IVYZOCR1": &dto.IVYZOCR1Req{}, //身份证OCR "IVYZOCR2": &dto.IVYZOCR1Req{}, //身份证OCR2数卖 "QYGLJ0Q1": &dto.QYGLJ0Q1Req{}, //企业股权结构全景查询 - "QYGLUY3S": &dto.QYGLUY3SReq{}, //企业经营状态全景查询 + "QYGLUY3S": &dto.QYGLUY3SReq{}, //企业全量信息核验V2 可用 "JRZQOCRE": &dto.JRZQOCREReq{}, //银行卡OCR数卖 "JRZQOCRY": &dto.JRZQOCRYReq{}, //银行卡OCR数据宝 } diff --git a/internal/domains/api/services/processors/qygl/qyglj0q1_processor.go b/internal/domains/api/services/processors/qygl/qyglj0q1_processor.go index 3a4b185..fc7d7a5 100644 --- a/internal/domains/api/services/processors/qygl/qyglj0q1_processor.go +++ b/internal/domains/api/services/processors/qygl/qyglj0q1_processor.go @@ -21,12 +21,21 @@ func ProcessQYGLJ0Q1Request(ctx context.Context, params []byte, deps *processors return nil, errors.Join(processors.ErrInvalidParam, err) } - // 构建数据宝入参:姓名、身份证、手机号、银行卡号(sign 外的业务参数可按需 AES 加密后作为 bodyData) + // 二选一:企业名称(entName) 与 统一社会信用代码(creditCode) 必须且仅能传其一 + hasEntName := paramsDto.EntName != "" + hasEntCode := paramsDto.EntCode != "" + if hasEntName == hasEntCode { // 两个都填或两个都未填 + return nil, errors.Join(processors.ErrInvalidParam, errors.New("ent_name 与 ent_code 二选一,必须且仅能传其中一个")) + } + + // 构建数据宝入参(sign 外的业务参数可按需 AES 加密后作为 bodyData) reqParams := map[string]interface{}{ - "key": "adac456f7b4ced764b606c8b07fed4d3", - "mobile": paramsDto.MobileNo, - "idcard": paramsDto.IDCard, - "name": paramsDto.Name, + "key": "adac456f7b4ced764b606c8b07fed4d3", + } + if hasEntName { + reqParams["entName"] = paramsDto.EntName + } else { + reqParams["creditCode"] = paramsDto.EntCode } // 最终请求 URL = https://api.chinadatapay.com/communication + 拼接接口地址值,如 personal/197 diff --git a/internal/domains/api/services/processors/qygl/qygluy3s_processor.go b/internal/domains/api/services/processors/qygl/qygluy3s_processor.go index 2cd8500..d8a3fe4 100644 --- a/internal/domains/api/services/processors/qygl/qygluy3s_processor.go +++ b/internal/domains/api/services/processors/qygl/qygluy3s_processor.go @@ -10,7 +10,7 @@ import ( "tyapi-server/internal/infrastructure/external/shujubao" ) -// ProcessQYGLUY3SRequest QYGLUY3S 企业经营状态全景查询 API 处理方法(使用数据宝服务示例) +// ProcessQYGLUY3SRequest QYGLUY3S 企业全量信息核验V2 可用 API 处理方法(使用数据宝服务示例) func ProcessQYGLUY3SRequest(ctx context.Context, params []byte, deps *processors.ProcessorDependencies) ([]byte, error) { var paramsDto dto.QYGLUY3SReq if err := json.Unmarshal(params, ¶msDto); err != nil {