This commit is contained in:
Mrx
2026-06-05 14:12:48 +08:00
parent 8c4fe013e2
commit e7d462028e
4 changed files with 64 additions and 12 deletions

View File

@@ -90,7 +90,7 @@ func (s *NuoerService) logError(transactionID, apiKey, seqNo string, err error,
s.logger.LogError(seqNo, transactionID, apiKey, err, payload)
}
func (s *NuoerService) CallAPI(ctx context.Context, apiKey, apiPath string, body map[string]string) (*nuoerResponse, error) {
func (s *NuoerService) CallAPI(ctx context.Context, apiKey, apiPath string, body map[string]string, encryptionType ...int) (*nuoerResponse, error) {
requestURL := strings.TrimSuffix(s.config.URL, "/")
if apiPath != "" {
if !strings.HasPrefix(apiPath, "/") {
@@ -106,14 +106,27 @@ func (s *NuoerService) CallAPI(ctx context.Context, apiKey, apiPath string, body
transactionID = id
}
// 对调用方传入的 body 全量参与加签(排除空值,按 key 升序,见 Sign
sign := Sign(body, s.config.AppSecret)
var encType int
if len(encryptionType) > 0 {
encType = encryptionType[0]
}
requestBody := body
if encType == 2 {
requestBody = encryptBodyMD5(body)
}
// 对请求 body 全量参与加签(排除空值,按 key 升序,见 Sign
sign := Sign(requestBody, s.config.AppSecret)
requestPayload := map[string]interface{}{
"appId": s.config.AppID,
"sign": sign,
"apiKey": apiKey,
"body": body,
"body": requestBody,
}
if encType > 0 {
requestPayload["encryptionType"] = encType
}
if s.logger != nil {