diff --git a/platformapi/jdapi/callback.go b/platformapi/jdapi/callback.go index a16e4bf3..0442be24 100644 --- a/platformapi/jdapi/callback.go +++ b/platformapi/jdapi/callback.go @@ -35,7 +35,7 @@ type CallbackDeliveryStatusMsg struct { Remark string `json:"remark"` FailType string `json:"failType"` CreatePin string `json:"createPin"` - OpTime int64 `json:"opTime"` + OpTime string `json:"opTime"` InputTime string `json:"inputTime"` } @@ -57,14 +57,8 @@ func (a *API) unmarshalData(strData string, msg interface{}) (callbackResponse * } func (a *API) CheckCallbackValidation(values url.Values) (callbackResponse *CallbackResponse) { - mapData := make(map[string]interface{}) - mapData["token"] = values.Get("token") - mapData["app_key"] = values.Get("app_key") - mapData["timestamp"] = values.Get("timestamp") - mapData["format"] = values.Get("format") + mapData := utils.URLValues2Map(values) mapData["app_secret"] = a.appSecret - mapData["v"] = values.Get("v") - mapData[paramJson] = values.Get(paramJson) sign := a.signParams(mapData) if sign != values.Get(signKey) { baseapi.SugarLogger.Infof("Signature is not ok, mine:%v, get:%v", sign, values.Get(signKey)) diff --git a/utils/utils.go b/utils/utils.go index 6114a1a7..1915ab9e 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -258,6 +258,22 @@ func Params2Map(key1, value1 interface{}, kv ...interface{}) (retVal map[string] return retVal } +func URLValues2Map(values url.Values) (retVal map[string]interface{}) { + retVal = make(map[string]interface{}) + for k := range values { + retVal[k] = values.Get(k) + } + return retVal +} + +func Map2URLValues(mapData map[string]interface{}) (retVal url.Values) { + retVal = make(url.Values) + for k, v := range mapData { + retVal.Set(k, fmt.Sprint(v)) + } + return retVal +} + func GenerateGetURL(baseURL, apiStr string, params map[string]interface{}) string { queryString := "" if params != nil {