fix: 优化逻辑,提高兼容性
diff --git a/webservice.go b/webservice.go
index eb8aef2..fbd414f 100644
--- a/webservice.go
+++ b/webservice.go
@@ -353,20 +353,22 @@
 func (w *WebSession) CallService2(path string, params map[string]interface{}, timeout int,
 	signField ...string) (response *ServiceResponse, err error) {
 	err = nil
-	params["app_id"] = w.AppID
-	params["term_id"] = w.TermID
-	ts := w.GetTimestamp()
-	params["timestamp"] = ts
 
 	formData := make(map[string]string)
-	for k, v := range params {
-		formData[k] = fmt.Sprintf("%v", v)
+	if params != nil {
+		for k, v := range params {
+			formData[k] = fmt.Sprintf("%v", v)
+		}
 	}
+	formData["app_id"] = w.AppID
+	formData["term_id"] = w.TermID
+	ts := w.GetTimestamp()
+	formData["timestamp"] = ts
 
 	signData := ""
 	for _, k := range signField {
-		if v, ok := params[k]; ok {
-			signData += fmt.Sprintf("%v", v)
+		if v, ok := formData[k]; ok {
+			signData += v
 		}
 	}
 	signData += ts + w.sessionKey
diff --git a/webservice_test.go b/webservice_test.go
index 9e70f26..4c3cb08 100644
--- a/webservice_test.go
+++ b/webservice_test.go
@@ -1,6 +1,7 @@
 package swservice
 
 import (
+	"fmt"
 	"testing"
 )
 
@@ -43,6 +44,28 @@
 	if err != nil {
 		t.Errorf("Auth Error: %v", err)
 	}
+
+	r, err := session.CallService2("/common/servicecheck",
+		make(map[string]interface{}), 3)
+	if err != nil {
+		t.Errorf("Request Error: %v", err)
+	} else {
+		fmt.Printf("hostdatetime: %v\n", r.GetStrValue("hostdatetime"))
+	}
+
+	r, err = session.CallService2("/v5/manage/pos/gettoken",
+		map[string]interface{}{
+			"devphyid": "30000004",
+		}, 3, "devphyid")
+
+	if err != nil {
+		t.Errorf("Request Error: %v", err)
+	} else if r.GetIntValue("retcode") != 0 {
+		t.Errorf("get device token error, ret=%v", r.GetIntValue("retcode"))
+	} else {
+		fmt.Printf("ret=%v, devtoken: %v\n", r.GetIntValue("retcode"),
+			r.GetStrValue("devtoken"))
+	}
 }
 
 func TestUseHTTPS(t *testing.T) {