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) {
