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