From 428acb45057baad5055e52461a7b3433ec4adecf Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Tue, 23 Dec 2025 12:54:25 +0800 Subject: [PATCH] fix: #1117 --- .../dns01/51dnscom/internal/lego.go | 11 +++--- pkg/sdk3rd/51dnscom/api_domain_list.go | 15 ++++---- pkg/sdk3rd/51dnscom/api_record_create.go | 4 +- pkg/sdk3rd/51dnscom/api_record_remove.go | 4 +- pkg/sdk3rd/51dnscom/types.go | 37 ++++++++++++------- 5 files changed, 39 insertions(+), 32 deletions(-) diff --git a/pkg/core/certifier/challengers/dns01/51dnscom/internal/lego.go b/pkg/core/certifier/challengers/dns01/51dnscom/internal/lego.go index eef79e983..479bcddbd 100644 --- a/pkg/core/certifier/challengers/dns01/51dnscom/internal/lego.go +++ b/pkg/core/certifier/challengers/dns01/51dnscom/internal/lego.go @@ -3,7 +3,6 @@ package internal import ( "errors" "fmt" - "strings" "sync" "time" @@ -108,7 +107,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { // REF: https://www.51dns.com/document/api/4/12.html request := &dnscomsdk.RecordCreateRequest{ - DomainID: lo.ToPtr(zone.DomainID), + DomainID: lo.ToPtr(zone.DomainID.String()), Type: lo.ToPtr("TXT"), Host: lo.ToPtr(subDomain), Value: lo.ToPtr(info.Value), @@ -120,7 +119,7 @@ func (d *DNSProvider) Present(domain, token, keyAuth string) error { } d.recordCacheMu.Lock() - d.recordCache[token] = dnsRecordCacheEntry{DomainID: zone.DomainID, RecordID: response.Data.RecordID} + d.recordCache[token] = dnsRecordCacheEntry{DomainID: zone.DomainID.String(), RecordID: response.Data.RecordID.String()} d.recordCacheMu.Unlock() return nil @@ -153,8 +152,8 @@ func (d *DNSProvider) Timeout() (timeout, interval time.Duration) { } type dnsRecordCacheEntry struct { - DomainID int64 - RecordID int64 + DomainID string + RecordID string } func (d *DNSProvider) findZone(zoneName string) (*dnscomsdk.DomainRecord, error) { @@ -176,7 +175,7 @@ func (d *DNSProvider) findZone(zoneName string) (*dnscomsdk.DomainRecord, error) } for _, domainItem := range response.Data.Data { - if strings.TrimRight(domainItem.Domain, ".") == zoneName { + if domainItem.Domain == zoneName { return domainItem, nil } } diff --git a/pkg/sdk3rd/51dnscom/api_domain_list.go b/pkg/sdk3rd/51dnscom/api_domain_list.go index c252e4f26..4af58f4f1 100644 --- a/pkg/sdk3rd/51dnscom/api_domain_list.go +++ b/pkg/sdk3rd/51dnscom/api_domain_list.go @@ -6,20 +6,19 @@ import ( ) type DomainListRequest struct { - GroupID *int64 `json:"groupID,omitempty"` - Page *int32 `json:"page,omitempty"` - PageSize *int32 `json:"pageSize,omitempty"` + GroupID *string `json:"groupID,omitempty"` + Page *int32 `json:"page,omitempty"` + PageSize *int32 `json:"pageSize,omitempty"` } type DomainListResponse struct { apiResponseBase Data *struct { - Data []*DomainRecord `json:"data"` - RecordCount int32 `json:"recordCount"` - Page int32 `json:"page"` - PageSize int32 `json:"pageSize"` - PageCount int32 `json:"pageCount"` + Data []*DomainRecord `json:"data"` + Page int32 `json:"page"` + PageSize int32 `json:"pageSize"` + PageCount int32 `json:"pageCount"` } `json:"data"` } diff --git a/pkg/sdk3rd/51dnscom/api_record_create.go b/pkg/sdk3rd/51dnscom/api_record_create.go index 9d601158a..518eb9e3a 100644 --- a/pkg/sdk3rd/51dnscom/api_record_create.go +++ b/pkg/sdk3rd/51dnscom/api_record_create.go @@ -6,8 +6,8 @@ import ( ) type RecordCreateRequest struct { - DomainID *int64 `json:"domainID,omitempty"` - ViewID *int64 `json:"viewID,omitempty"` + DomainID *string `json:"domainID,omitempty"` + ViewID *string `json:"viewID,omitempty"` Type *string `json:"type,omitempty"` Host *string `json:"host,omitempty"` Value *string `json:"value,omitempty"` diff --git a/pkg/sdk3rd/51dnscom/api_record_remove.go b/pkg/sdk3rd/51dnscom/api_record_remove.go index 901002a16..746a9d471 100644 --- a/pkg/sdk3rd/51dnscom/api_record_remove.go +++ b/pkg/sdk3rd/51dnscom/api_record_remove.go @@ -6,8 +6,8 @@ import ( ) type RecordRemoveRequest struct { - DomainID *int64 `json:"domainID,omitempty"` - RecordID *int64 `json:"recordID,omitempty"` + DomainID *string `json:"domainID,omitempty"` + RecordID *string `json:"recordID,omitempty"` } type RecordRemoveResponse struct { diff --git a/pkg/sdk3rd/51dnscom/types.go b/pkg/sdk3rd/51dnscom/types.go index b73770baf..97f3f9771 100644 --- a/pkg/sdk3rd/51dnscom/types.go +++ b/pkg/sdk3rd/51dnscom/types.go @@ -1,5 +1,9 @@ package dnscom +import ( + "encoding/json" +) + type apiResponse interface { GetCode() int32 GetMessage() string @@ -21,21 +25,26 @@ func (r *apiResponseBase) GetMessage() string { var _ apiResponse = (*apiResponseBase)(nil) type DomainRecord struct { - DomainID int64 `json:"domainID"` - Domain string `json:"domain"` - State int32 `json:"state"` + GroupID json.Number `json:"groupID"` + DomainID json.Number `json:"domainsID"` + Domain string `json:"domains"` + State int32 `json:"state"` + UserLockState int32 `json:"userLock"` + AdminLockState int32 `json:"adminLock"` + HealthState int32 `json:"healthState"` + ViewType string `json:"view_type"` } type DNSRecord struct { - DomainID int64 `json:"domainID"` - RecordID int64 `json:"recordID"` - ViewID int64 `json:"viewID"` - Record string `json:"record"` - Type string `json:"type"` - Host string `json:"host"` - Value string `json:"value"` - TTL int32 `json:"ttl"` - MX int32 `json:"mx"` - State int32 `json:"state"` - Remark string `json:"remark"` + DomainID json.Number `json:"domainID"` + RecordID json.Number `json:"recordID"` + ViewID json.Number `json:"viewID"` + Record string `json:"record"` + Type string `json:"type"` + Host string `json:"host"` + Value string `json:"value"` + TTL int32 `json:"ttl"` + MX int32 `json:"mx"` + State int32 `json:"state"` + Remark string `json:"remark"` }