|
- package meituan_fenxiao
-
- import (
- "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/comm"
- zhios_third_party_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/utils"
- "crypto/hmac"
- "crypto/md5"
- "encoding/hex"
- "fmt"
- "github.com/syyongx/php2go"
- "strings"
- "time"
- )
-
- const (
- ApiKey = "nsVtNZcmRDuxgBim"
- UtmSource = "511860"
- Url = "https://union.dianping.com/"
- )
-
- func MeituanFenXiaoSend(method string, params map[string]interface{}) (string, error) {
-
- arg := map[string]string{
- "requestId": zhios_third_party_utils.UUIDString(),
- "utmSource": UtmSource,
- "timestamp": zhios_third_party_utils.Int64ToStr(time.Now().Unix()),
- "version": "1.0",
- "signMethod": "hmac",
- }
- reqParam := make(map[string]interface{})
- for k, v := range params {
- reqParam[k] = v
- }
- for k, v := range arg {
- reqParam[k] = v
- }
- sign := MeituanFenXiaoGetSign(reqParam)
- arg["sign"] = sign
- url := Url + method
- for k, v := range arg {
- if strings.Contains(url, "?") == false {
- url += "?" + k + "=" + php2go.URLEncode(v)
- } else {
- url += "&" + k + "=" + php2go.URLEncode(v)
- }
- }
- fmt.Println(url)
- fmt.Println(zhios_third_party_utils.SerializeStr(params))
- post, err := zhios_third_party_utils.CurlPost(url, zhios_third_party_utils.SerializeStr(params), map[string]string{})
- if err != nil {
- return "", err
- }
- fmt.Println(string(post))
-
- return string(post), nil
- }
- func MeituanFenXiaoGetSign(param map[string]interface{}) string {
- str := ""
- info, ok := param["geo"].(map[string]interface{})
- if ok {
- if info["cityId"] != "" {
- param["cityId"] = info["cityId"]
- }
- if info["lat"] != "" {
- param["lat"] = info["lat"]
- }
- if info["lng"] != "" {
- param["lng"] = info["lng"]
- }
- }
- delete(param, "geo")
- keys := comm.KsortToStrInterface(param)
- for _, k := range keys {
- strs := ""
- if k == "catIds" {
- strs = zhios_third_party_utils.SerializeStr(param[k])
- } else {
- strs = zhios_third_party_utils.AnyToString(param[k])
- }
- str += k + strs
- }
- fmt.Println(str)
- h := hmac.New(md5.New, []byte(ApiKey))
- h.Write([]byte(str))
- return strings.ToUpper(hex.EncodeToString(h.Sum([]byte(""))))
- }
|