f
This commit is contained in:
@@ -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())),
|
||||
|
||||
Reference in New Issue
Block a user