-
Notifications
You must be signed in to change notification settings - Fork 0
/
params.go
47 lines (43 loc) · 1.03 KB
/
params.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package jd
import (
"go.dtapp.net/gorequest"
"go.dtapp.net/gostring"
"sort"
"time"
)
func NewParamsWithType(_method string, params ...gorequest.Params) gorequest.Params {
p := gorequest.NewParamsWith(params...)
p.Set("method", _method)
hh, _ := time.ParseDuration("8h")
loc := time.Now().UTC().Add(hh)
p.Set("timestamp", loc.Format("2006-01-02 15:04:05"))
p.Set("format", "json")
p.Set("v", "1.0")
p.Set("sign_method", "md5")
for _, v := range params {
p.SetParams(v)
}
return p
}
func (c *Client) Sign(p gorequest.Params) {
p.Set("app_key", c.GetAppKey())
// 排序所有的 key
var keys []string
for key := range p {
keys = append(keys, key)
}
sort.Strings(keys)
signStr := c.GetSecretKey()
for _, key := range keys {
signStr += key + gostring.GetString(p.Get(key))
}
signStr += c.GetSecretKey()
p.Set("sign", createSign(signStr))
}
func SetCustomParameters(p gorequest.Params, uid string, sid string) gorequest.Params {
p.Set("custom_parameters", map[string]interface{}{
"uid": uid,
"sid": sid,
})
return p
}