This commit is contained in:
2026-07-27 00:18:02 +08:00
parent c3b0de6ac5
commit 6fbdac381b
9 changed files with 217 additions and 6 deletions

View File

@@ -188,14 +188,41 @@ func (s *CertificationApplicationServiceImpl) generateEnterpriseAuthOrDetectVeri
provider ports.SignPlatformProvider,
authReq *ports.EnterpriseAuthRequest,
) (*ports.AuthLinkResult, bool, error) {
// 1) 正式查授权:法大大 POST /corp/get看 bindingStatus=authorized
clientCorpID := strings.TrimSpace(authReq.ClientCorpID)
if clientCorpID == "" {
clientCorpID = strings.TrimSpace(authReq.UnifiedSocialCode)
}
authStatus, qErr := provider.QueryCorpAuthStatus(ctx, &ports.CorpAuthStatusQuery{
ClientCorpID: clientCorpID,
CorpIdentNo: strings.TrimSpace(authReq.UnifiedSocialCode),
})
if qErr != nil {
s.logger.Warn("查询企业授权状态失败,将继续尝试获取授权链接",
zap.String("company_name", authReq.CompanyName),
zap.String("uscc", authReq.UnifiedSocialCode),
zap.String("platform", string(provider.Platform())),
zap.Error(qErr))
} else if authStatus != nil && authStatus.Supported && authStatus.Authorized {
s.logger.Info("查询企业授权状态为已授权,跳过认证链接并视为认证完成",
zap.String("company_name", authReq.CompanyName),
zap.String("uscc", authReq.UnifiedSocialCode),
zap.String("platform", string(provider.Platform())),
zap.String("binding_status", authStatus.BindingStatus),
zap.String("open_corp_id", authStatus.OpenCorpID),
zap.String("ident_status", authStatus.IdentStatus))
return nil, true, nil
}
// 2) 未授权或不支持查询:走获取授权链接
authRes, err := provider.GenerateEnterpriseAuth(ctx, authReq)
if err == nil {
return authRes, false, nil
}
// 法大大:授权范围重复获取(code=210002/210013= 已对本应用授权,跳过授权页
// 3) 兜底get-auth-url 返回授权范围重复获取210002/210013
if isEnterpriseAlreadyAuthorizedErr(err) {
s.logger.Info("第三方返回企业已授权,跳过认证链接并视为认证完成",
s.logger.Info("获取授权链接返回重复授权错误码,跳过认证链接并视为认证完成",
zap.String("company_name", authReq.CompanyName),
zap.String("uscc", authReq.UnifiedSocialCode),
zap.String("platform", string(provider.Platform())),