diff --git a/platformapi/fnpsapi/callback.go b/platformapi/fnpsapi/callback.go index bd9ac44e..d17db036 100644 --- a/platformapi/fnpsapi/callback.go +++ b/platformapi/fnpsapi/callback.go @@ -1,9 +1,10 @@ package fnpsapi import ( - "net/http" "net/url" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/baseapi/utils" ) @@ -28,15 +29,26 @@ type WayBillInfo struct { DetailDescription string `json:"detail_description"` } -func (a *API) GetOrderCallbackMsg(request *http.Request) (orderMsg *WayBillInfo) { - err := request.ParseForm() +func (a *API) GetOrderCallbackMsg(data []byte) (orderMsg *WayBillInfo) { + callbackInfo := &CallBackInfo{} + err := utils.UnmarshalUseNumber(data, callbackInfo) + if err != nil { + globals.SugarLogger.Debugf("fn msg faild %v, err : %v", string(data), err) + return nil + } if err == nil { - params := make(url.Values) - for k := range request.PostForm { - decodedValue, _ := url.QueryUnescape(request.PostFormValue(k)) - params.Set(k, decodedValue) + if str, err := url.QueryUnescape(callbackInfo.Data); err == nil { + orderMsg = &WayBillInfo{} + if err := utils.UnmarshalUseNumber([]byte(str), orderMsg); err == nil { + return orderMsg + } else { + globals.SugarLogger.Debugf("fn msg faild3 %v", err) + return nil + } + } else { + globals.SugarLogger.Debugf("fn msg faild2 %v", err) + return nil } - utils.Map2StructByJson(params.Get("data"), &orderMsg, false) } return orderMsg } diff --git a/platformapi/fnpsapi/fnpsapi_test.go b/platformapi/fnpsapi/fnpsapi_test.go index 109d261d..1b378c0e 100644 --- a/platformapi/fnpsapi/fnpsapi_test.go +++ b/platformapi/fnpsapi/fnpsapi_test.go @@ -18,7 +18,7 @@ func init() { sugarLogger = logger.Sugar() baseapi.Init(sugarLogger) api = New("6a3e2073-1850-413b-9eb7-6c342ec36e1c", "a8248088-a742-4c33-a0db-03aeae00ca7d") - api.SetToken("n-c6e3d9e2-8003-4855-ac88-ca8b9042d616-w") + // api.SetToken("n-c6e3d9e2-8003-4855-ac88-ca8b9042d616-w") } func TestGetAccessToken(t *testing.T) { diff --git a/platformapi/jdapi/store_page_test.go b/platformapi/jdapi/store_page_test.go index 8383f2f1..da883310 100644 --- a/platformapi/jdapi/store_page_test.go +++ b/platformapi/jdapi/store_page_test.go @@ -2,7 +2,6 @@ package jdapi import ( "fmt" - "strconv" "strings" "testing" @@ -281,35 +280,40 @@ func TestGetJdTopSkus(t *testing.T) { // t.Fatal(err) // } // t.Log(utils.Format4Output(result, false)) - fmt.Println(pp(332)) + s1 := "ymbgaraibkfmvocpizdydugvalagaivdbfsfbepeyccqfepzvtpyxtbadkhmwmoswrcxnargtlswqemafandgkmydtimuzvjwxvlfwlhvkrgcsithaqlcvrihrwqkpjdhgfgreqoxzfvhjzojhghfwbvpfzectwwhexthbsndovxejsntmjihchaotbgcysfdaojkjldprwyrnischrgmtvjcorypvopfmegizfkvudubnejzfqffvgdoxohuinkyygbdzmshvyqyhsozwvlhevfepdvafgkqpkmcsikfyxczcovrmwqxxbnhfzcjjcpgzjjfateajnnvlbwhyppdleahgaypxidkpwmfqwqyofwdqgxhjaxvyrzupfwesmxbjszolgwqvfiozofncbohduqgiswuiyddmwlwubetyaummenkdfptjczxemryuotrrymrfdxtrebpbjtpnuhsbnovhectpjhfhahbqrfbyxggobsweefcwxpqsspyssrmdhuelkkvyjxswjwofngpwfxvknkjviiavorwyfzlnktmfwxkvwkrwdcxjfzikdyswsuxegmhtnxjraqrdchaauazfhtklxsksbhwgjphgbasfnlwqwukprgvihntsyymdrfovaszjywuqygpvjtvlsvvqbvzsmgweiayhlubnbsitvfxawhfmfiatxvqrcwjshvovxknnxnyyfexqycrlyksderlqarqhkxyaqwlwoqcribumrqjtelhwdvaiysgjlvksrfvjlcaiwrirtkkxbwgicyhvakxgdjwnwmubkiazdjkfmotglclqndqjxethoutvjchjbkoasnnfbgrnycucfpeovruguzumgmgddqwjgdvaujhyqsqtoexmnfuluaqbxoofvotvfoiexbnprrxptchmlctzgqtkivsilwgwgvpidpvasurraqfkcmxhdapjrlrnkbklwkrvoaziznlpor" + s2 := "qhxepbshlrhoecdaodgpousbzfcqjxulatciapuftffahhlmxbufgjuxstfjvljybfxnenlacmjqoymvamphpxnolwijwcecgwbcjhgdybfffwoygikvoecdggplfohemfypxfsvdrseyhmvkoovxhdvoavsqqbrsqrkqhbtmgwaurgisloqjixfwfvwtszcxwktkwesaxsmhsvlitegrlzkvfqoiiwxbzskzoewbkxtphapavbyvhzvgrrfriddnsrftfowhdanvhjvurhljmpxvpddxmzfgwwpkjrfgqptrmumoemhfpojnxzwlrxkcafvbhlwrapubhveattfifsmiounhqusvhywnxhwrgamgnesxmzliyzisqrwvkiyderyotxhwspqrrkeczjysfujvovsfcfouykcqyjoobfdgnlswfzjmyucaxuaslzwfnetekymrwbvponiaojdqnbmboldvvitamntwnyaeppjaohwkrisrlrgwcjqqgxeqerjrbapfzurcwxhcwzugcgnirkkrxdthtbmdqgvqxilllrsbwjhwqszrjtzyetwubdrlyakzxcveufvhqugyawvkivwonvmrgnchkzdysngqdibhkyboyftxcvvjoggecjsajbuqkjjxfvynrjsnvtfvgpgveycxidhhfauvjovmnbqgoxsafknluyimkczykwdgvqwlvvgdmufxdypwnajkncoynqticfetcdafvtqszuwfmrdggifokwmkgzuxnhncmnsstffqpqbplypapctctfhqpihavligbrutxmmygiyaklqtakdidvnvrjfteazeqmbgklrgrorudayokxptswwkcircwuhcavhdparjfkjypkyxhbgwxbkvpvrtzjaetahmxevmkhdfyidhrdeejapfbafwmdqjqszwnwzgclitdhlnkaiyldwkwwzvhyorgbysyjbxsspnjdewjxbhpsvj" + fmt.Println(string(findTheDifference(s1, s2))) } -func pp(N int) (n int) { - if N < 10 { - return N +func findTheDifference(s string, t string) byte { + var ( + map1 = make(map[byte]int) + map2 = make(map[byte]int) + ) + if s == "" { + return []byte(t)[0] } - r := new(strings.Builder) - str := strconv.Itoa(N) - for i := 0; i < len(str)-1; i++ { - if str[i] > str[i+1] { - if j, err := strconv.Atoi(string(str[i])); err == nil { - r.WriteString(strconv.Itoa(j - 1)) - for k := 0; k < len(str)-i-1; k++ { - r.WriteString("9") - } - break - } + for k, _ := range s { + map1[s[k]]++ + } + for k, _ := range t { + map2[t[k]]++ + } + for k, v := range map1 { + if map2[k] != v { + return k + } + } + for k, v := range t { + if k == len(t)-1 { + return t[k] } else { - r.WriteString(string(str[i])) - } - if i+1 == len(str)-1 { - r.WriteString(string(str[i+1])) - n, _ = strconv.Atoi(r.String()) - return n + if strings.Index(string(v), string(s[k])) == -1 { + return t[k] + } } } - n, _ = strconv.Atoi(r.String()) - return pp(n) + return []byte(t)[0] } func TestGetJdStoreInfo(t *testing.T) {