package dadaapi import ( "fmt" "git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" "go.uber.org/zap" "strings" "testing" ) // //import ( // "net/http" // "testing" // // "git.rosy.net.cn/baseapi" // // "git.rosy.net.cn/baseapi/utils" // "go.uber.org/zap" //) // var ( dadaapi *API sugarLogger *zap.SugaredLogger testOrder *OperateOrderParams ) // //const ( // testShopNo = "11047059" //) // func init() { logger, _ := zap.NewDevelopment() sugarLogger = logger.Sugar() baseapi.Init(sugarLogger) // sandbox // dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false) // prod dadaapi = New("dada154e2a41fd6cef3", "7f97d8f258b70b450f04e7ab274ed8f8", "6660", "http://callback.jxc4.com/dadadelivery/msg", true) // prod //testOrder = &OperateOrderParams{ // ShopNo: testShopNo, // OriginID: "234242342", // CityCode: "028", // CargoPrice: 12.34, // IsPrepay: 1, // ReceiverName: "我是谁", // ReceiverAddress: "九里堤", // ReceiverLat: 30.74631, // ReceiverLng: 103.99112, // ReceiverPhone: "12812345678", //} } func TestComplaintRider(t *testing.T) { err := dadaapi.ComplaintRider("5000952191610480635", 69) fmt.Println(err) } func TestComplaintList(t *testing.T) { dadaapi.ComplaintList() } func Test222222(t *testing.T) { a := 57 fmt.Println(a&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0) fmt.Println((a & 2) != 0) fmt.Println((a & 4) != 0) } // //func TestTest(t *testing.T) { // sugarLogger.Debug(utils.GetCurTimeStr()) //} // //func TestSignCallback(t *testing.T) { // sampleData := `{"signature":"5a277f2519b6011028ff541fb09b8553","client_id":"275000419162381","order_id":"234242342","order_status":1,"cancel_reason":"","cancel_from":0,"dm_id":0,"update_time":1529564947}` // mapData := make(map[string]interface{}) // utils.UnmarshalUseNumber([]byte(sampleData), &mapData) // sign := dadaapi.signCallbackParams(mapData) // if sign != mapData["signature"] { // t.Fatal("sign is not correct") // } //} // //func TestAccessAPI(t *testing.T) { // body := make(map[string]interface{}) // body["order_id"] = "fakeorderid" // result, err := dadaapi.AccessAPI("api/order/status/query", body) // // failed := true // if err != nil { // if err2, ok := err.(*utils.ErrorWithCode); ok { // if err2.IntCode() != ResponseCodeSignErr { // failed = false // } // } // } else { // failed = false // } // // if failed { // t.Fatalf("Error when accessing api result:%v, error:%v", result, err) // } //} // //func TestGetCites(t *testing.T) { // result, err := dadaapi.GetCities() // if err != nil { // t.Fatal(err.Error()) // } // failed := true // for _, city := range result { // if city.CityCode == "028" { // failed = false // } // } // // if failed { // t.Fatal("failed") // } //} // //func TestGetReasons(t *testing.T) { // result, err := dadaapi.GetCancelReasons() // if err != nil { // t.Fatal(err.Error()) // } // // baseapi.SugarLogger.Debug(result) // failed := true // for _, reason := range result { // if reason.ID == 1 { // failed = false // } // } // // if failed { // t.Fatal("failed") // } //} // //func TestAddOrder(t *testing.T) { // result, err := dadaapi.AddOrder(testOrder) // if err != nil { // t.Fatal(err.Error()) // } // t.Fatal(result) //} // //func TestReaddOrder(t *testing.T) { // result, err := dadaapi.ReaddOrder(testOrder) // if err != nil { // t.Fatal(err.Error()) // } // baseapi.SugarLogger.Debug(result) //} // //func TestCancelOrder(t *testing.T) { // result, err := dadaapi.CancelOrder("234242342", ReasonIDClientDontWantItAnymore, "") // if err != nil { // t.Fatal(err.Error()) // } // baseapi.SugarLogger.Debug(result) //} // //func TestCallbackMsgPlayback(t *testing.T) { // baseURL := "http://callback.test.jxc4.com:8080/" // playbackData := [][]string{ // []string{ // "{\"signature\":\"2b10053038eef28af360fa2603d59fd1\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":1,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":0,\"update_time\":1530171995}", // baseURL + "dadadelivery/msg", // }, // []string{ // "{\"signature\":\"14cb9d55179d47de73e09d3b5e800fea\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":2,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530172054}", // baseURL + "dadadelivery/msg", // }, // []string{ // "{\"signature\":\"1058519a18dd8ee8ba6a1638e53bed66\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":3,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173065}", // baseURL + "dadadelivery/msg", // }, // []string{ // "{\"signature\":\"9c7a5d72d4e9bdea7b452f38e5c5a0dc\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":4,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173559}", // baseURL + "dadadelivery/msg", // }, // } // for _, v := range playbackData { // _, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "application/json; charset=utf-8") // if err != nil { // t.Fatal(err) // } // } //} func Test111(t *testing.T) { SplitUniversalOrderID("313943552673") } func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) { index := strings.Index(universalOrderID, "|") if index != -1 { orderID = universalOrderID[:index] vendorID = int(utils.Str2Int64(universalOrderID[index+1:])) } else { if vendorID = GetPossibleVendorIDFromVendorOrderID(universalOrderID); vendorID == -1 { panic(fmt.Sprintf("unkown order type, orderID:%s", universalOrderID)) } orderID = universalOrderID } return orderID, vendorID } func GetPossibleVendorIDFromVendorOrderID(vendorOrderID string) (vendorID int) { vendorID = -1 //if vendorOrderIDInt64 := utils.Str2Int64WithDefault(vendorOrderID, 0); vendorOrderIDInt64 > 0 { orderIDLen := len(vendorOrderID) // 5287873015048 13 wsc // 15380342248732 14 old ebai order // 800402581000221 15,16 jd order // 33437032333978492 17 mtwm order // 3022716176275221584 19 elm order, new ebai order // 京东到家从2020年开始订单号的长度都会在现有基础上加一位,订单号的前两位取的是当年的最后两位数(如:2020取的20),以适应业务的发展。 // 改造点: // 1、订单号位数变化,由原有15位数增加1位数调整为16位数,对接商家需检查是否有对订单号位数做长度校验。 // 2、第一位数字发生变化,由原来9开头调整为当年年份后两位数如:2020年订单开头为20; if orderIDLen == len("925265130002541") || orderIDLen == len("1925265130002541") { vendorID = 0 } else if orderIDLen == len("3022716176275221584") { // vendorID = model.VendorIDELM vendorID = 3 // 饿百零售开放平台订单接口中订单ID“order_id”字段长度将调整为19位,和饿了么订单ID“eleme_order_id”字段格式保持一致。 } else if orderIDLen == len("15380342248732") { if vendorOrderID[:2] == "88" { vendorID = 9 } else { vendorID = 3 } } else if orderIDLen == len("33437032333978492") || orderIDLen == len("116379390766579767") { vendorID = 1 } else if orderIDLen == len("5287873015048") { vendorID = 11 } else if orderIDLen == len("1000004390") { vendorID = 9 } else if orderIDLen == len("18100216009800000001") || orderIDLen == len("191075245758000000039") { vendorID = 5 } return vendorID }