提交 fe5073a4 authored 作者: zhanglibo's avatar zhanglibo

变更结构体

上级 40e3ca5b
......@@ -6,6 +6,7 @@ import (
"crypto/sha256"
"encoding/hex"
"github.com/gogf/gf/container/garray"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/os/gtime"
"github.com/gogf/gf/util/gconv"
......@@ -17,10 +18,10 @@ import (
var server *Config
type Config struct {
ApiUrl string
AppKey string
AppSecret string
ImgUrl string
ApiUrl string
AppKey string
AppSecret string
ImgUrl string
}
const pkgName = "schl"
......@@ -30,32 +31,31 @@ func New(config *Config) {
return
}
func (c *Config)Post(ctx context.Context, api string, bodyMap g.Map) (result string, err error) {
func (c *Config) Post(ctx context.Context, api string, bodyMap g.Map) (result string, err error) {
Start := gtime.TimestampMilli()
pubilcParams := new(PubilcParams)
pubilcParams.AppID = c.AppKey
pubilcParams.Timestamp = gtime.TimestampStr()
pubilcParams.Nonce = grand.S(16,false)
pubilcParams.Nonce = grand.S(16, false)
secret := c.AppSecret
sign := c.Sign(ctx,*pubilcParams, bodyMap, secret)
sign := c.Sign(ctx, *pubilcParams, bodyMap, secret)
defer func() {
ctx = context.WithValue(ctx, "URI", api)
if err != nil {
g.Log().Ctx(ctx).Cat("error").Async(true).
Infof("参数【%v】错误【%v】响应时间:【%v ms】", bodyMap, err.Error(), gtime.TimestampMilli()-Start)
Infof("参数【%v】错误【%v】响应时间:【%v ms】", gjson.New(bodyMap).MustToJsonString(), err.Error(), gtime.TimestampMilli()-Start)
} else {
g.Log().Ctx(ctx).Cat(pkgName).Async(true).
Infof("参数【%v】响应【%v】响应时间:【%v ms】", bodyMap, result, gtime.TimestampMilli()-Start)
Infof("参数【%v】响应【%v】响应时间:【%v ms】", gjson.New(bodyMap).MustToJsonString(), result, gtime.TimestampMilli()-Start)
}
}()
pubilcParams.Signature = sign
pubilcParamsMap := gconv.Map(pubilcParams)
for k,v := range pubilcParamsMap{
for k, v := range pubilcParamsMap {
bodyMap[k] = v
}
response, err := g.Client().Ctx(ctx).
......@@ -67,8 +67,7 @@ func (c *Config)Post(ctx context.Context, api string, bodyMap g.Map) (result str
return
}
func (c *Config)Sign(ctx context.Context,pubilcParams PubilcParams,params g.Map , secret string)(sign string){
func (c *Config) Sign(ctx context.Context, pubilcParams PubilcParams, params g.Map, secret string) (sign string) {
allMaps := make(map[string]string)
var arr = garray.New().Append("appId", "timestamp", "nonce")
......@@ -79,11 +78,10 @@ func (c *Config)Sign(ctx context.Context,pubilcParams PubilcParams,params g.Map
}
allMaps["secret"] = secret
for k,v := range params{
for k, v := range params {
allMaps[k] = gconv.String(v)
}
keys := make([]string, 0)
for k := range allMaps {
keys = append(keys, k)
......@@ -98,19 +96,16 @@ func (c *Config)Sign(ctx context.Context,pubilcParams PubilcParams,params g.Map
paramsString += v + "=" + allMaps[v]
}
paramsString += "&key="+secret
paramsString += "&key=" + secret
hmacSha256String := hmacSha256(paramsString,secret)
hmacSha256String := hmacSha256(paramsString, secret)
sign = strings.ToUpper(hmacSha256String)
return
}
func hmacSha256(data string, secret string) string {
h := hmac.New(sha256.New, []byte(secret))
h.Write([]byte(data))
return hex.EncodeToString(h.Sum(nil))
}
\ No newline at end of file
}
......@@ -112,16 +112,16 @@ type SyncOrderExpNoReq struct {
type SyncOrderExpNoRes struct {
CommonRes
Result struct {
UnionId string `json:"unionId"` //平台订单编号
ExpNo string `json:"expNo"` //快递/物流单号
Result []struct {
UnionId string `json:"unionId"` //平台订单编号
ExpNo []string `json:"expNo"` //快递/物流单号
} `json:"result"`
}
type QueryExpTrackReq struct {
UnionId string `json:"unionId"` //平台订单编号,用于后续操作平台订单
ExpNos []string `json:"expNos"` //订单对应的快递单号数组
BusinessId string `json:"businessId"` //业务订单编号(平台中所查看到的订单编号)
UnionId string `json:"unionId"` //平台订单编号,用于后续操作平台订单
ExpNos string `json:"expNo"` //订单对应的快递单号数组
BusinessId string `json:"businessId"` //业务订单编号(平台中所查看到的订单编号)
}
type QueryExpTrackRes struct {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论