From b7230df0b8124146b94696dc41aa25caf7d7726f Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 29 Nov 2018 22:37:28 +0800 Subject: [PATCH] - add callbackURL for mtwm api --- platformapi/mtwmapi/callback.go | 2 +- platformapi/mtwmapi/mtwmapi.go | 20 +++++++++++--------- platformapi/mtwmapi/mtwmapi_test.go | 2 +- utils/typeconv.go | 2 +- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/platformapi/mtwmapi/callback.go b/platformapi/mtwmapi/callback.go index a6118b3e..b8e42dae 100644 --- a/platformapi/mtwmapi/callback.go +++ b/platformapi/mtwmapi/callback.go @@ -51,7 +51,7 @@ func Err2CallbackResponse(err error, data string) *CallbackResponse { func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackResponse *CallbackResponse) { data := utils.URLValues2Map(request.PostForm) - fullURL := strings.TrimRight(request.URL.String(), "/") + fullURL := strings.TrimRight(a.callbackURL+request.URL.Path, "/") sign := a.signParams(fullURL+"?", data) if sign != data[signKey] { return nil, SignatureIsNotOk diff --git a/platformapi/mtwmapi/mtwmapi.go b/platformapi/mtwmapi/mtwmapi.go index 37477a33..89866359 100644 --- a/platformapi/mtwmapi/mtwmapi.go +++ b/platformapi/mtwmapi/mtwmapi.go @@ -36,22 +36,24 @@ const ( ) type API struct { - appID string - secret string - client *http.Client - config *platformapi.APIConfig + appID string + secret string + callbackURL string + client *http.Client + config *platformapi.APIConfig } -func New(appID, secret string, config ...*platformapi.APIConfig) *API { +func New(appID, secret, callbackURL string, config ...*platformapi.APIConfig) *API { curConfig := platformapi.DefAPIConfig if len(config) > 0 { curConfig = *config[0] } return &API{ - appID: appID, - secret: secret, - client: &http.Client{Timeout: curConfig.ClientTimeout}, - config: &curConfig, + appID: appID, + secret: secret, + callbackURL: callbackURL, + client: &http.Client{Timeout: curConfig.ClientTimeout}, + config: &curConfig, } } diff --git a/platformapi/mtwmapi/mtwmapi_test.go b/platformapi/mtwmapi/mtwmapi_test.go index 06e30817..19256bc7 100644 --- a/platformapi/mtwmapi/mtwmapi_test.go +++ b/platformapi/mtwmapi/mtwmapi_test.go @@ -18,7 +18,7 @@ func init() { sugarLogger = logger.Sugar() baseapi.Init(sugarLogger) - api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f") + api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "") } func TestAccessAPI(t *testing.T) { diff --git a/utils/typeconv.go b/utils/typeconv.go index 7c912dbc..898d355b 100644 --- a/utils/typeconv.go +++ b/utils/typeconv.go @@ -308,7 +308,7 @@ func Params2Map(key1, value1 interface{}, kv ...interface{}) (retVal map[string] func URLValues2Map(values url.Values) (retVal map[string]interface{}) { retVal = make(map[string]interface{}) for k := range values { - retVal[k] = values.Get(k) + retVal[k], _ = url.QueryUnescape(values.Get(k)) } return retVal }