实名认证对接--ok

This commit is contained in:
yml2213
2026-05-29 14:00:52 +08:00
parent f89e694fd0
commit f386fcc552
11 changed files with 465 additions and 6 deletions
+19 -4
View File
@@ -7,22 +7,28 @@ import (
"strings"
"hfb_sys/backend/internal/model"
"go.uber.org/zap"
)
const (
StatusPending = "pending"
StatusVerified = "verified"
StatusFailed = "failed"
StatusRejected = "rejected"
)
var (
ErrDependencyUnavailable = errors.New("dependency unavailable")
ErrInvalidRealnameInput = errors.New("invalid realname input")
ErrProviderConfigInvalid = errors.New("realname provider config invalid")
ErrProviderRateLimited = errors.New("realname provider rate limited")
ErrProviderUnavailable = errors.New("realname provider unavailable")
)
type Service struct {
repo *Repository
provider Provider
log *zap.Logger
}
type PublicStatus struct {
@@ -35,8 +41,8 @@ type PublicStatus struct {
FailReason string `json:"fail_reason,omitempty"`
}
func NewService(repo *Repository, provider Provider) *Service {
return &Service{repo: repo, provider: provider}
func NewService(repo *Repository, provider Provider, log *zap.Logger) *Service {
return &Service{repo: repo, provider: provider, log: log}
}
func (s *Service) Start(ctx context.Context, userID uint64, name string, idNo string) (*model.UserRealname, error) {
@@ -54,9 +60,18 @@ func (s *Service) Start(ctx context.Context, userID uint64, name string, idNo st
IDNo: idNo,
})
if err != nil {
if s.log != nil {
s.log.Warn(
"realname provider verify failed",
zap.String("provider", s.provider.Name()),
zap.Uint64("user_id", userID),
zap.String("masked_id_no", maskIDNo(idNo)),
zap.Error(err),
)
}
return nil, err
}
return s.repo.SaveResult(userID, "mock", result)
return s.repo.SaveResult(userID, s.provider.Name(), result)
}
func (s *Service) Status(userID uint64) (PublicStatus, error) {